161 lines
4.6 KiB
YAML
161 lines
4.6 KiB
YAML
name: "Builtins: bind"
|
|||
|
|
cases:
|
||
|
|
- name: "bind succeeds in non-interactive mode"
|
||
|
|
stdin: |
|
||
|
|
bind > /dev/null 2>&1
|
||
|
|
echo "exit: $?"
|
||
|
|
|
||
|
|
- name: "bind -l"
|
||
|
|
args: ["run.sh"]
|
||
|
|
removed_default_args: ["--input-backend=basic"]
|
||
|
|
additional_test_args: ["--input-backend=reedline"]
|
||
|
|
ignore_stderr: true
|
||
|
|
min_oracle_version: "5.3" # Added functions in 5.3
|
||
|
|
test_files:
|
||
|
|
- path: "run.sh"
|
||
|
|
contents: |
|
||
|
|
# List bindable actions but ignore brush custom entries
|
||
|
|
echo "[bind -l]"
|
||
|
|
bind -l | grep -v brush- | sort
|
||
|
|
echo "bind -l result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
- name: "bind -q/-P/-p"
|
||
|
|
args: ["run.sh"]
|
||
|
|
removed_default_args: ["--input-backend=basic"]
|
||
|
|
additional_test_args: ["--input-backend=reedline"]
|
||
|
|
ignore_stderr: true
|
||
|
|
test_files:
|
||
|
|
- path: "run.sh"
|
||
|
|
contents: |
|
||
|
|
# Basic-check some known bindings
|
||
|
|
well_known_func="clear-screen"
|
||
|
|
|
||
|
|
echo "[bind -q]"
|
||
|
|
bind -q ${well_known_func}
|
||
|
|
echo "bind -q result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
echo "[bind -P]"
|
||
|
|
bind -P | grep ${well_known_func}
|
||
|
|
echo "bind -P result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
echo "[bind -p]"
|
||
|
|
bind -p | grep ${well_known_func}
|
||
|
|
echo "bind -p result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
- name: "bind -x/-X/-r/-u"
|
||
|
|
args: ["run.sh"]
|
||
|
|
removed_default_args: ["--input-backend=basic"]
|
||
|
|
additional_test_args: ["--input-backend=reedline"]
|
||
|
|
min_oracle_version: "5.3" # -X output changed in 5.3
|
||
|
|
ignore_stderr: true
|
||
|
|
test_files:
|
||
|
|
- path: "run.sh"
|
||
|
|
contents: |
|
||
|
|
# Bind a key and check it
|
||
|
|
echo "[bind -x]"
|
||
|
|
bind -x '"\C-t":echo hi'
|
||
|
|
echo "bind -x result: $?"
|
||
|
|
|
||
|
|
echo "[bind -X]"
|
||
|
|
bind -X
|
||
|
|
echo "bind -X result: $?"
|
||
|
|
|
||
|
|
# Unbind it via -r
|
||
|
|
echo "[bind -r]"
|
||
|
|
bind -r '\C-t'
|
||
|
|
echo "bind -r result: $?"
|
||
|
|
bind -X
|
||
|
|
echo "bind -X result: $?"
|
||
|
|
echo "[bind -r (again)]"
|
||
|
|
bind -r '\C-t'
|
||
|
|
echo "bind -r (again) result: $?"
|
||
|
|
|
||
|
|
# Unbind via -u
|
||
|
|
well_known_func="clear-screen"
|
||
|
|
echo "[bind -u]"
|
||
|
|
bind -u ${well_known_func}
|
||
|
|
echo "bind -u result: $?"
|
||
|
|
echo "[bind -q (after -u)]"
|
||
|
|
bind -q ${well_known_func}
|
||
|
|
echo "bind -q (after -u) result: $?"
|
||
|
|
|
||
|
|
- name: "bind keyseq"
|
||
|
|
args: ["run.sh"]
|
||
|
|
removed_default_args: ["--input-backend=basic"]
|
||
|
|
additional_test_args: ["--input-backend=reedline"]
|
||
|
|
ignore_stderr: true
|
||
|
|
test_files:
|
||
|
|
- path: "run.sh"
|
||
|
|
contents: |
|
||
|
|
well_known_func="clear-screen"
|
||
|
|
bind -u ${well_known_func} # Ensure it's unbound first
|
||
|
|
|
||
|
|
# Bind a keyseq
|
||
|
|
echo "[bind keyseq]"
|
||
|
|
bind '"\C-t":clear-screen'
|
||
|
|
echo "bind keyseq result: $?"
|
||
|
|
|
||
|
|
# List current bindings
|
||
|
|
bind -q ${well_known_func}
|
||
|
|
echo "bind -q result: $?"
|
||
|
|
|
||
|
|
- name: "bind macro 1"
|
||
|
|
args: ["run.sh"]
|
||
|
|
removed_default_args: ["--input-backend=basic"]
|
||
|
|
additional_test_args: ["--input-backend=reedline"]
|
||
|
|
ignore_stderr: true
|
||
|
|
test_files:
|
||
|
|
- path: "run.sh"
|
||
|
|
contents: |
|
||
|
|
key_to_bind='\C-r'
|
||
|
|
|
||
|
|
echo "[bind -S (pre)]"
|
||
|
|
bind -S | grep "${key_to_bind}"
|
||
|
|
echo "bind -S result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
echo "[bind -s (pre)]"
|
||
|
|
bind -s | grep "${key_to_bind}"
|
||
|
|
echo "bind -s result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
echo "[bind macro]"
|
||
|
|
bind '"\C-r": "\e[0;1A\e[0;0A"'
|
||
|
|
echo "bind macro result: $?"
|
||
|
|
|
||
|
|
echo "[bind -S]"
|
||
|
|
bind -S | grep "${key_to_bind}"
|
||
|
|
echo "bind -S result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
echo "[bind -s]"
|
||
|
|
bind -s | grep "${key_to_bind}"
|
||
|
|
echo "bind -s result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
echo "[bind -r]"
|
||
|
|
bind -r "${key_to_bind}"
|
||
|
|
echo "bind -r result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
echo "[bind -s (after -r)]"
|
||
|
|
bind -s | grep "${key_to_bind}"
|
||
|
|
echo "bind -s (after -r) result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
echo "[bind -S (after -r)]"
|
||
|
|
bind -S | grep "${key_to_bind}"
|
||
|
|
echo "bind -S (after -r) result: ${PIPESTATUS[@]}"
|
||
|
|
|
||
|
|
- name: "bind macro 2"
|
||
|
|
args: ["run.sh"]
|
||
|
|
removed_default_args: ["--input-backend=basic"]
|
||
|
|
additional_test_args: ["--input-backend=reedline"]
|
||
|
|
ignore_stderr: true
|
||
|
|
test_files:
|
||
|
|
- path: "run.sh"
|
||
|
|
contents: |
|
||
|
|
key_to_bind='\ec'
|
||
|
|
|
||
|
|
echo "[bind macro]"
|
||
|
|
bind '"\ec": " \C-b\C-k`something`\e\C-e"'
|
||
|
|
echo "bind macro result: $?"
|
||
|
|
|
||
|
|
echo "[bind -S]"
|
||
|
|
bind -S | grep "${key_to_bind}"
|
||
|
|
echo "bind -S result: ${PIPESTATUS[@]}"
|