status | bash | mksh | ksh | toysh | sush | brush | osh | |
pass | 62 | 51 | 52 | 39 | 59 | 58 | 70 | |
ok | 7 | 5 | 0 | 0 | 0 | 0 | 3 | |
N-I | 2 | 8 | 0 | 0 | 0 | 0 | 0 | |
BUG | 2 | 9 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 21 | 33 | 14 | 15 | 0 | |
TIME | 0 | 0 | 0 | 1 | 0 | 0 | 0 | |
total | 73 | 73 | 73 | 73 | 73 | 73 | 73 | |
case | bash | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | pass | pass | FAIL | pass | pass | pass | Side Effect in Array Indexing |
details | ||||||||
1 | pass | pass | pass | pass | pass | pass | pass | Add one to var |
2 | pass | pass | pass | pass | pass | pass | pass | $ is optional |
3 | pass | pass | pass | pass | pass | pass | pass | SimpleVarSub within arith |
4 | pass | pass | pass | pass | pass | pass | pass | BracedVarSub within ArithSub |
5 | pass | pass | pass | pass | pass | pass | pass | Arith word part |
6 | pass | pass | pass | pass | pass | pass | pass | Arith sub with word parts |
7 | N-I | pass | pass | pass | FAIL | pass | pass | Constant with quotes like '1' |
details | details | |||||||
8 | pass | pass | pass | pass | pass | pass | pass | Arith sub within arith sub |
9 | pass | pass | pass | pass | pass | pass | pass | Backticks within arith sub |
10 | ok | ok | pass | pass | pass | pass | ok | Invalid string to int |
details | details | details | ||||||
11 | N-I | N-I | FAIL | FAIL | FAIL | FAIL | pass | Invalid string to int with strict_arith |
details | details | details | details | details | details | |||
12 | pass | BUG | FAIL | pass | pass | pass | pass | Integer constant parsing |
details | details | |||||||
13 | pass | BUG | FAIL | FAIL | pass | pass | pass | Integer constant validation |
details | details | details | ||||||
14 | pass | pass | pass | pass | pass | pass | pass | Newline in the middle of expression |
15 | pass | pass | pass | pass | pass | pass | pass | Ternary operator |
16 | pass | pass | pass | pass | pass | pass | pass | Preincrement |
17 | pass | pass | pass | pass | pass | pass | pass | Postincrement |
18 | pass | pass | pass | pass | pass | pass | pass | Increment undefined variables |
19 | pass | pass | pass | FAIL | pass | pass | pass | Increment and decrement array elements |
details | ||||||||
20 | pass | BUG | FAIL | FAIL | FAIL | FAIL | pass | Increment undefined variables with nounset |
details | details | details | details | details | ||||
21 | pass | pass | pass | pass | pass | pass | pass | Comma operator (borrowed from C) |
22 | pass | pass | pass | pass | pass | pass | pass | Augmented assignment |
23 | pass | pass | pass | pass | pass | pass | pass | Comparison Ops |
24 | pass | pass | pass | pass | pass | pass | pass | Logical Ops |
25 | pass | pass | pass | FAIL | pass | pass | pass | Logical Ops Short Circuit |
details | ||||||||
26 | pass | pass | pass | pass | pass | pass | pass | Bitwise ops |
27 | pass | pass | pass | pass | pass | pass | pass | Unary minus and plus |
28 | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | No floating point |
details | details | details | details | details | details | |||
29 | pass | pass | pass | FAIL | pass | pass | pass | Array indexing in arith |
details | ||||||||
30 | pass | pass | pass | pass | pass | pass | pass | Constants in base 36 |
31 | pass | N-I | FAIL | FAIL | pass | FAIL | pass | Constants in bases 2 to 64 |
details | details | details | details | |||||
32 | pass | pass | pass | pass | pass | pass | pass | Multiple digit constants with base N |
33 | pass | pass | pass | pass | pass | pass | pass | Dynamic base constants |
34 | pass | N-I | FAIL | pass | pass | pass | pass | Octal constant |
details | details | |||||||
35 | pass | N-I | FAIL | pass | pass | pass | pass | Dynamic octal constant |
details | details | |||||||
36 | pass | pass | pass | pass | pass | pass | pass | Dynamic hex constants |
37 | pass | pass | pass | pass | pass | pass | pass | Dynamic var names - result of runtime parse/eval |
38 | pass | pass | pass | pass | pass | pass | pass | Recursive name evaluation is a result of runtime parse/eval |
39 | pass | BUG | FAIL | FAIL | FAIL | FAIL | pass | nounset with arithmetic |
details | details | details | details | details | ||||
40 | pass | BUG | FAIL | pass | pass | pass | pass | 64-bit integer doesn't overflow |
details | details | |||||||
41 | pass | BUG | FAIL | FAIL | pass | pass | pass | More 64-bit ops |
details | details | details | ||||||
42 | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | Invalid LValue |
details | details | details | details | details | details | |||
43 | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | Invalid LValue that looks like array |
details | details | details | details | details | details | |||
44 | ok | ok | FAIL | FAIL | FAIL | FAIL | pass | Invalid LValue: two sets of brackets |
details | details | details | details | details | details | |||
45 | pass | pass | pass | pass | pass | pass | pass | Operator Precedence |
46 | pass | N-I | FAIL | pass | pass | pass | pass | Exponentiation with ** |
details | details | |||||||
47 | pass | N-I | FAIL | pass | pass | pass | pass | Exponentiation operator has buggy precedence |
details | details | |||||||
48 | pass | pass | pass | TIME | pass | pass | pass | Negative exponent |
49 | ok | pass | pass | FAIL | FAIL | FAIL | ok | Comment not allowed in the middle of multiline arithmetic |
details | details | details | details | details | ||||
50 | pass | N-I | FAIL | FAIL | pass | pass | pass | Add integer to indexed array (a[0] decay) |
details | details | details | ||||||
51 | pass | pass | pass | FAIL | pass | pass | pass | Add integer to associative array (a[0] decay) |
details | ||||||||
52 | pass | pass | pass | FAIL | pass | pass | ok | Double subscript |
details | details | |||||||
53 | pass | pass | pass | FAIL | pass | pass | pass | result of ArithSub -- array[0] decay |
details | ||||||||
54 | pass | N-I | FAIL | FAIL | pass | pass | pass | result of ArithSub -- assoc[0] decay |
details | details | details | ||||||
55 | pass | pass | pass | FAIL | pass | pass | pass | comma operator |
details | ||||||||
56 | pass | pass | pass | FAIL | pass | pass | pass | assignment with dynamic var name |
details | ||||||||
57 | pass | pass | pass | FAIL | pass | pass | pass | array assignment with dynamic array name |
details | ||||||||
58 | pass | pass | pass | pass | pass | pass | pass | unary assignment with dynamic var name |
59 | pass | pass | pass | FAIL | pass | pass | pass | unary array assignment with dynamic var name |
details | ||||||||
60 | pass | BUG | FAIL | FAIL | pass | FAIL | pass | Dynamic parsing of arithmetic |
details | details | details | details | |||||
61 | pass | pass | pass | pass | pass | FAIL | pass | Dynamic parsing on empty string |
details | ||||||||
62 | pass | pass | pass | pass | FAIL | pass | pass | nested ternary (bug fix) |
details | ||||||||
63 | pass | pass | pass | FAIL | pass | pass | pass | 1 ? a=1 : b=2 ( bug fix) |
details | ||||||||
64 | BUG | pass | pass | FAIL | FAIL | FAIL | pass | Invalid constant |
details | details | details | details | |||||
65 | pass | pass | pass | pass | pass | pass | pass | Negative numbers with integer division / |
66 | pass | pass | pass | pass | pass | pass | pass | Negative numbers with % |
67 | ok | BUG | FAIL | FAIL | FAIL | FAIL | pass | Negative numbers with bit shift |
details | details | details | details | details | details | |||
68 | pass | pass | pass | FAIL | pass | pass | pass | undef[0] |
details | ||||||||
69 | pass | BUG | FAIL | FAIL | FAIL | FAIL | pass | undef[0] with nounset |
details | details | details | details | details | ||||
70 | pass | pass | pass | FAIL | pass | pass | pass | s[0] with string abc |
details | ||||||||
71 | pass | pass | pass | FAIL | pass | pass | pass | s[0] with string 42 |
details | ||||||||
72 | BUG | pass | pass | FAIL | FAIL | FAIL | pass | s[0] with string '12 34' |
details | details | details | details |
391 passed, 15 OK, 10 not implemented, 11 BUG, 83 failed, 1 timeouts, 0 cases skipped
toysh | 0 Side Effect in Array Indexing [toysh stdout] Expected '6 b=2\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: 4 |
bash | 7 Constant with quotes like '1' stdout: stderr: bash: line 1: '1' + 2: syntax error: operand expected (error token is "'1' + 2") |
sush | 7 Constant with quotes like '1' [sush status] Expected 0, got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: '1' + 2: syntax error: operand expected (error token is "'1'") |
bash | 10 Invalid string to int stdout: 5stderr: bash: line 1: shopt: strict_arith: invalid shell option name |
mksh | 10 Invalid string to int stdout: 5stderr: mksh: <stdin>[1]: shopt: not found |
osh | 10 Invalid string to int stdout: 5stderr: |
bash | 11 Invalid string to int with strict_arith stdout: foo 5 should not get herestderr: bash: line 1: shopt: strict_arith: invalid shell option name |
mksh | 11 Invalid string to int with strict_arith stdout: foo 5 should not get herestderr: mksh: <stdin>[1]: shopt: not found |
ksh | 11 Invalid string to int with strict_arith [ksh stdout] Expected 'foo\n', got 'foo\n5\nshould not get here\n' [ksh status] Expected 1, got 0 stdout: foo 5 should not get herestderr: E: ksh: <stdin>[1]: shopt: inaccessible or not found |
toysh | 11 Invalid string to int with strict_arith [toysh stdout] Expected 'foo\n', got 'foo\n5\nshould not get here\n' [toysh status] Expected 1, got 0 stdout: foo 5 should not get herestderr: sh: shopt: No such file or directory |
sush | 11 Invalid string to int with strict_arith [sush stdout] Expected 'foo\n', got 'foo\n5\nshould not get here\n' [sush status] Expected 1, got 0 stdout: foo 5 should not get herestderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: shopt: strict_arith: not supported yet |
brush | 11 Invalid string to int with strict_arith [brush stdout] Expected 'foo\n', got 'foo\n5\nshould not get here\n' [brush status] Expected 1, got 0 stdout: foo 5 should not get herestderr: shopt: strict_arith: invalid shell option name |
mksh | 12 Integer constant parsing stdout: 298 10 777 10 6151stderr: |
ksh | 12 Integer constant parsing [ksh stdout] Expected '298\n10\n511\n8\n6151\n', got '298\n10\n777\n10\n6151\n' stdout: 298 10 777 10 6151stderr: |
mksh | 13 Integer constant validation stdout: status=1 9 status=0 status=1 6 status=0stderr: mksh: shopt: not found mksh: 0x1X : bad number '0x1X' mksh: shopt: not found mksh: shopt: not found mksh: 2#A : bad number '2#A' mksh: shopt: not found |
ksh | 13 Integer constant validation [ksh stdout] Expected 'status=1\nstatus=1\nstatus=1\nstatus=1\n', got 'status=1\n9\nstatus=0\nstatus=1\n6\nstatus=0\n' stdout: status=1 9 status=0 status=1 6 status=0stderr: E: ksh: shopt: inaccessible or not found W: ksh: 0x1X : bad number '0x1X': Invalid argument E: ksh: shopt: inaccessible or not found E: ksh: shopt: inaccessible or not found W: ksh: 2#A : bad number '2#A': Invalid argument E: ksh: shopt: inaccessible or not found |
toysh | 13 Integer constant validation [toysh stdout] Expected 'status=1\nstatus=1\nstatus=1\nstatus=1\n', got 'status=1\nstatus=1\nstatus=1\n6\nstatus=0\n' stdout: status=1 status=1 status=1 6 status=0stderr: sh: shopt: No such file or directory -c: line 1: sh: bad math: 0x1X @ 5 sh: shopt: No such file or directory -c: line 1: sh: bad math: 09 @ 3 sh: shopt: No such file or directory -c: line 1: sh: bad math: 2#A @ 4 sh: shopt: No such file or directory |
toysh | 19 Increment and decrement array elements [toysh stdout] Expected '6 7 6 7 - 1 1 -1 -1\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: sh: shopt: No such file or directory main: line 2: sh: syntax error: 5 |
mksh | 20 Increment undefined variables with nounset stdout: [1][1]stderr: |
ksh | 20 Increment undefined variables with nounset [ksh stdout] Expected u'', got '[1][1]\n' [ksh status] Expected 1, got 0 stdout: [1][1]stderr: |
toysh | 20 Increment undefined variables with nounset [toysh stdout] Expected u'', got '[1][1]\n' [toysh status] Expected 1, got 0 stdout: [1][1]stderr: set: bad -o nounset |
sush | 20 Increment undefined variables with nounset [sush stdout] Expected u'', got '[1][1]\n' [sush status] Expected 1, got 0 stdout: [1][1]stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: nounset: invalid option name |
brush | 20 Increment undefined variables with nounset [brush stdout] Expected u'', got '[1][1]\n' [brush status] Expected 1, got 0 stdout: [1][1]stderr: |
toysh | 25 Logical Ops Short Circuit [toysh stdout] Expected '11\n33\n33\n55\n', got '11\n11\n11\n11\n' stdout: 11 11 11 11stderr: |
bash | 28 No floating point stdout: stderr: bash: line 1: 1 + 2.3: syntax error: invalid arithmetic operator (error token is ".3") |
mksh | 28 No floating point stdout: stderr: mksh: <stdin>[1]: 1 + 2.3: unexpected '.' |
ksh | 28 No floating point [ksh status] Expected 2, got 1 stdout: stderr: W: ksh: <stdin>[1]: 1 + 2.3: unexpected '.' |
toysh | 28 No floating point [toysh status] Expected 2, got 1 stdout: stderr: main: line 1: sh: bad math: 1 + 2.3 @ 6 |
sush | 28 No floating point [sush status] Expected 2, got 0 stdout: 3.3stderr: |
brush | 28 No floating point [brush status] Expected 2, got 1 stdout: stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: '1 + 2.3' |
toysh | 29 Array indexing in arith [toysh stdout] Expected '11\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: 1 |
mksh | 31 Constants in bases 2 to 64 stdout: stderr: mksh: <stdin>[1]: 64#a: bad number '64#a' |
ksh | 31 Constants in bases 2 to 64 [ksh stdout] Expected '10-35, 36-61, 62, 63\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: W: ksh: <stdin>[1]: 64#a: bad number: Invalid argument |
toysh | 31 Constants in bases 2 to 64 [toysh stdout] Expected '10-35, 36-61, 62, 63\n', got '' [toysh status] Expected 0, got 1 stdout: stderr: main: line 1: sh: bad math: 64#a @ 4 |
brush | 31 Constants in bases 2 to 64 [brush stdout] Expected '10-35, 36-61, 62, 63\n', got '' [brush status] Expected 0, got 1 stdout: stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: '64#a' |
mksh | 34 Octal constant stdout: 11stderr: |
ksh | 34 Octal constant [ksh stdout] Expected '9\n', got '11\n' stdout: 11stderr: |
mksh | 35 Dynamic octal constant stdout: 11stderr: |
ksh | 35 Dynamic octal constant [ksh stdout] Expected '9\n', got '11\n' stdout: 11stderr: |
mksh | 39 nounset with arithmetic stdout: should not get here: x=5stderr: |
ksh | 39 nounset with arithmetic [ksh stdout] Expected u'', got 'should not get here: x=5\n' [ksh status] Expected 1, got 0 stdout: should not get here: x=5stderr: |
toysh | 39 nounset with arithmetic [toysh stdout] Expected u'', got 'should not get here: x=5\n' [toysh status] Expected 1, got 0 stdout: should not get here: x=5stderr: set: bad -o nounset |
sush | 39 nounset with arithmetic [sush stdout] Expected u'', got 'should not get here: x=5\n' [sush status] Expected 1, got 0 stdout: should not get here: x=5stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: set: nounset: invalid option name |
brush | 39 nounset with arithmetic [brush stdout] Expected u'', got 'should not get here: x=5\n' [brush status] Expected 1, got 0 stdout: should not get here: x=5stderr: |
mksh | 40 64-bit integer doesn't overflow stdout: -2147483648 0 -2147483648 max positive = 2147483647stderr: |
ksh | 40 64-bit integer doesn't overflow [ksh stdout] Expected '2147483648\n4294967296\n6442450944\nmax positive = 9223372036854775807\n' Got '-2147483648\n0\n-2147483648\nmax positive = 2147483647\n' stdout: -2147483648 0 -2147483648 max positive = 2147483647stderr: |
mksh | 41 More 64-bit ops stdout: eq=1 eq=0 greater=1 greater=1 ge=1 ge=0 le=0 le=0stderr: |
ksh | 41 More 64-bit ops [ksh stdout] Expected 'eq=1\neq=0\ngreater=0\ngreater=0\nge=0\nge=0\nle=1\nle=0\n' Got 'eq=1\neq=0\ngreater=1\ngreater=1\nge=1\nge=0\nle=0\nle=0\n' stdout: eq=1 eq=0 greater=1 greater=1 ge=1 ge=0 le=0 le=0stderr: |
toysh | 41 More 64-bit ops [toysh stdout] Expected 'eq=1\neq=0\ngreater=0\ngreater=0\nge=0\nge=0\nle=1\nle=0\n' Got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
bash | 42 Invalid LValue stdout: 9stderr: bash: line 2: ((: (a + 2) = 3 : attempted assignment to non-variable (error token is "= 3 ") |
mksh | 42 Invalid LValue stdout: 9stderr: mksh: <stdin>[2]: (a + 2) = 3 : = requires lvalue |
ksh | 42 Invalid LValue [ksh stdout] Expected u'', got '9\n' [ksh status] Expected 2, got 0 stdout: 9stderr: W: ksh: <stdin>[2]: (a + 2) = 3 : = requires lvalue |
toysh | 42 Invalid LValue [toysh stdout] Expected u'', got '9\n' [toysh status] Expected 2, got 0 stdout: 9stderr: main: line 2: sh: bad math: (a + 2) = 3 @ 9 |
sush | 42 Invalid LValue [sush stdout] Expected u'', got '9\n' [sush status] Expected 2, got 0 stdout: 9stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: ((: (a + 2) = 3 : attempted assignment to non-variable (error token is "=3") |
brush | 42 Invalid LValue [brush stdout] Expected u'', got '9\n' [brush status] Expected 2, got 0 stdout: 9stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: '(a + 2)= 3' |
bash | 43 Invalid LValue that looks like array stdout: status=1stderr: bash: line 1: ((: 1[2] = 3 : syntax error: invalid arithmetic operator (error token is "[2] = 3 ") |
mksh | 43 Invalid LValue that looks like array stdout: status=2stderr: mksh: <stdin>[1]: 1[2] = 3 : unexpected '[' |
ksh | 43 Invalid LValue that looks like array [ksh stdout] Expected u'', got 'status=2\n' [ksh status] Expected 1, got 0 stdout: status=2stderr: W: ksh: <stdin>[1]: 1[2] = 3 : unexpected '[' |
toysh | 43 Invalid LValue that looks like array [toysh stdout] Expected u'', got 'status=1\n' [toysh status] Expected 1, got 0 stdout: status=1stderr: main: line 1: sh: bad math: 1[2] = 3 @ 2 |
sush | 43 Invalid LValue that looks like array [sush stdout] Expected u'', got 'status=1\n' [sush status] Expected 1, got 0 stdout: status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: ((: 1[2] = 3 : syntax error in expression (error token is "[2") |
brush | 43 Invalid LValue that looks like array [brush stdout] Expected u'', got 'status=1\n' [brush status] Expected 1, got 0 stdout: status=1stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: '1[2] = 3' |
bash | 44 Invalid LValue: two sets of brackets stdout: status=1stderr: bash: line 1: ((: a[1][2] = 3 : syntax error: invalid arithmetic operator (error token is "[2] = 3 ") |
mksh | 44 Invalid LValue: two sets of brackets stdout: status=2stderr: mksh: <stdin>[1]: a[1][2] = 3 : unexpected '[' |
ksh | 44 Invalid LValue: two sets of brackets [ksh stdout] Expected u'', got 'status=2\n' [ksh status] Expected 2, got 0 stdout: status=2stderr: W: ksh: <stdin>[1]: a[1][2] = 3 : unexpected '[' |
toysh | 44 Invalid LValue: two sets of brackets [toysh stdout] Expected u'', got 'status=1\n' [toysh status] Expected 2, got 0 stdout: status=1stderr: main: line 1: sh: bad math: a[1][2] = 3 @ 2 |
sush | 44 Invalid LValue: two sets of brackets [sush stdout] Expected u'', got 'status=1\n' [sush status] Expected 2, got 0 stdout: status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: ((: a[1][2] = 3 : syntax error in expression (error token is "[2") |
brush | 44 Invalid LValue: two sets of brackets [brush stdout] Expected u'', got 'status=1\n' [brush status] Expected 2, got 0 stdout: status=1stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: 'a[1][2] = 3' |
mksh | 46 Exponentiation with ** stdout: stderr: mksh: <stdin>[1]: 3 ** 0 : unexpected '*' |
ksh | 46 Exponentiation with ** [ksh stdout] Expected '1\n3\n9\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: W: ksh: <stdin>[1]: 3 ** 0 : unexpected '*' |
mksh | 47 Exponentiation operator has buggy precedence stdout: stderr: mksh: <stdin>[1]: -3 ** 2 : unexpected '*' |
ksh | 47 Exponentiation operator has buggy precedence [ksh stdout] Expected '9\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: W: ksh: <stdin>[1]: -3 ** 2 : unexpected '*' |
bash | 49 Comment not allowed in the middle of multiline arithmetic stdout: 6 []stderr: bash: line 8: 1 + 2 # not a comment : syntax error: invalid arithmetic operator (error token is "# not a comment ") bash: line 10: ((: a = 3 + 4 # comment : syntax error: invalid arithmetic operator (error token is "# comment ") |
toysh | 49 Comment not allowed in the middle of multiline arithmetic [toysh stdout] Expected '6\n', got '6\n[0]\n' [toysh status] Expected 1, got 0 stdout: 6 [0]stderr: main: line 6: sh: bad math: 1 + 2 # not a comment @ 9 main: line 9: sh: bad math: a = 3 + 4 # comment @ 12 |
sush | 49 Comment not allowed in the middle of multiline arithmetic [sush stdout] Expected '6\n', got '6\n[]\n' [sush status] Expected 1, got 0 stdout: 6 []stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: #: invalid arithmetic base (error token is "#") /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 9: ((: #: invalid arithmetic base (error token is "#") |
brush | 49 Comment not allowed in the middle of multiline arithmetic [brush stdout] Expected '6\n', got '6\n[7]\n' [brush status] Expected 1, got 0 stdout: 6 [7]stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: ' 1 + 2 # not a comment ' |
osh | 49 Comment not allowed in the middle of multiline arithmetic stdout: 6stderr: 1 + 2 # not a comment ^ [ stdin ]:7: Unexpected token after arithmetic expression (Id.Word_Compound != Id.Arith_RParen) |
mksh | 50 Add integer to indexed array (a[0] decay) stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unexpected |
ksh | 50 Add integer to indexed array (a[0] decay) [ksh stdout] Expected '6\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '(' |
toysh | 50 Add integer to indexed array (a[0] decay) [toysh stdout] Expected '6\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ) |
toysh | 51 Add integer to associative array (a[0] decay) [toysh stdout] Expected '47\n', got '5\n' stdout: 5stderr: sh: typeset: No such file or directory sh: assoc[0]=42: No such file or directory |
toysh | 52 Double subscript [toysh stdout] Expected '2\n', got '' [toysh status] Expected 1, got 2 stdout: stderr: main: line 1: sh: syntax error: 1 |
osh | 52 Double subscript stdout: 2stderr: echo $(( a[1][1] )) ^ [ stdin ]:3: The [ operator doesn't apply to this expression |
toysh | 53 result of ArithSub -- array[0] decay [toysh stdout] Expected 'declared\n4\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: 4 |
mksh | 54 result of ArithSub -- assoc[0] decay stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unexpected |
ksh | 54 result of ArithSub -- assoc[0] decay [ksh stdout] Expected 'declared\n0\n', got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '(' |
toysh | 54 result of ArithSub -- assoc[0] decay [toysh stdout] Expected 'declared\n0\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ) |
toysh | 55 comma operator [toysh stdout] Expected '42\nlast=6\n', got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: 4 |
toysh | 56 assignment with dynamic var name [toysh stdout] Expected '42\nxbar=42\n', got '0\nxbar=0\n' stdout: 0 xbar=0stderr: |
toysh | 57 array assignment with dynamic array name [toysh stdout] Expected '42\nxbar[5]=42\n', got 'xbar[5]=\n' stdout: xbar[5]=stderr: main: line 2: sh: bad math: xbar[5] = 42 @ 6 |
toysh | 59 unary array assignment with dynamic var name [toysh stdout] Expected '42\nxbar[5]=43\n', got 'xbar[5]=\n' stdout: xbar[5]=stderr: sh: xbar[5]=42: No such file or directory main: line 3: sh: bad math: xbar[5]++ @ 6 |
mksh | 60 Dynamic parsing of arithmetic stdout: 6 true status=0stderr: |
ksh | 60 Dynamic parsing of arithmetic [ksh stdout] Expected '6\ntrue\nstatus=2\n', got '6\ntrue\nstatus=0\n' stdout: 6 true status=0stderr: |
toysh | 60 Dynamic parsing of arithmetic [toysh stdout] Expected '6\ntrue\nstatus=2\n', got '6\nstatus=2\n' stdout: 6 status=2stderr: [[: not integer: e [: not integer: e |
brush | 60 Dynamic parsing of arithmetic [brush stdout] Expected '6\ntrue\nstatus=2\n', got '6\ntrue\nstatus=1\n' stdout: 6 true status=1stderr: |
brush | 61 Dynamic parsing on empty string [brush stdout] Expected '0\n0\n', got '0\n' [brush status] Expected 0, got 1 stdout: 0stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: ' ' |
sush | 62 nested ternary (bug fix) [sush stdout] Expected '3\n', got '\n' stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: 1?2?3:4:5: command not found |
toysh | 63 1 ? a=1 : b=2 ( bug fix) [toysh stdout] Expected '1\na=1\n', got '0\na=0\n' stdout: 0 a=0stderr: |
bash | 64 Invalid constant stdout: 0 status=0 status=1 status=1stderr: bash: line 1: a + 42x: value too great for base (error token is "42x") bash: line 7: a + 42x: value too great for base (error token is "42x") |
toysh | 64 Invalid constant [toysh stdout] Expected '0\nstatus=0\nstatus=1\n', got '0\nstatus=0\nstatus=1\nstatus=1\n' [toysh status] Expected 1, got 0 stdout: 0 status=0 status=1 status=1stderr: -c: line 1: sh: bad math: a + 42x @ 7 main: line 7: sh: bad math: a + 42x @ 7 |
sush | 64 Invalid constant [sush stdout] Expected '0\nstatus=0\nstatus=1\n', got '0\nstatus=0\nstatus=1\nstatus=1\n' [sush status] Expected 1, got 0 stdout: 0 status=0 status=1 status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 1: 42x: value too great for base (error token is "42x") /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 7: 42x: value too great for base (error token is "42x") |
brush | 64 Invalid constant [brush stdout] Expected '0\nstatus=0\nstatus=1\n', got '0\nstatus=0\nstatus=1\nstatus=1\n' [brush status] Expected 1, got 0 stdout: 0 status=0 status=1 status=1stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: 'a + 42x' [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: 'a + 42x' |
bash | 67 Negative numbers with bit shift stdout: 10 5 -9223372036854775808 --- 8 16 0 0 ---stderr: |
mksh | 67 Negative numbers with bit shift stdout: 10 5 -2147483648 --- 8 16 0 0 ---stderr: |
ksh | 67 Negative numbers with bit shift [ksh stdout] Expected '10\n5\n---\n8\n16\n---\n', got '10\n5\n-2147483648\n---\n8\n16\n0\n0\n---\n' stdout: 10 5 -2147483648 --- 8 16 0 0 ---stderr: |
toysh | 67 Negative numbers with bit shift [toysh stdout] Expected '10\n5\n---\n8\n16\n---\n', got '10\n5\n-9223372036854775808\n---\n8\n16\n0\n0\n---\n' stdout: 10 5 -9223372036854775808 --- 8 16 0 0 ---stderr: |
sush | 67 Negative numbers with bit shift [sush stdout] Expected '10\n5\n---\n8\n16\n---\n', got '10\n5\n0\n---\n8\n16\n0\n0\n---\n' stdout: 10 5 0 --- 8 16 0 0 ---stderr: |
brush | 67 Negative numbers with bit shift [brush stdout] Expected '10\n5\n---\n8\n16\n---\n', got '10\n5\n-9223372036854775808\n---\n8\n16\n0\n0\n---\n' stdout: 10 5 -9223372036854775808 --- 8 16 0 0 ---stderr: |
toysh | 68 undef[0] [toysh stdout] Expected 'ARITH 0\nstatus=0\n\nstatus=1\n\nUNDEF\nstatus=0\n' Got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
mksh | 69 undef[0] with nounset stdout: UNSET 0 status=0stderr: |
ksh | 69 undef[0] with nounset [ksh stdout] Expected '', got 'UNSET 0\nstatus=0\n' [ksh status] Expected 1, got 0 stdout: UNSET 0 status=0stderr: |
toysh | 69 undef[0] with nounset [toysh status] Expected 1, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
sush | 69 undef[0] with nounset [sush stdout] Expected '', got 'UNSET 0\nstatus=0\n' [sush status] Expected 1, got 0 stdout: UNSET 0 status=0stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: set: nounset: invalid option name |
brush | 69 undef[0] with nounset [brush stdout] Expected '', got 'UNSET 0\nstatus=0\n' [brush status] Expected 1, got 0 stdout: UNSET 0 status=0stderr: |
toysh | 70 s[0] with string abc [toysh stdout] Expected 'abc 0 0\nstatus=0\n\nstatus=1\n\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
toysh | 71 s[0] with string 42 [toysh stdout] Expected '42 42 0\nstatus=0\n', got '' [toysh status] Expected 0, got -6 stdout: stderr: munmap_chunk(): invalid pointer |
bash | 72 s[0] with string '12 34' stdout: status=1stderr: bash: line 2: 12 34: syntax error in expression (error token is "34") |
toysh | 72 s[0] with string '12 34' [toysh stdout] Expected '', got 'status=1\n' [toysh status] Expected 1, got 0 stdout: status=1stderr: main: line 2: sh: bad math: s[0] @ -9404 main: line 2: sh: bad math: s[0] @ 2 |
sush | 72 s[0] with string '12 34' [sush stdout] Expected '', got 'status=1\n' [sush status] Expected 1, got 0 stdout: status=1stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: s[0] : syntax error in expression (error token is "34") |
brush | 72 s[0] with string '12 34' [brush stdout] Expected '', got 'status=1\n' [brush status] Expected 1, got 0 stdout: status=1stderr: [31mERROR[0m error: arithmetic evaluation error: failed to parse expression: '12 34' |