Results for xtrace.test.sh

statusdashbashmkshoshosh_ALT
pass 27499
ok 54700
N-I 40000
BUG 11100
FAIL 00033
total1212121212
casedashbashmkshoshosh_ALTdescription
0pass ok pass FAIL FAIL set -o verbose prints unevaluated code
detailsdetailsdetails
1N-I ok BUG pass pass xtrace with unprintable chars
detailsdetailsdetails
2N-I pass pass pass pass xtrace with unicode chars
details
3N-I BUG pass pass pass xtrace with tabs
detailsdetails
4BUG ok ok pass pass xtrace with whitespace, quotes, and backslash
detailsdetailsdetails
5N-I ok pass pass pass xtrace with newlines
detailsdetails
6pass pass ok pass pass xtrace written before command executes
details
7ok pass ok FAIL FAIL PS4 is scoped
detailsdetailsdetailsdetails
8ok pass ok FAIL FAIL xtrace with variables in PS4
detailsdetailsdetailsdetails
9ok pass ok pass pass PS4 with unterminated ${
detailsdetails
10ok pass ok pass pass PS4 with unterminated $(
detailsdetails
11ok pass ok pass pass PS4 with runtime error
detailsdetails
31 passed, 16 OK, 4 not implemented, 3 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

bash0 set -o verbose prints unevaluated code

stdout:
foo
bar
stderr:
x=foo
y=bar
echo $x
echo $(echo $y)
osh0 set -o verbose prints unevaluated code

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

stdout:
foo
bar
stderr:
Warning: set -o verbose not implemented
osh_ALT0 set -o verbose prints unevaluated code

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

stdout:
foo
bar
stderr:
Warning: set -o verbose not implemented
dash1 xtrace with unprintable chars

stdout:
stderr: 
bash1 xtrace with unprintable chars

stdout:
abc
stderr:
+ echo $'a\003b\004c'
mksh1 xtrace with unprintable chars

stdout:
a;c
stderr:
+ echo $'a;\004c\r'
dash2 xtrace with unicode chars

stdout:
stderr: 
dash3 xtrace with tabs

stdout:
stderr: 
bash3 xtrace with tabs

stdout:
[	]
stderr:
+ echo '[	]'
dash4 xtrace with whitespace, quotes, and backslash

stdout:
1 2 ' " \
stderr:
+ echo 1 2 ' " \
bash4 xtrace with whitespace, quotes, and backslash

stdout:
1 2 ' " \
stderr:
+ echo '1 2' \' '"' '\'
mksh4 xtrace with whitespace, quotes, and backslash

stdout:
1 2 ' " \
stderr:
+ echo '1 2' \' '"' '\'
dash5 xtrace with newlines

stdout:
$[
]
stderr:
+ echo $[\n]
bash5 xtrace with newlines

stdout:
[
]
stderr:
+ echo '[
]'
mksh6 xtrace written before command executes

stdout:
stderr: 
+ >&2 
+ echo one
one
+ >&2 
+ echo two
two
dash7 PS4 is scoped

stdout:
one
func
two
stderr:
+ echo one
+ f
+ local PS4=- 
- echo func
+ echo two
mksh7 PS4 is scoped

stdout:
one
func
two
stderr:
+ echo one
+ f
+ typeset 'PS4=- '
- echo func
+ echo two
osh7 PS4 is scoped

[osh stderr] Expected '+ echo one\n+ f\n- echo func\n+ echo two\n', got "+ echo one\n+ f\n+ 'TODO: trace string for assignment'\n- echo func\n+ echo two\n"

stdout:
one
func
two
stderr:
+ echo one
+ f
+ 'TODO: trace string for assignment'
- echo func
+ echo two
osh_ALT7 PS4 is scoped

[osh_ALT stderr] Expected '+ echo one\n+ f\n- echo func\n+ echo two\n', got "+ echo one\n+ f\n+ 'TODO: trace string for assignment'\n- echo func\n+ echo two\n"

stdout:
one
func
two
stderr:
+ echo one
+ f
+ 'TODO: trace string for assignment'
- echo func
+ echo two
dash8 xtrace with variables in PS4

stdout:
one
two
stderr:
+1:x=1
+1:echo one
+2:x=2
+2:echo two
mksh8 xtrace with variables in PS4

stdout:
one
two
stderr:
+:x=1 
+1:echo one
+1:x=2 
+2:echo two
osh8 xtrace with variables in PS4

[osh stderr] Expected '+1:echo one\n+2:echo two\n', got '+1:(lvalue.Named name:x spids:[11]) = (value.Str s:1)\n+1:echo one\n+2:(lvalue.Named name:x spids:[21]) = (value.Str s:2)\n+2:echo two\n'

stdout:
one
two
stderr:
+1:(lvalue.Named name:x spids:[11]) = (value.Str s:1)
+1:echo one
+2:(lvalue.Named name:x spids:[21]) = (value.Str s:2)
+2:echo two
osh_ALT8 xtrace with variables in PS4

[osh_ALT stderr] Expected '+1:echo one\n+2:echo two\n', got '+1:(lvalue.Named name:x spids:[11]) = (value.Str s:1)\n+1:echo one\n+2:(lvalue.Named name:x spids:[21]) = (value.Str s:2)\n+2:echo two\n'

stdout:
one
two
stderr:
+1:(lvalue.Named name:x spids:[11]) = (value.Str s:1)
+1:echo one
+2:(lvalue.Named name:x spids:[21]) = (value.Str s:2)
+2:echo two
dash9 PS4 with unterminated ${

stdout:
stderr: 
dash: 1: Syntax error: Missing '}'
mksh9 PS4 with unterminated ${

stdout:
stderr: 
mksh: no closing quote
dash10 PS4 with unterminated $(

stdout:
stderr: 
dash: 1: Syntax error: end of file unexpected (expecting ")")
mksh10 PS4 with unterminated $(

stdout:
stderr: 
mksh: syntax error: '(' unmatched
dash11 PS4 with runtime error

stdout:
stderr: 
dash: 4: arithmetic expression: division by zero: " 1 / 0 "
mksh11 PS4 with runtime error

stdout:
stderr: 
mksh: <stdin>[4]:  1 / 0 : zero divisor