status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
pass | 38 | 34 | 35 | 29 | 37 | 37 | 13 | 35 | 24 | 39 | |
ok | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
N-I | 0 | 4 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
BUG | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
FAIL | 0 | 0 | 4 | 10 | 0 | 2 | 26 | 4 | 15 | 0 | |
total | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | 39 | |
case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
0 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | "${empty:-}" |
1 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | ${empty:-} |
2 | pass | N-I | FAIL | pass | N-I | FAIL | FAIL | pass | pass | pass | array with empty values |
details | details | details | details | details | |||||||
3 | pass | pass | pass | FAIL | pass | pass | pass | pass | FAIL | pass | substitution of IFS character, quoted and unquoted |
details | details | ||||||||||
4 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | :- |
5 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | - |
6 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Inner single quotes |
details | |||||||||||
7 | pass | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | Inner single quotes, outer double quotes |
details | |||||||||||
8 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Inner double quotes |
details | |||||||||||
9 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Inner double quotes, outer double quotes |
details | |||||||||||
10 | pass | pass | pass | FAIL | pass | pass | pass | pass | pass | pass | Multiple words: no quotes |
details | |||||||||||
11 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Multiple words: no outer quotes, inner single quotes |
details | details | ||||||||||
12 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Multiple words: no outer quotes, inner double quotes |
details | details | ||||||||||
13 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Multiple words: outer double quotes, no inner quotes |
14 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Multiple words: outer double quotes, inner double quotes |
details | |||||||||||
15 | pass | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | Multiple words: outer double quotes, inner single quotes |
details | |||||||||||
16 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | FAIL | pass | Mixed inner quotes |
details | details | details | |||||||||
17 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Mixed inner quotes with outer quotes |
details | |||||||||||
18 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | FAIL | pass | part_value tree with multiple words |
details | details | details | |||||||||
19 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | part_value tree on RHS |
details | |||||||||||
20 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | pass | pass | Var with multiple words: no quotes |
details | details | ||||||||||
21 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Multiple words: no outer quotes, inner single quotes |
details | |||||||||||
22 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Multiple words: no outer quotes, inner double quotes |
details | details | ||||||||||
23 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Multiple words: outer double quotes, no inner quotes |
details | |||||||||||
24 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Multiple words: outer double quotes, inner double quotes |
details | |||||||||||
25 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | FAIL | pass | Multiple words: outer double quotes, inner single quotes |
details | details | details | |||||||||
26 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | FAIL | pass | No outer quotes, Multiple internal quotes |
details | details | details | |||||||||
27 | pass | pass | pass | FAIL | pass | pass | pass | pass | pass | pass | Strip a string with single quotes, unquoted |
details | |||||||||||
28 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Strip a string with single quotes, double quoted |
29 | pass | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | The string to strip is space sensitive |
details | |||||||||||
30 | pass | pass | pass | FAIL | pass | pass | FAIL | pass | pass | pass | The string to strip can be single quoted, outer is unquoted |
details | details | ||||||||||
31 | pass | pass | pass | FAIL | ok | FAIL | pass | FAIL | pass | pass | Syntax error for single quote in double quote |
details | details | details | details | ||||||||
32 | pass | ok | pass | FAIL | pass | pass | FAIL | pass | FAIL | pass | "${undef-'c d'}" and "${foo%'c d'}" are parsed differently |
details | details | details | details | ||||||||
33 | pass | N-I | pass | pass | pass | pass | FAIL | pass | pass | pass | $'' allowed within VarSub arguments |
details | details | ||||||||||
34 | pass | pass | FAIL | pass | pass | pass | FAIL | pass | pass | pass | # operator with single quoted arg (dash/ash and bash/mksh disagree, reported by Crestwave) |
details | details | ||||||||||
35 | pass | N-I | FAIL | pass | pass | pass | FAIL | pass | pass | pass | / operator with single quoted arg (causes syntax error in regex in OSH, reported by Crestwave) |
details | details | details | |||||||||
36 | pass | N-I | FAIL | pass | pass | pass | FAIL | FAIL | FAIL | pass | single quotes work inside character classes |
details | details | details | details | details | |||||||
37 | pass | pass | pass | pass | pass | pass | FAIL | pass | FAIL | pass | comparison: :- operator with single quoted arg |
details | details | ||||||||||
38 | BUG | pass | pass | pass | pass | pass | FAIL | FAIL | FAIL | pass | Right Brace as argument (similar to #702) |
details | details | details | details |
321 passed, 2 OK, 5 not implemented, 1 BUG, 61 failed, 0 timeouts, 0 cases skipped
dash | 2 array with empty values stdout: stderr: dash: 1: Syntax error: "(" unexpected |
ash | 2 array with empty values [ash stdout] Expected "['', 'x', '', '']\n", got '' [ash status] Expected 0, got 2 stdout: stderr: ash: syntax error: unexpected "(" |
mksh | 2 array with empty values stdout: stderr: mksh: <stdin>[1]: syntax error: '(' unexpected |
ksh | 2 array with empty values [ksh stdout] Expected "['', 'x', '', '']\n", got '' [ksh status] Expected 0, got 1 stdout: stderr: E: ksh: <stdin>[1]: syntax error: unexpected '(' |
toysh | 2 array with empty values [toysh stdout] Expected "['', 'x', '', '']\n", got '' [toysh status] Expected 0, got 2 stdout: stderr: main: line 1: sh: syntax error: ) |
zsh | 3 substitution of IFS character, quoted and unquoted [zsh stdout] Expected "['']\n[':']\n", got "[':']\n[':']\n" stdout: [':'] [':']stderr: |
brush | 3 substitution of IFS character, quoted and unquoted [brush stdout] Expected "['']\n[':']\n", got "[]\n[':']\n" stdout: [] [':']stderr: |
toysh | 6 Inner single quotes [toysh stdout] Expected "['b']\n", got '["\'b\'"]\n' stdout: ["'b'"]stderr: |
brush | 7 Inner single quotes, outer double quotes [brush stdout] Expected '["\'b\'"]\n', got "['b']\n" stdout: ['b']stderr: |
toysh | 8 Inner double quotes [toysh stdout] Expected "['b']\n", got '[\'"b"\']\n' stdout: ['"b"']stderr: |
toysh | 9 Inner double quotes, outer double quotes [toysh stdout] Expected "['b']\n", got '[\'"b"\']\n' stdout: ['"b"']stderr: |
zsh | 10 Multiple words: no quotes [zsh stdout] Expected "['a', 'b', 'c']\n", got "['a b c']\n" stdout: ['a b c']stderr: |
toysh | 11 Multiple words: no outer quotes, inner single quotes [toysh stdout] Expected "['a b c']\n", got '["\'a", \'b\', "c\'"]\n' stdout: ["'a", 'b', "c'"]stderr: |
brush | 11 Multiple words: no outer quotes, inner single quotes [brush stdout] Expected "['a b c']\n", got "['a', 'b', 'c']\n" stdout: ['a', 'b', 'c']stderr: |
toysh | 12 Multiple words: no outer quotes, inner double quotes [toysh stdout] Expected "['a b c']\n", got '[\'"a\', \'b\', \'c"\']\n' stdout: ['"a', 'b', 'c"']stderr: |
brush | 12 Multiple words: no outer quotes, inner double quotes [brush stdout] Expected "['a b c']\n", got "['a', 'b', 'c']\n" stdout: ['a', 'b', 'c']stderr: |
toysh | 14 Multiple words: outer double quotes, inner double quotes [toysh stdout] Expected "['a b c']\n", got '[\'"a b c"\']\n' stdout: ['"a b c"']stderr: |
brush | 15 Multiple words: outer double quotes, inner single quotes [brush stdout] Expected '["\'a b c\'"]\n', got "['a b c']\n" stdout: ['a b c']stderr: |
zsh | 16 Mixed inner quotes [zsh stdout] Expected "['a b', 'c']\n", got "['a b c']\n" stdout: ['a b c']stderr: |
toysh | 16 Mixed inner quotes [toysh stdout] Expected "['a b', 'c']\n", got '[\'"a\', \'b"\', \'c\']\n' stdout: ['"a', 'b"', 'c']stderr: |
brush | 16 Mixed inner quotes [brush stdout] Expected "['a b', 'c']\n", got "['a', 'b', 'c']\n" stdout: ['a', 'b', 'c']stderr: |
toysh | 17 Mixed inner quotes with outer quotes [toysh stdout] Expected "['a b c']\n", got '[\'"a b" c\']\n' stdout: ['"a b" c']stderr: |
zsh | 18 part_value tree with multiple words [zsh stdout] Expected "['1 2', '3 45', '6 7']\n", got "['1 2 3 45 6 7']\n" stdout: ['1 2 3 45 6 7']stderr: |
toysh | 18 part_value tree with multiple words [toysh stdout] Expected "['1 2', '3 45', '6 7']\n", got '[\'${a:-"1\', \'2"\', \'"3\', \'4"5 6 7}\']\n' stdout: ['${a:-"1', '2"', '"3', '4"5 6 7}']stderr: |
brush | 18 part_value tree with multiple words [brush stdout] Expected "['1 2', '3 45', '6 7']\n", got "['1', '2', '3', '45', '6', '7']\n" stdout: ['1', '2', '3', '45', '6', '7']stderr: |
toysh | 19 part_value tree on RHS [toysh stdout] Expected "['1 2 3 45 6 7']\n", got '[\'${a:-"1 2" "3 4"5 6 7}\']\n' stdout: ['${a:-"1 2" "3 4"5 6 7}']stderr: |
zsh | 20 Var with multiple words: no quotes [zsh stdout] Expected "['a', 'b', 'c']\n", got "['a b c']\n" stdout: ['a b c']stderr: |
toysh | 20 Var with multiple words: no quotes [toysh stdout] Expected "['a', 'b', 'c']\n", got "['$var']\n" stdout: ['$var']stderr: |
toysh | 21 Multiple words: no outer quotes, inner single quotes [toysh stdout] Expected "['$var']\n", got '["\'$var\'"]\n' stdout: ["'$var'"]stderr: |
toysh | 22 Multiple words: no outer quotes, inner double quotes [toysh stdout] Expected "['a b c']\n", got '[\'"$var"\']\n' stdout: ['"$var"']stderr: |
brush | 22 Multiple words: no outer quotes, inner double quotes [brush stdout] Expected "['a b c']\n", got "['a', 'b', 'c']\n" stdout: ['a', 'b', 'c']stderr: |
toysh | 23 Multiple words: outer double quotes, no inner quotes [toysh stdout] Expected "['a b c']\n", got "['$var']\n" stdout: ['$var']stderr: |
toysh | 24 Multiple words: outer double quotes, inner double quotes [toysh stdout] Expected "['a b c']\n", got '[\'"$var"\']\n' stdout: ['"$var"']stderr: |
toysh | 25 Multiple words: outer double quotes, inner single quotes [toysh stdout] Expected '["\'a b c\'"]\n', got '["\'$var\'"]\n' stdout: ["'$var'"]stderr: |
sush | 25 Multiple words: outer double quotes, inner single quotes [sush stdout] Expected '["\'a b c\'"]\n', got '["\'$var\'"]\n' stdout: ["'$var'"]stderr: |
brush | 25 Multiple words: outer double quotes, inner single quotes [brush stdout] Expected '["\'a b c\'"]\n', got "['$var']\n" stdout: ['$var']stderr: |
zsh | 26 No outer quotes, Multiple internal quotes [zsh stdout] Expected "['Aa', 'b', 'c', ' a b cD', 'E', 'F']\n", got "['Aa b c a b cD E F']\n" stdout: ['Aa b c a b cD E F']stderr: |
toysh | 26 No outer quotes, Multiple internal quotes [toysh stdout] Expected "['Aa', 'b', 'c', ' a b cD', 'E', 'F']\n", got '[\'A$var\', \'"\', \'$var"D\', \'E\', \'F\']\n' stdout: ['A$var', '"', '$var"D', 'E', 'F']stderr: |
brush | 26 No outer quotes, Multiple internal quotes [brush stdout] Expected "['Aa', 'b', 'c', ' a b cD', 'E', 'F']\n", got "['Aa', 'b', 'c', 'a', 'b', 'cD', 'E', 'F']\n" stdout: ['Aa', 'b', 'c', 'a', 'b', 'cD', 'E', 'F']stderr: |
zsh | 27 Strip a string with single quotes, unquoted [zsh stdout] Expected '["\'a", \'b\', \'c\']\n', got '["\'a b c "]\n' stdout: ["'a b c "]stderr: |
brush | 29 The string to strip is space sensitive [brush stdout] Expected "['a b ', 'a b c d']\n", got "['a b ', 'a b ']\n" stdout: ['a b ', 'a b ']stderr: |
zsh | 30 The string to strip can be single quoted, outer is unquoted [zsh stdout] Expected "['a', 'b', 'a', 'b', 'c', 'd']\n", got "['a b ', 'a b c d']\n" stdout: ['a b ', 'a b c d']stderr: |
toysh | 30 The string to strip can be single quoted, outer is unquoted [toysh stdout] Expected "['a', 'b', 'a', 'b', 'c', 'd']\n", got "['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']\n" stdout: ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']stderr: |
zsh | 31 Syntax error for single quote in double quote [zsh stdout] Expected u'', got '["\'a b c "]\n' [zsh status] Expected 2, got 0 stdout: ["'a b c "]stderr: |
mksh | 31 Syntax error for single quote in double quote stdout: stderr: mksh: <stdin>[3]: no closing quote |
ksh | 31 Syntax error for single quote in double quote [ksh status] Expected 2, got 1 stdout: stderr: E: ksh: <stdin>[3]: no closing quote |
sush | 31 Syntax error for single quote in double quote [sush stdout] Expected u'', got '["\'a b c "]\n' [sush status] Expected 2, got 0 stdout: ["'a b c "]stderr: |
dash | 32 "${undef-'c d'}" and "${foo%'c d'}" are parsed differently stdout: ["'c d'", "'c d'"] ['c d', 'c d'] --- ['a b ', 'a b c d']stderr: |
zsh | 32 "${undef-'c d'}" and "${foo%'c d'}" are parsed differently [zsh stdout] Expected '["\'c d\'", "\'c d\'"]\n[\'c d\', \'c d\']\n---\n[\'a b \', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n' Got '["\'c d\'", "\'c d\'"]\n[\'c d\', \'c d\']\n---\n[\'a b \', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n["a b \'zzz\'", \'a b c d\']\n' stdout: ["'c d'", "'c d'"] ['c d', 'c d'] --- ['a b ', 'a b c d'] ['a b zzz', 'a b c d'] ["a b 'zzz'", 'a b c d']stderr: |
toysh | 32 "${undef-'c d'}" and "${foo%'c d'}" are parsed differently [toysh stdout] Expected '["\'c d\'", "\'c d\'"]\n[\'c d\', \'c d\']\n---\n[\'a b \', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n' Got '["\'c d\'", "\'c d\'"]\n["\'c", "d\'", "\'c", "d\'"]\n---\n[\'a b c d\', \'a b c d\']\n' [toysh status] Expected 0, got 2 stdout: ["'c d'", "'c d'"] ["'c", "d'", "'c", "d'"] --- ['a b c d', 'a b c d']stderr: main: line 9: sh: syntax error: ( |
brush | 32 "${undef-'c d'}" and "${foo%'c d'}" are parsed differently [brush stdout] Expected '["\'c d\'", "\'c d\'"]\n[\'c d\', \'c d\']\n---\n[\'a b \', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n' Got "['c d', 'c d']\n['c', 'd', 'c', 'd']\n---\n['a b ', 'a b c d']\n['a b zzz', 'a b c d']\n['a b zzz', 'a b c d']\n" stdout: ['c d', 'c d'] ['c', 'd', 'c', 'd'] --- ['a b ', 'a b c d'] ['a b zzz', 'a b c d'] ['a b zzz', 'a b c d']stderr: |
dash | 33 $'' allowed within VarSub arguments stdout: abc abcstderr: |
toysh | 33 $'' allowed within VarSub arguments [toysh stdout] Expected 'a\na\n', got 'abc\nabc\n' stdout: abc abcstderr: |
ash | 34 # operator with single quoted arg (dash/ash and bash/mksh disagree, reported by Crestwave) [ash stdout] Expected "--\n-a-\n-'a'-\n--\n", got "--\n--\n-'a'-\n-'a'-\n" stdout: -- -- -'a'- -'a'-stderr: |
toysh | 34 # operator with single quoted arg (dash/ash and bash/mksh disagree, reported by Crestwave) [toysh stdout] Expected "--\n--\n-'a'-\n-'a'-\n", got '-a-\n-a-\n\n\n' stdout: -a- -a-stderr: |
dash | 35 / operator with single quoted arg (causes syntax error in regex in OSH, reported by Crestwave) stdout: stderr: dash: 2: Bad substitution |
ash | 35 / operator with single quoted arg (causes syntax error in regex in OSH, reported by Crestwave) [ash stdout] Expected "no plus or minus ''''\nno plus or minus ++--++--\n" Got "no plus or minus ''''\nno plus or minus ''''\n" stdout: no plus or minus '''' no plus or minus ''''stderr: |
toysh | 35 / operator with single quoted arg (causes syntax error in regex in OSH, reported by Crestwave) [toysh stdout] Expected "no plus or minus ''''\nno plus or minus ''''\n" Got "no plus or minus ++--''++--''\nno plus or minus ++--''++--''\n" stdout: no plus or minus ++--''++--'' no plus or minus ++--''++--''stderr: |
dash | 36 single quotes work inside character classes stdout: stderr: dash: 2: Bad substitution |
ash | 36 single quotes work inside character classes [ash stdout] Expected 'a[[[---]]]b\n', got 'a---b\n' stdout: a---bstderr: |
toysh | 36 single quotes work inside character classes [toysh stdout] Expected 'a---b\n', got 'a[[[---]]]b\n' stdout: a[[[---]]]bstderr: |
sush | 36 single quotes work inside character classes [sush stdout] Expected 'a---b\n', got 'a[[[---]]]b\n' stdout: a[[[---]]]bstderr: |
brush | 36 single quotes work inside character classes [brush stdout] Expected 'a---b\n', got '' [brush status] Expected 0, got 1 stdout: stderr: [31mERROR[0m error: invalid regex: Parsing error at position 14: Invalid character class; expression: '(?ms)[\\\[\]\]' |
toysh | 37 comparison: :- operator with single quoted arg [toysh stdout] Expected "a\n'a'\n", got "'a'\n'a'\n" stdout: 'a' 'a'stderr: |
brush | 37 comparison: :- operator with single quoted arg [brush stdout] Expected "a\n'a'\n", got 'a\na\n' stdout: a astderr: |
bash | 38 Right Brace as argument (similar to #702) stdout: } } '}' }stderr: |
toysh | 38 Right Brace as argument (similar to #702) [toysh stdout] Expected "}\n}\n''}\n}\n", got '}\n}\n\'\'}\n"}\n' stdout: } } ''} "}stderr: |
sush | 38 Right Brace as argument (similar to #702) [sush stdout] Expected "}\n}\n''}\n}\n", got "}\n}\n'}'\n}\n" stdout: } } '}' }stderr: |
brush | 38 Right Brace as argument (similar to #702) [brush stdout] Expected "}\n}\n''}\n}\n", got '}\n}\n}\n}\n' stdout: } } } }stderr: |