Results for builtin-bracket.test.sh

statusdashbashmkshosh
pass 38444245
ok 3120
N-I 4010
BUG 1110
FAIL 0001
total46464646
casedashbashmkshoshdescription
0pass pass pass pass zero args: [ ]
1pass pass pass pass one arg: [ x ] where x is one of '=' '!' '(' ']'
2pass pass pass pass one arg: empty string is false. Equivalent to -n.
3N-I pass pass pass -a as unary operator (alias of -e)
details
4pass pass pass pass two args: -z with = ! ( ]
5pass pass pass pass three args
6pass pass pass pass four args
7pass pass pass pass test with extra args is syntax error
8pass pass pass pass ] syntax errors
9pass pass pass pass -n
10pass pass pass pass ! -a
11pass pass pass pass -o
12pass pass pass pass ( )
13pass pass pass pass ( ) ! -a -o with system version of [
14BUG pass pass pass == is alias for =
details
15N-I pass pass pass == and = does not do glob
details
16pass pass pass pass [ with op variable
17pass pass pass pass [ with unquoted empty var
18pass pass pass pass [ compare with literal -f
19pass pass pass pass [ '(' foo ] is runtime syntax error
20pass pass pass pass -z '>' implies two token lookahead
21ok pass ok pass operator/operand ambiguity with ]
detailsdetails
22ok pass ok pass operator/operand ambiguity with -a
detailsdetails
23pass pass pass pass -d
24pass pass pass pass -x
25pass pass pass pass -r
26pass pass pass pass -w
27pass pass pass pass -k for sticky bit
28pass pass pass pass -h and -L test for symlink
29pass pass pass pass -t 1 for stdout
30pass BUG pass pass [ -t invalid ]
details
31pass pass pass pass -ot and -nt
32pass pass BUG FAIL [ a -eq b ]
detailsdetails
33pass pass pass pass test -s
34pass pass pass pass test -b -c -S (block, character, socket)
35pass pass pass pass test -p named pipe
36pass pass pass pass -G and -O for effective user ID and group ID
37pass pass pass pass -u for setuid, -g too
38N-I pass N-I pass -v to test variable (bash)
detailsdetails
39N-I pass pass pass test -o for options
details
40pass pass pass pass -nt -ot
41pass pass pass pass -ef
42ok ok pass pass Overflow error
detailsdetails
43pass pass pass pass Bug regression
44pass pass pass pass test -c
45pass pass pass pass test -S
169 passed, 6 OK, 5 not implemented, 3 BUG, 1 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

dash3 -a as unary operator (alias of -e)

stdout:
status=2
status=2
stderr:
dash: 1: [: -a: unexpected operator
dash: 3: [: -a: unexpected operator
dash14 == is alias for =

stdout:
true
stderr:
dash: 2: [: a: unexpected operator
dash15 == and = does not do glob

stdout:
status=1
status=2
stderr:
dash: 3: [: abc: unexpected operator
dash21 operator/operand ambiguity with ]

stdout:
status=2
stderr:
dash: 1: [: -a: unexpected operator
mksh21 operator/operand ambiguity with ]

stdout:
status=2
stderr:
mksh: <stdin>[1]: [: ]: unexpected operator/operand
dash22 operator/operand ambiguity with -a

stdout:
status=1
stderr:
mksh22 operator/operand ambiguity with -a

stdout:
status=2
stderr:
mksh: <stdin>[1]: [: expression expected
bash30 [ -t invalid ]

stdout:
status=1
stderr:
mksh32 [ a -eq b ]

stdout:
status=0
stderr:
osh32 [ a -eq b ]

[osh stdout] Expected 'status=2\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 201, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 170, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 140, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1171, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 365, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2036, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1835, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1570, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 840, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 520, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 325, in RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/uke/oil/core/executor.py", line 209, in RunBuiltin
    status = builtin_func.Run(cmd_val)
  File "/home/uke/oil/builtin/bracket_osh.py", line 271, in Run
    b = bool_ev.EvalB(bool_node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 1137, in EvalB
    i1 = self._StringToBigIntOrError(s1, blame_word=node.left)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 1029, in _StringToBigIntOrError
    i = self._StringToBigInt(s, location)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 395, in _StringToBigInt
    assert self.parse_ctx is not None
AssertionError
dash38 -v to test variable (bash)

stdout:
global=2
global=2
dynamic=2
dynamic=2
dynamic=2
stderr:
dash: 1: test: -v: unexpected operator
dash: 5: test: -v: unexpected operator
dash: 14: test: -v: unexpected operator
dash: 16: test: -v: unexpected operator
dash: 18: test: -v: unexpected operator
mksh38 -v to test variable (bash)

stdout:
global=2
global=2
dynamic=2
dynamic=2
dynamic=2
stderr:
mksh: <stdin>[1]: test: nonexistent: unexpected operator/operand
mksh: <stdin>[5]: test: g: unexpected operator/operand
mksh: <stdin>[21]: test: f_var: unexpected operator/operand
mksh: <stdin>[21]: test: g: unexpected operator/operand
mksh: <stdin>[21]: test: nonexistent: unexpected operator/operand
dash39 test -o for options

stdout:
status=2
status=2
status=2
stderr:
dash: 1: test: -o: unexpected operator
dash: 5: test: -o: unexpected operator
dash: 8: test: -o: unexpected operator
dash42 Overflow error

stdout:
status=1
stderr:
bash42 Overflow error

stdout:
status=1
stderr: