Merge nucleic/sleek-thistle-egret-fyej into dev
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
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[@]}"
|
||||
Reference in New Issue
Block a user