Results for builtin-bracket.test.sh

statusbashmkshkshtoyshsushbrushosh
pass 49454840444252
ok 2300000
N-I 0100000
BUG 1300000
FAIL 004128100
total52525252525252
casebashmkshkshtoyshsushbrushoshdescription
0pass pass pass pass pass pass pass zero args: [ ]
1pass pass pass FAIL pass pass pass one arg: [ x ] where x is one of '=' '!' '(' ']'
details
2pass pass pass pass pass pass pass one arg: empty string is false. Equivalent to -n.
3pass pass pass pass FAIL pass pass -a as unary operator (alias of -e)
details
4pass pass pass pass pass pass pass two args: -z with = ! ( ]
5pass pass pass pass pass pass pass three args
6pass pass pass pass pass pass pass four args
7pass pass pass pass pass FAIL pass test with extra args is syntax error
details
8pass pass pass FAIL pass pass pass ] syntax errors
details
9pass pass pass pass pass pass pass -n
10pass pass pass pass pass pass pass ! -a
11pass pass pass pass pass pass pass -o
12pass pass pass pass pass pass pass ( )
13pass pass pass pass pass pass pass ( ) ! -a -o with system version of [
14pass pass pass pass pass pass pass == is alias for =
15pass pass pass pass pass pass pass == and = does not do glob
16pass pass pass pass pass pass pass [ with op variable
17pass pass pass pass pass FAIL pass [ with unquoted empty var
details
18pass pass pass pass pass pass pass [ compare with literal -f
19pass pass pass pass pass FAIL pass [ '(' foo ] is runtime syntax error
details
20pass pass pass pass FAIL pass pass -z '>' implies two token lookahead
details
21pass ok pass FAIL FAIL pass pass operator/operand ambiguity with ]
detailsdetailsdetails
22pass ok pass FAIL FAIL pass pass operator/operand ambiguity with -a
detailsdetailsdetails
23pass pass pass pass pass pass pass -d
24pass pass pass pass pass pass pass -x
25pass pass pass pass pass pass pass -r
26pass pass pass pass pass pass pass -w
27pass pass pass pass pass pass pass -k for sticky bit
28pass pass pass pass pass pass pass -h and -L test for symlink
29pass pass pass pass pass pass pass -t 1 for stdout
30BUG pass pass pass pass FAIL pass [ -t invalid ]
detailsdetails
31pass pass pass pass pass pass pass -ot and -nt
32pass BUG FAIL pass pass FAIL pass [ a -eq b ]
detailsdetailsdetails
33pass pass pass pass pass pass pass test -s
34pass pass pass pass pass pass pass test -b -c -S (block, character, socket)
35pass pass pass pass pass pass pass test -p named pipe
36pass pass pass FAIL pass pass pass -G and -O for effective user ID and group ID
details
37pass pass pass pass pass pass pass -u for setuid, -g too
38pass N-I pass FAIL FAIL pass pass -v to test variable (bash)
detailsdetailsdetails
39pass pass pass FAIL FAIL pass pass test -o for options
detailsdetails
40pass pass pass pass pass pass pass -nt -ot
41pass pass pass pass pass pass pass -ef
42ok pass pass FAIL FAIL FAIL pass Overflow error
detailsdetailsdetailsdetails
43pass pass pass pass pass pass pass Bug regression
44pass pass pass pass pass pass pass test -c
45pass pass pass pass pass pass pass test -S
46pass pass pass pass pass pass pass bug from pnut: negative number $((-1))
47pass pass pass FAIL pass FAIL pass negative octal numbers, etc.
detailsdetails
48pass pass pass FAIL pass pass pass More negative numbers
details
49pass BUG FAIL FAIL pass FAIL pass No octal, hex, base N conversion - leading 0 is a regular decimal
detailsdetailsdetailsdetails
50ok ok FAIL FAIL FAIL FAIL pass Looks like octal, but digit is too big
detailsdetailsdetailsdetailsdetailsdetails
51pass BUG FAIL pass pass FAIL pass no recursive arith [ 1+2 -eq 3 ]
detailsdetailsdetails
320 passed, 5 OK, 1 not implemented, 4 BUG, 34 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

toysh1 one arg: [ x ] where x is one of '=' '!' '(' ']'

[toysh stdout] Expected 'status=0\nstatus=0\nstatus=0\nstatus=0\n', got 'status=0\nstatus=0\nstatus=2\nstatus=2\n'

stdout:
status=0
status=0
status=2
status=2
stderr:
[: need arg @1
[: need arg @1
sush3 -a as unary operator (alias of -e)

[sush stdout] Expected 'status=0\nstatus=1\n', got 'status=2\nstatus=2\n'

stdout:
status=2
status=2
stderr:
[: ‘-a’: unary operator expected
[: ‘-a’: unary operator expected
brush7 test with extra args is syntax error

[brush stdout] Expected 'status=2\nstatus=2\n', got 'status=1\nstatus=1\n'

stdout:
status=1
status=1
stderr:
toysh8 ] syntax errors

[toysh stdout] Expected 'status=2\nstatus=1\nstatus=2\nstatus=2\nstatus=2\n' Got ''
[toysh status] Expected 0, got -11

stdout:
stderr: 
brush17 [ with unquoted empty var

[brush status] Expected 2, got 1

stdout:
stderr: 
brush19 [ '(' foo ] is runtime syntax error

[brush stdout] Expected 'status=2\n', got 'status=1\n'

stdout:
status=1
stderr:
sush20 -z '>' implies two token lookahead

[sush stdout] Expected 'true\nfalse\ntrue\n', got 'true\nfalse\n'
[sush status] Expected 0, got 2

stdout:
true
false
stderr:
[: ‘>’: binary operator expected
mksh21 operator/operand ambiguity with ]

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

[toysh stdout] Expected 'status=0\n', got 'status=2\n'

stdout:
status=2
stderr:
[: too many arguments
sush21 operator/operand ambiguity with ]

[sush stdout] Expected 'status=0\n', got 'status=2\n'

stdout:
status=2
stderr:
[: extra argument ‘]’
mksh22 operator/operand ambiguity with -a

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

[toysh stdout] Expected 'status=0\n', got 'status=2\n'

stdout:
status=2
stderr:
[: need arg @3
sush22 operator/operand ambiguity with -a

[sush stdout] Expected 'status=0\n', got 'status=2\n'

stdout:
status=2
stderr:
[: missing argument after ‘-a’
bash30 [ -t invalid ]

stdout:
status=1
stderr:
brush30 [ -t invalid ]

[brush stdout] Expected 'status=2\n', got 'status=1\n'

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

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

[ksh stdout] Expected 'status=2\n', got 'status=0\n'

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

[brush stdout] Expected 'status=2\n', got 'status=1\n'

stdout:
status=1
stderr:
toysh36 -G and -O for effective user ID and group ID

[toysh stdout] Expected 'status=0\nstatus=1\nstatus=0\nstatus=1\n', got 'status=2\nstatus=2\nstatus=2\nstatus=2\n'

stdout:
status=2
status=2
status=2
status=2
stderr:
test: too many arguments
test: too many arguments
test: too many arguments
test: too many arguments
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
toysh38 -v to test variable (bash)

[toysh stdout] Expected 'global=1\nglobal=0\ndynamic=0\ndynamic=0\ndynamic=1\n' Got 'global=2\nglobal=2\ndynamic=2\ndynamic=2\ndynamic=2\n'

stdout:
global=2
global=2
dynamic=2
dynamic=2
dynamic=2
stderr:
test: too many arguments
test: too many arguments
test: too many arguments
test: too many arguments
test: too many arguments
sush38 -v to test variable (bash)

[sush stdout] Expected 'global=1\nglobal=0\ndynamic=0\ndynamic=0\ndynamic=1\n' Got 'global=2\nglobal=2\ndynamic=2\ndynamic=2\ndynamic=2\n'

stdout:
global=2
global=2
dynamic=2
dynamic=2
dynamic=2
stderr:
test: ‘-v’: unary operator expected
test: ‘-v’: unary operator expected
test: ‘-v’: unary operator expected
test: ‘-v’: unary operator expected
test: ‘-v’: unary operator expected
toysh39 test -o for options

[toysh stdout] Expected 'status=1\nstatus=0\nstatus=1\n', got 'status=2\nstatus=2\nstatus=2\n'

stdout:
status=2
status=2
status=2
stderr:
test: too many arguments
set: bad -o nounset
test: too many arguments
test: too many arguments
sush39 test -o for options

[sush stdout] Expected 'status=1\nstatus=0\nstatus=1\n', got 'status=2\nstatus=2\nstatus=2\n'

stdout:
status=2
status=2
status=2
stderr:
test: ‘-o’: unary operator expected
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: set: nounset: invalid option name
test: ‘-o’: unary operator expected
test: ‘-o’: unary operator expected
bash42 Overflow error

stdout:
status=1
stderr:
toysh42 Overflow error

[toysh stdout] Expected 'status=2\n', got 'status=1\n'

stdout:
status=1
stderr:
sush42 Overflow error

[sush stdout] Expected 'status=2\n', got 'status=1\n'

stdout:
status=1
stderr:
brush42 Overflow error

[brush stdout] Expected 'status=2\n', got 'status=1\n'

stdout:
status=1
stderr:
toysh47 negative octal numbers, etc.

[toysh stdout] Expected 'zero=0\noctal=1\nhex=2\nbaseN=2\n', got 'zero=0\noctal=0\nhex=0\nbaseN=2\n'

stdout:
zero=0
octal=0
hex=0
baseN=2
stderr:
[: not integer: -64#a
brush47 negative octal numbers, etc.

[brush stdout] Expected 'zero=0\noctal=1\nhex=2\nbaseN=2\n', got 'zero=0\noctal=1\nhex=1\nbaseN=1\n'

stdout:
zero=0
octal=1
hex=1
baseN=1
stderr:
toysh48 More negative numbers

[toysh stdout] Expected 'status=0\nstatus=0\n', got ''
[toysh status] Expected 0, got -6

stdout:
stderr: 
munmap_chunk(): invalid pointer
mksh49 No octal, hex, base N conversion - leading 0 is a regular decimal

stdout:
73
-73

status=0
status=0

hex=2
baseN=2
stderr:
mksh: <stdin>[14]: 0xff: bad number '0xff'
mksh: <stdin>[16]: 64#a: bad number '64#a'
ksh49 No octal, hex, base N conversion - leading 0 is a regular decimal

[ksh stdout] Expected '59\n-59\n\nstatus=0\nstatus=0\n\nhex=2\nbaseN=2\n' Got '73\n-73\n\nstatus=0\nstatus=0\n\nhex=2\nbaseN=2\n'

stdout:
73
-73

status=0
status=0

hex=2
baseN=2
stderr:
W: ksh: <stdin>[14]: 0xff: bad number: Invalid argument
W: ksh: <stdin>[16]: 64#a: bad number: Invalid argument
toysh49 No octal, hex, base N conversion - leading 0 is a regular decimal

[toysh stdout] Expected '59\n-59\n\nstatus=0\nstatus=0\n\nhex=2\nbaseN=2\n' Got '59\n-59\n\nstatus=1\nstatus=1\n\nhex=0\nbaseN=2\n'

stdout:
59
-59

status=1
status=1

hex=0
baseN=2
stderr:
[: not integer: 64#a
brush49 No octal, hex, base N conversion - leading 0 is a regular decimal

[brush stdout] Expected '59\n-59\n\nstatus=0\nstatus=0\n\nhex=2\nbaseN=2\n' Got '59\n-59\n\nstatus=0\nstatus=0\n\nhex=1\nbaseN=1\n'

stdout:
59
-59

status=0
status=0

hex=1
baseN=1
stderr:
bash50 Looks like octal, but digit is too big

stdout:
status=1
status=1

status=0
status=0
stderr:
bash: line 1: 083: value too great for base (error token is "083")
bash: line 4: -083: value too great for base (error token is "083")
mksh50 Looks like octal, but digit is too big

stdout:
83
status=0
-83
status=0

status=0
status=0
stderr:
ksh50 Looks like octal, but digit is too big

[ksh stdout] Expected '', got '83\nstatus=0\n-83\nstatus=0\n\nstatus=0\nstatus=0\n'
[ksh status] Expected 1, got 0

stdout:
83
status=0
-83
status=0

status=0
status=0
stderr:
toysh50 Looks like octal, but digit is too big

[toysh stdout] Expected '', got 'status=1\nstatus=1\n\nstatus=2\nstatus=2\n'
[toysh status] Expected 1, got 0

stdout:
status=1
status=1

status=2
status=2
stderr:
main: line 1: sh: bad math:  083  @ 3
main: line 4: sh: bad math:  -083  @ 4
[: not integer: 083
[: not integer: -083
sush50 Looks like octal, but digit is too big

[sush stdout] Expected '', got 'status=1\nstatus=1\n\nstatus=0\nstatus=0\n'
[sush status] Expected 1, got 0

stdout:
status=1
status=1

status=0
status=0
stderr:
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: 083: value too great for base (error token is "083")
/home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: 083: value too great for base (error token is "083")
brush50 Looks like octal, but digit is too big

[brush stdout] Expected '', got 'status=1\nstatus=1\n\nstatus=0\nstatus=0\n'
[brush status] Expected 1, got 0

stdout:
status=1
status=1

status=0
status=0
stderr:
ERROR error: arithmetic evaluation error: failed to parse expression: ' 083 '
ERROR error: arithmetic evaluation error: failed to parse expression: ' -083 '
mksh51 no recursive arith [ 1+2 -eq 3 ]

stdout:
status=0
status=0
stderr:
ksh51 no recursive arith [ 1+2 -eq 3 ]

[ksh stdout] Expected 'status=2\nstatus=2\n', got 'status=0\nstatus=0\n'

stdout:
status=0
status=0
stderr:
brush51 no recursive arith [ 1+2 -eq 3 ]

[brush stdout] Expected 'status=2\nstatus=2\n', got 'status=1\nstatus=1\n'

stdout:
status=1
status=1
stderr: