Results for xtrace.test.sh

statusoshosh-cpp
pass 33
FAIL 1616
total1919
caseoshosh-cppdescription
0FAIL FAIL unset PS4
detailsdetails
1FAIL FAIL set -o verbose prints unevaluated code
detailsdetails
2FAIL FAIL xtrace with unprintable chars
detailsdetails
3FAIL FAIL xtrace with unicode chars
detailsdetails
4FAIL FAIL xtrace with paths
detailsdetails
5FAIL FAIL xtrace with tabs
detailsdetails
6FAIL FAIL xtrace with whitespace, quotes, and backslash
detailsdetails
7FAIL FAIL xtrace with newlines
detailsdetails
8FAIL FAIL xtrace written before command executes
detailsdetails
9FAIL FAIL Assignments and assign builtins
detailsdetails
10FAIL FAIL [[ ]]
detailsdetails
11FAIL FAIL PS4 is scoped
detailsdetails
12FAIL FAIL xtrace with variables in PS4
detailsdetails
13pass pass PS4 with unterminated ${
14pass pass PS4 with unterminated $(
15pass pass PS4 with runtime error
16FAIL FAIL Reading $? in PS4
detailsdetails
17FAIL FAIL Regression: xtrace for "declare -a a+=(v)"
detailsdetails
18FAIL FAIL Regression: xtrace for "a+=(v)"
detailsdetails
6 passed, 0 OK, 0 not implemented, 0 BUG, 16 failed, 0 timeouts, 0 cases skipped
16 failed under osh

Details on runs that didn't PASS

osh0 unset PS4

[osh stderr] Expected '+ echo 1\n+ unset PS4\necho 2\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo 1\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ unset PS4\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\necho 2\n"

stdout:
1
2
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo 1
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ unset PS4
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
echo 2
osh-cpp0 unset PS4

[osh-cpp stderr] Expected '+ echo 1\n+ unset PS4\necho 2\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo 1\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ unset PS4\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\necho 2\n"

stdout:
1
2
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo 1
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ unset PS4
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
echo 2
osh1 set -o verbose prints unevaluated code

[osh stderr] Expected 'x=foo\ny=bar\necho $x\necho $(echo $y)\n', got 'osh warning: set -o verbose not implemented\n'

stdout:
foo
bar
stderr:
osh warning: set -o verbose not implemented
osh-cpp1 set -o verbose prints unevaluated code

[osh-cpp stderr] Expected 'x=foo\ny=bar\necho $x\necho $(echo $y)\n', got 'osh warning: set -o verbose not implemented\n'

stdout:
foo
bar
stderr:
osh warning: set -o verbose not implemented
osh2 xtrace with unprintable chars

[osh stderr] Expected "+ echo $'a\\u0003b\\u0004c\\u0000d'\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo $'a\\u0003b\\u0004c\\u0000d'\n"

stdout:
abcd
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo $'a\u0003b\u0004c\u0000d'
osh-cpp2 xtrace with unprintable chars

[osh-cpp stderr] Expected "+ echo $'a\\u0003b\\u0004c\\u0000d'\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo $'a\\u0003b\\u0004c\\u0000d'\n"

stdout:
abcd
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo $'a\u0003b\u0004c\u0000d'
osh3 xtrace with unicode chars

[osh stderr] Expected "+ echo '[\xce\xbc]' '[\xce\xbc]'\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo '[\xce\xbc]' '[\xce\xbc]'\n"

stdout:
[μ] [μ]
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo '[μ]' '[μ]'
osh-cpp3 xtrace with unicode chars

[osh-cpp stderr] Expected "+ echo '[\xce\xbc]' '[\xce\xbc]'\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo '[\xce\xbc]' '[\xce\xbc]'\n"

stdout:
[μ] [μ]
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo '[μ]' '[μ]'
osh4 xtrace with paths

[osh stderr] Expected '+ echo my-dir/my_file.cc\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo my-dir/my_file.cc\n"

stdout:
my-dir/my_file.cc
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo my-dir/my_file.cc
osh-cpp4 xtrace with paths

[osh-cpp stderr] Expected '+ echo my-dir/my_file.cc\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo my-dir/my_file.cc\n"

stdout:
my-dir/my_file.cc
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo my-dir/my_file.cc
osh5 xtrace with tabs

[osh stderr] Expected "+ echo $'[\\t]'\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo $'[\\t]'\n"

stdout:
[	]
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo $'[\t]'
osh-cpp5 xtrace with tabs

[osh-cpp stderr] Expected "+ echo $'[\\t]'\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo $'[\\t]'\n"

stdout:
[	]
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo $'[\t]'
osh6 xtrace with whitespace, quotes, and backslash

[osh stderr] Expected '+ echo \'1 2\' $\'\\\'\' \'"\' $\'\\\\\'\n', got 'Local \'SHX_indent\'\nLocal \'SHX_punct\'\nLocal \'SHX_pid_str\'\n+ echo \'1 2\' $\'\\\'\' \'"\' $\'\\\\\'\n'

stdout:
1 2 ' " \
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo '1 2' $'\'' '"' $'\\'
osh-cpp6 xtrace with whitespace, quotes, and backslash

[osh-cpp stderr] Expected '+ echo \'1 2\' $\'\\\'\' \'"\' $\'\\\\\'\n', got 'Local \'SHX_indent\'\nLocal \'SHX_punct\'\nLocal \'SHX_pid_str\'\n+ echo \'1 2\' $\'\\\'\' \'"\' $\'\\\\\'\n'

stdout:
1 2 ' " \
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo '1 2' $'\'' '"' $'\\'
osh7 xtrace with newlines

[osh stderr] Expected "+ echo $'[\\n]'\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo $'[\\n]'\n"

stdout:
[
]
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo $'[\n]'
osh-cpp7 xtrace with newlines

[osh-cpp stderr] Expected "+ echo $'[\\n]'\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo $'[\\n]'\n"

stdout:
[
]
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo $'[\n]'
osh8 xtrace written before command executes

[osh stderr] Expected '+ echo one\none\n+ echo two\ntwo\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo one\none\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo two\ntwo\n"

stdout:
stderr: 
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo one
one
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo two
two
osh-cpp8 xtrace written before command executes

[osh-cpp stderr] Expected '+ echo one\none\n+ echo two\ntwo\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo one\none\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo two\ntwo\n"

stdout:
stderr: 
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo one
one
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo two
two
osh9 Assignments and assign builtins

[osh stderr] Expected '+ x=1\n+ x=2\n+ echo 2\n+ readonly x=3\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ x=1\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ x=2\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo 2\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ readonly x=3\n"

stdout:
2
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ x=1
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ x=2
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo 2
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ readonly x=3
osh-cpp9 Assignments and assign builtins

[osh-cpp stderr] Expected '+ x=1\n+ x=2\n+ echo 2\n+ readonly x=3\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ x=1\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ x=2\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo 2\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ readonly x=3\n"

stdout:
2
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ x=1
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ x=2
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo 2
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ readonly x=3
osh10 [[ ]]

[osh stderr] Expected '+ dir=/\n+ [[ -d $dir ]]\n+ (( a = 42 ))\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ dir=/\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ [[ -d $dir ]]\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ (( a = 42 ))\n"

stdout:
stderr: 
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ dir=/
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ [[ -d $dir ]]
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ (( a = 42 ))
osh-cpp10 [[ ]]

[osh-cpp stderr] Expected '+ dir=/\n+ [[ -d $dir ]]\n+ (( a = 42 ))\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ dir=/\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ [[ -d $dir ]]\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ (( a = 42 ))\n"

stdout:
stderr: 
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ dir=/
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ [[ -d $dir ]]
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ (( a = 42 ))
osh11 PS4 is scoped

[osh stderr] Expected "+ echo one\n+ f\n+ local PS4='- '\n- echo func\n+ echo two\n" Got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo one\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ f\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ local PS4='- '\nLocal 'PS4'\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n- echo func\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo two\n"

stdout:
one
func
two
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo one
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ f
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ local PS4='- '
Local 'PS4'
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
- echo func
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo two
osh-cpp11 PS4 is scoped

[osh-cpp stderr] Expected "+ echo one\n+ f\n+ local PS4='- '\n- echo func\n+ echo two\n" Got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo one\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ f\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ local PS4='- '\nLocal 'PS4'\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n- echo func\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ echo two\n"

stdout:
one
func
two
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo one
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ f
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ local PS4='- '
Local 'PS4'
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
- echo func
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ echo two
osh12 xtrace with variables in PS4

[osh stderr] Expected '+1:x=1\n+1:echo one\n+2:x=2\n+2:echo two\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+1:x=1\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+1:echo one\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+2:x=2\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+2:echo two\n"

stdout:
one
two
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+1:x=1
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+1:echo one
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+2:x=2
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+2:echo two
osh-cpp12 xtrace with variables in PS4

[osh-cpp stderr] Expected '+1:x=1\n+1:echo one\n+2:x=2\n+2:echo two\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+1:x=1\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+1:echo one\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+2:x=2\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+2:echo two\n"

stdout:
one
two
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+1:x=1
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+1:echo one
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+2:x=2
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+2:echo two
osh16 Reading $? in PS4

[osh stderr] Expected "[last=0] 'false'\n[last=1] echo ok\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n[last=0] 'false'\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n[last=1] echo ok\n"

stdout:
ok
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
[last=0] 'false'
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
[last=1] echo ok
osh-cpp16 Reading $? in PS4

[osh-cpp stderr] Expected "[last=0] 'false'\n[last=1] echo ok\n", got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n[last=0] 'false'\nLocal 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n[last=1] echo ok\n"

stdout:
ok
stderr:
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
[last=0] 'false'
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
[last=1] echo ok
osh17 Regression: xtrace for "declare -a a+=(v)"

[osh stderr] Expected '+ declare a+=(2)\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ declare a+=(2)\nLocal 'a'\n"

stdout:
stderr: 
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ declare a+=(2)
Local 'a'
osh-cpp17 Regression: xtrace for "declare -a a+=(v)"

[osh-cpp stderr] Expected '+ declare a+=(2)\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ declare a+=(2)\nLocal 'a'\n"

stdout:
stderr: 
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ declare a+=(2)
Local 'a'
osh18 Regression: xtrace for "a+=(v)"

[osh stderr] Expected '+ a+=(2)\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ a+=(2)\n"

stdout:
stderr: 
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ a+=(2)
osh-cpp18 Regression: xtrace for "a+=(v)"

[osh-cpp stderr] Expected '+ a+=(2)\n', got "Local 'SHX_indent'\nLocal 'SHX_punct'\nLocal 'SHX_pid_str'\n+ a+=(2)\n"

stdout:
stderr: 
Local 'SHX_indent'
Local 'SHX_punct'
Local 'SHX_pid_str'
+ a+=(2)