Results for dbracket.test.sh

statusbash-4mkshosh
pass 493647
ok 070
N-I 050
BUG 120
FAIL 003
total505050
casebash-4mkshoshdescription
0pass pass pass [[ glob matching, [[ has no glob expansion
1pass pass pass [[ glob matching with escapes
2pass pass pass equality
3pass pass pass [[ glob matching with unquoted var
4pass N-I pass [[ regex matching
details
5pass N-I pass [[ regex syntax error
details
6pass pass pass [[ has no word splitting
7pass pass pass [[ has quote joining
8pass pass pass [[ empty string is false
9pass pass pass && chain
10pass pass pass || chain
11pass pass pass [[ compound expressions
12pass pass pass precedence of && and || inside [[
13pass pass pass precedence of && and || in a command context
14pass N-I pass Octal literals with -eq
details
15pass N-I pass Hex literals with -eq
details
16pass pass pass > on strings
17pass pass pass != on strings
18pass pass pass -eq on strings
19pass pass pass [[ compare with literal -f (compare with test-builtin.test.sh)
20pass ok pass [[ with op variable (compare with test-builtin.test.sh)
details
21pass pass pass [[ with unquoted empty var (compare with test-builtin.test.sh)
22pass pass pass [[ at runtime doesn't work
23pass pass pass [[ with env prefix doesn't work
24pass pass pass [[ over multiple lines is OK
25pass pass pass Argument that looks like a command word operator
26pass ok pass Argument that looks like a real operator
details
27pass pass FAIL User array compared to "$@" (broken unless shopt -s strict_array)
details
28pass pass FAIL Array coerces to string (shopt -s strict_array to disallow)
details
29BUG pass FAIL (( array1 == array2 )) doesn't work
detailsdetails
30pass pass pass Quotes don't matter in comparison
31pass pass pass -eq does dynamic arithmetic parsing (not supported in OSH)
32pass pass pass -eq coercion produces weird results
33pass pass pass [[ '(' ]] is treated as literal
34pass ok pass [[ '(' foo ]] is syntax error
details
35pass pass pass empty ! is treated as literal
36pass ok pass [[ -z ]] is syntax error
details
37pass pass pass [[ -z '>' ]]
38pass ok pass [[ -z '>' a ]] is syntax error
details
39pass pass pass test whether ']]' is empty
40pass ok pass [[ ]] is syntax error
details
41pass ok pass [[ && ]] is syntax error
details
42pass BUG pass [[ a 3< b ]] doesn't work (bug regression)
details
43pass pass pass tilde expansion in [[
44pass pass pass more tilde expansion
45pass N-I pass tilde expansion with =~ (confusing)
details
46pass pass pass [[ ]] with redirect
47pass pass pass special chars
48pass pass pass \(\) in pattern (regression)
49pass BUG pass negative numbers - zero, decimal, octal, hex, base N
details
132 passed, 7 OK, 5 not implemented, 3 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

mksh4 [[ regex matching

stdout:
stderr: 
mksh: <stdin>[2]: syntax error: '=~' unexpected operator/operand
mksh5 [[ regex syntax error

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '=~' unexpected operator/operand
mksh14 Octal literals with -eq

stdout:
false
stderr:
mksh: <stdin>[1]: shopt: not found
mksh15 Hex literals with -eq

stdout:
false
stderr:
mksh: <stdin>[1]: shopt: not found
mksh: <stdin>[4]: 0x0f: bad number '0x0f'
mksh20 [[ with op variable (compare with test-builtin.test.sh)

stdout:
stderr: 
mksh: <stdin>[2]: syntax error: '$op' unexpected operator/operand
mksh26 Argument that looks like a real operator

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '-f' missing argument
osh27 User array compared to "$@" (broken unless shopt -s strict_array)

[osh stdout] Expected 'true\nfalse\n', got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1253, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 336, in Batch
    was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)
  File "/home/uke/oil/core/main_loop.py", line 401, in Batch2
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1824, in _Dispatch
    status = self._DoAndOr(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1185, in _DoAndOr
    status = self._Execute(left)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1733, in _Dispatch
    result = self.bool_ev.EvalB(node.expr)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 1231, in EvalB
    s1 = self._EvalCompoundWord(node.left)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 1141, in _EvalCompoundWord
    val = self.word_ev.EvalWordToString(word, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 2162, in EvalWordToString
    self._EvalWordPart(p, part_vals, 0)
  File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart
    self._EvalDoubleQuoted(part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1952, in _EvalWordPart
    self._EvalSimpleVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1827, in _EvalSimpleVarSub
    v = _ValueToPartValue(val, quoted, part)
  File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue
    bash_impl.InternalStringArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
osh28 Array coerces to string (shopt -s strict_array to disallow)

[osh stdout] Expected 'true\nfalse\n', got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1253, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 336, in Batch
    was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)
  File "/home/uke/oil/core/main_loop.py", line 401, in Batch2
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1824, in _Dispatch
    status = self._DoAndOr(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1185, in _DoAndOr
    status = self._Execute(left)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1733, in _Dispatch
    result = self.bool_ev.EvalB(node.expr)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 1232, in EvalB
    s2 = self._EvalCompoundWord(node.right, eval_flags)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 1141, in _EvalCompoundWord
    val = self.word_ev.EvalWordToString(word, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 2162, in EvalWordToString
    self._EvalWordPart(p, part_vals, 0)
  File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart
    self._EvalDoubleQuoted(part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1750, in _EvalBracedVarSub
    part_val = _ValueToPartValue(val, quoted or quoted2, part)
  File "/home/uke/oil/osh/word_eval.py", line 235, in _ValueToPartValue
    return part_value.Array(bash_impl.BashArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
bash-429 (( array1 == array2 )) doesn't work

stdout:
status=1
status=1
status=1
stderr:
bash-4.4: line 6: ((: 1 3: syntax error in expression (error token is "3")
bash-4.4: line 9: ((: 1 3: syntax error in expression (error token is "3")
bash-4.4: line 12: ((: 1 3: syntax error in expression (error token is "3")
osh29 (( array1 == array2 )) doesn't work

[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1253, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 336, in Batch
    was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)
  File "/home/uke/oil/core/main_loop.py", line 401, in Batch2
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1747, in _Dispatch
    i = self.arith_ev.EvalToBigInt(node.child)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 557, in EvalToBigInt
    val = self.Eval(node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 826, in Eval
    lhs_big = self.EvalToBigInt(node.left)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 565, in EvalToBigInt
    val = word_eval.DecayArray(val)
  File "/home/uke/oil/osh/word_eval.py", line 123, in DecayArray
    s, error_code = bash_impl.BashArray_GetElement(
NameError: global name 'bash_impl' is not defined
mksh34 [[ '(' foo ]] is syntax error

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: 'foo' unexpected operator/operand
mksh36 [[ -z ]] is syntax error

stdout:
stderr: 
mksh: <stdin>[2]: syntax error: 'echo' unexpected operator/operand
mksh38 [[ -z '>' a ]] is syntax error

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '--' unexpected operator/operand
mksh40 [[ ]] is syntax error

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: 'newline' unexpected operator/operand
mksh41 [[ && ]] is syntax error

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '&&' expression expected
mksh42 [[ a 3< b ]] doesn't work (bug regression)

stdout:
status=0
status=1
stderr:
mksh45 tilde expansion with =~ (confusing)

stdout:
stderr: 
mksh49 negative numbers - zero, decimal, octal, hex, base N

stdout:
zero=0
decimal=0
octal=1
hex=2
baseN=2
stderr:
mksh: <stdin>[7]: -0xff: bad number '0xff'
mksh: <stdin>[9]: -64#a: bad number '64#a'