Merge nucleic/sleek-thistle-egret-fyej into dev
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
name: "BASH_XTRACEFD tests"
|
||||
cases:
|
||||
- name: "basic redirection to fd 3"
|
||||
stdin: |
|
||||
exec 3>trace.txt
|
||||
BASH_XTRACEFD=3
|
||||
|
||||
set -x
|
||||
echo "hello"
|
||||
echo "world"
|
||||
|
||||
set +x
|
||||
cat trace.txt
|
||||
|
||||
- name: "redirection takes effect immediately"
|
||||
stdin: |
|
||||
exec 3>trace.txt
|
||||
|
||||
set -x
|
||||
echo "before setting BASH_XTRACEFD"
|
||||
|
||||
BASH_XTRACEFD=3
|
||||
echo "after setting BASH_XTRACEFD"
|
||||
|
||||
set +x
|
||||
|
||||
echo "Content of trace file:"
|
||||
cat trace.txt
|
||||
|
||||
- name: "unsetting BASH_XTRACEFD returns to stderr"
|
||||
stdin: |
|
||||
exec 3>trace.txt
|
||||
BASH_XTRACEFD=3
|
||||
|
||||
set -x
|
||||
echo "redirected"
|
||||
|
||||
unset BASH_XTRACEFD
|
||||
echo "back to stderr"
|
||||
|
||||
set +x
|
||||
|
||||
echo "Content of trace file:"
|
||||
cat trace.txt
|
||||
|
||||
- name: "invalid fd value falls back to stderr"
|
||||
known_failure: true # bash validates BASH_XTRACEFD at assignment time, brush doesn't have that mechanism
|
||||
stdin: |
|
||||
BASH_XTRACEFD=999
|
||||
|
||||
set -x
|
||||
echo "should go to stderr"
|
||||
|
||||
set +x
|
||||
|
||||
- name: "non-numeric value falls back to stderr"
|
||||
known_failure: true # bash validates BASH_XTRACEFD at assignment time, brush doesn't have that mechanism
|
||||
stdin: |
|
||||
BASH_XTRACEFD=invalid
|
||||
|
||||
set -x
|
||||
echo "should go to stderr"
|
||||
|
||||
set +x
|
||||
|
||||
- name: "empty value falls back to stderr"
|
||||
stdin: |
|
||||
BASH_XTRACEFD=
|
||||
|
||||
set -x
|
||||
echo "should go to stderr"
|
||||
|
||||
- name: "redirect to file that fails writes"
|
||||
stdin: |
|
||||
# This test relies on /dev/full being present. We degrade gracefully
|
||||
# if it doesn't.
|
||||
[[ -e /dev/full ]] || exit
|
||||
|
||||
exec 3>/dev/full
|
||||
BASH_XTRACEFD=3
|
||||
|
||||
set -x
|
||||
echo "first echo"
|
||||
echo "first echo result: $?"
|
||||
Reference in New Issue
Block a user