| status | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | |
| pass | 29 | 21 | 22 | 23 | 20 | 25 | 12 | 21 | 27 | 29 | |
| ok | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | |
| N-I | 0 | 6 | 5 | 1 | 5 | 0 | 0 | 0 | 0 | 0 | |
| BUG-2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
| BUG | 0 | 2 | 2 | 3 | 2 | 0 | 0 | 0 | 0 | 0 | |
| FAIL | 0 | 0 | 0 | 0 | 0 | 4 | 17 | 8 | 2 | 0 | |
| total | 29 | 29 | 29 | 29 | 29 | 29 | 29 | 29 | 29 | 29 | |
| case | bash | dash | ash | zsh | mksh | ksh | toysh | sush | brush | osh | description |
| 0 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Remove const suffix |
| 1 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Remove const prefix |
| 2 | pass | N-I | N-I | pass | N-I | FAIL | FAIL | pass | pass | pass | Remove const suffix is vectorized on user array |
| details | details | details | details | details | |||||||
| 3 | pass | N-I | N-I | pass | N-I | FAIL | FAIL | pass | pass | pass | Remove const suffix is vectorized on $@ array |
| details | details | details | details | details | |||||||
| 4 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Remove const suffix from undefined |
| 5 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Remove shortest glob suffix |
| 6 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Remove longest glob suffix |
| details | |||||||||||
| 7 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Remove shortest glob prefix |
| 8 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Remove longest glob prefix |
| 9 | pass | pass | pass | pass | N-I | pass | FAIL | pass | pass | pass | Strip char class |
| details | details | ||||||||||
| 10 | pass | BUG | BUG | BUG-2 | BUG | pass | FAIL | pass | pass | pass | Strip unicode prefix |
| details | details | details | details | details | |||||||
| 11 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | Bug fix: Test that you can remove everything with glob |
| details | |||||||||||
| 12 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | Test that you can remove everything with const |
| 13 | pass | N-I | N-I | pass | N-I | FAIL | FAIL | pass | pass | pass | Prepend using replacement of # |
| details | details | details | details | details | |||||||
| 14 | pass | N-I | N-I | pass | N-I | FAIL | FAIL | pass | pass | pass | Append using replacement of % |
| details | details | details | details | details | |||||||
| 15 | pass | pass | pass | BUG | ok | pass | FAIL | pass | pass | pass | strip unquoted and quoted [ |
| details | details | details | |||||||||
| 16 | pass | pass | pass | ok | ok | pass | FAIL | FAIL | pass | pass | strip unquoted and quoted [] |
| details | details | details | details | ||||||||
| 17 | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | strip unquoted and quoted ? |
| details | |||||||||||
| 18 | pass | pass | pass | pass | pass | pass | FAIL | FAIL | pass | pass | strip unquoted and quoted [a] |
| details | details | ||||||||||
| 19 | pass | N-I | pass | pass | pass | pass | FAIL | pass | FAIL | pass | Nested % and # operators (bug reported by Crestwave) |
| details | details | details | |||||||||
| 20 | pass | pass | pass | BUG | pass | pass | FAIL | FAIL | FAIL | pass | strip * (bug regression) |
| details | details | details | details | ||||||||
| 21 | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | pass | strip ? |
| details | |||||||||||
| 22 | pass | pass | pass | pass | pass | pass | pass | pass | pass | pass | strip all |
| 23 | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | strip none |
| details | |||||||||||
| 24 | pass | BUG | BUG | pass | BUG | pass | FAIL | pass | pass | pass | strip all unicode |
| details | details | details | details | ||||||||
| 25 | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | strip none unicode |
| details | |||||||||||
| 26 | pass | pass | pass | BUG | pass | pass | FAIL | FAIL | pass | pass | Strip Right Brace (#702) |
| details | details | details | |||||||||
| 27 | pass | pass | pass | pass | pass | pass | pass | FAIL | pass | pass | \(\) in pattern (regression) |
| details | |||||||||||
| 28 | pass | N-I | N-I | N-I | pass | pass | FAIL | pass | pass | pass | extglob in pattern |
| details | details | details | details |
229 passed, 3 OK, 17 not implemented, 10 BUG, 31 failed, 0 timeouts, 0 cases skipped
| dash | 2 Remove const suffix is vectorized on user array stdout: stderr: dash: 1: Syntax error: "(" unexpected
|
| ash | 2 Remove const suffix is vectorized on user array stdout: stderr: ash: syntax error: unexpected "("
|
| mksh | 2 Remove const suffix is vectorized on user array stdout: stderr: mksh: <stdin>[2]: ${a[@]%a}: bad substitution
|
| ksh | 2 Remove const suffix is vectorized on user array [ksh stdout] Expected "['1', '2', '3']\n" Got '' [ksh status] Expected 0 Got 1 stdout: stderr: E: ksh: <stdin>[2]: ${a[@]%a}: bad substitution
|
| toysh | 2 Remove const suffix is vectorized on user array [toysh stdout] Expected "['1', '2', '3']\n" Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: 1a |
| dash | 3 Remove const suffix is vectorized on $@ array stdout: ['1a', '2a', '3']stderr: |
| ash | 3 Remove const suffix is vectorized on $@ array stdout: ['1a', '2a', '3']stderr: |
| mksh | 3 Remove const suffix is vectorized on $@ array stdout: stderr: mksh: <stdin>[2]: ${@%a}: bad substitution
|
| ksh | 3 Remove const suffix is vectorized on $@ array [ksh stdout] Expected "['1', '2', '3']\n" Got '' [ksh status] Expected 0 Got 1 stdout: stderr: E: ksh: <stdin>[2]: ${@%a}: bad substitution
|
| toysh | 3 Remove const suffix is vectorized on $@ array [toysh stdout] Expected "['1', '2', '3']\n" Got '[]\n' stdout: []stderr: set: bad -- |
| toysh | 6 Remove longest glob suffix [toysh stdout] Expected 'aabb\n' Got 'aabbccdd\n' stdout: aabbccddstderr: |
| mksh | 9 Strip char class stdout: abcstderr: |
| toysh | 9 Strip char class [toysh stdout] Expected 'ab\n' Got 'abc\n' stdout: abcstderr: |
| dash | 10 Strip unicode prefix stdout: 274 - \n bc 2d 0a 274 - \n bc 2d 0a - 316 \n 2d ce 0a - 316 \n 2d ce 0astderr: |
| ash | 10 Strip unicode prefix stdout: 274 - \n bc 2d 0a 274 - \n bc 2d 0a - 316 \n 2d ce 0a - 316 \n 2d ce 0astderr: |
| zsh | 10 Strip unicode prefix stdout: \n 0a \n 0a \n 0a \n 0astderr: |
| mksh | 10 Strip unicode prefix stdout: 274 - \n bc 2d 0a 274 - \n bc 2d 0a - 316 \n 2d ce 0a - 316 \n 2d ce 0astderr: |
| toysh | 10 Strip unicode prefix [toysh stdout] Expected ' - \\n\n 2d 0a\n\n - \\n\n 2d 0a\n\n - \\n\n 2d 0a\n\n - \\n\n 2d 0a\n' Got ' - \\n\n 2d 0a\n\n - \\n\n 2d 0a\n\n - 316 \\n\n 2d ce 0a\n\n - \\n\n 2d 0a\n' stdout: - \n 2d 0a - \n 2d 0a - 316 \n 2d ce 0a - \n 2d 0astderr: |
| toysh | 11 Bug fix: Test that you can remove everything with glob [toysh stdout] Expected "['', '--x-', '-x--', '']\n" Got "['--x-', '--x-', '-x--', '']\n" stdout: ['--x-', '--x-', '-x--', '']stderr: |
| dash | 13 Prepend using replacement of # stdout: stderr: dash: 1: Syntax error: "(" unexpected
|
| ash | 13 Prepend using replacement of # stdout: stderr: ash: syntax error: unexpected "("
|
| mksh | 13 Prepend using replacement of # stdout: stderr: mksh: <stdin>[2]: ${array[@]/#/prefix-}: bad substitution
|
| ksh | 13 Prepend using replacement of # [ksh stdout] Expected "['prefix-aa', 'prefix-bb', 'prefix-']\n" Got '' [ksh status] Expected 0 Got 1 stdout: stderr: E: ksh: <stdin>[2]: ${array[@]/#/prefix-}: bad substitution
|
| toysh | 13 Prepend using replacement of # [toysh stdout] Expected "['prefix-aa', 'prefix-bb', 'prefix-']\n" Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: aa |
| dash | 14 Append using replacement of % stdout: stderr: dash: 1: Syntax error: "(" unexpected
|
| ash | 14 Append using replacement of % stdout: stderr: ash: syntax error: unexpected "("
|
| mksh | 14 Append using replacement of % stdout: stderr: mksh: <stdin>[2]: ${array[@]/%/-suffix}: bad substitution
|
| ksh | 14 Append using replacement of % [ksh stdout] Expected "['aa-suffix', 'bb-suffix', '-suffix']\n" Got '' [ksh status] Expected 0 Got 1 stdout: stderr: E: ksh: <stdin>[2]: ${array[@]/%/-suffix}: bad substitution
|
| toysh | 14 Append using replacement of % [toysh stdout] Expected "['aa-suffix', 'bb-suffix', '-suffix']\n" Got '' [toysh status] Expected 0 Got 2 stdout: stderr: main: line 1: sh: syntax error: aa |
| zsh | 15 strip unquoted and quoted [ stdout: stderr: zsh: bad pattern: [ |
| mksh | 15 strip unquoted and quoted [ stdout: [foo] foo] [foo] foo]stderr: |
| toysh | 15 strip unquoted and quoted [ [toysh stdout] Expected 'foo]\nfoo]\nfoo]\nfoo]\n' Got 'foo]\n[foo]\nfoo]\n[foo]\n' stdout: foo] [foo] foo] [foo]stderr: |
| zsh | 16 strip unquoted and quoted [] stdout: []foo[] foo[] []foo[] foo[]stderr: |
| mksh | 16 strip unquoted and quoted [] stdout: []foo[] foo[] []foo[] foo[]stderr: |
| toysh | 16 strip unquoted and quoted [] [toysh stdout] Expected 'foo[]\nfoo[]\nfoo[]\nfoo[]\n' Got 'foo[]\n[]foo[]\nfoo[]\n[]foo[]\n' stdout: foo[] []foo[] foo[] []foo[]stderr: |
| sush | 16 strip unquoted and quoted [] [sush stdout] Expected 'foo[]\nfoo[]\nfoo[]\nfoo[]\n' Got '[]foo[]\n[]foo[]\n[]foo[]\n[]foo[]\n' stdout: []foo[] []foo[] []foo[] []foo[]stderr: |
| sush | 17 strip unquoted and quoted ? [sush stdout] Expected 'foo]\n[foo]\nfoo]\n[foo]\n' Got 'foo]\nfoo]\nfoo]\nfoo]\n' stdout: foo] foo] foo] foo]stderr: |
| toysh | 18 strip unquoted and quoted [a] [toysh stdout] Expected '[a]foo[]\nfoo[]\n[a]foo[]\nfoo[]\n' Got 'foo[]\n[a]foo[]\nfoo[]\n[a]foo[]\n' stdout: foo[] [a]foo[] foo[] [a]foo[]stderr: |
| sush | 18 strip unquoted and quoted [a] [sush stdout] Expected '[a]foo[]\nfoo[]\n[a]foo[]\nfoo[]\n' Got '[a]foo[]\n[a]foo[]\n[a]foo[]\n[a]foo[]\n' stdout: [a]foo[] [a]foo[] [a]foo[] [a]foo[]stderr: |
| dash | 19 Nested % and # operators (bug reported by Crestwave) stdout: ['\\n'] ['$\\n'] ['$'] [''] ['a'] ['a']stderr: |
| toysh | 19 Nested % and # operators (bug reported by Crestwave) [toysh stdout] Expected "['']\n['\\n']\n['\\n']\n['']\n['a']\n['a']\n" Got "['']\n['\\n']\n['\\n}']\n['']\n['a']\n['a}']\n" stdout: [''] ['\n'] ['\n}'] [''] ['a'] ['a}']stderr: |
| brush | 19 Nested % and # operators (bug reported by Crestwave) [brush stdout] Expected "['']\n['\\n']\n['\\n']\n['']\n['a']\n['a']\n" Got "['']\n['']\n['']\n['']\n['a']\n['a']\n" stdout: [''] [''] [''] [''] ['a'] ['a']stderr: |
| zsh | 20 strip * (bug regression) stdout: ['abc'] [''] ['ab'] ['']stderr: |
| toysh | 20 strip * (bug regression) [toysh stdout] Expected "['abc']\n['']\n['abc']\n['']\n" Got "['abc']\n['']\n['ab']\n['abc']\n" stdout: ['abc'] [''] ['ab'] ['abc']stderr: |
| sush | 20 strip * (bug regression) [sush stdout] Expected "['abc']\n['']\n['abc']\n['']\n" Got "['abc']\n['']\n['ab']\n['']\n" stdout: ['abc'] [''] ['ab'] ['']stderr: |
| brush | 20 strip * (bug regression) [brush stdout] Expected "['abc']\n['']\n['abc']\n['']\n" Got "['bc']\n['']\n['ab']\n['']\n" stdout: ['bc'] [''] ['ab'] ['']stderr: |
| toysh | 21 strip ? [toysh stdout] Expected "['bc']\n['bc']\n['ab']\n['ab']\n" Got "['bc']\n['bc']\n['abc']\n['ab']\n" stdout: ['bc'] ['bc'] ['abc'] ['ab']stderr: |
| sush | 23 strip none [sush stdout] Expected "['abc']\n['abc']\n['abc']\n['abc']\n" Got '' [sush status] Expected 0 Got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: evaluation error /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: evaluation error /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: evaluation error /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: evaluation error |
| dash | 24 strip all unicode stdout: μabcμ μabcμ μabcμ μabcμstderr: |
| ash | 24 strip all unicode stdout: μabcμ μabcμ μabcμ μabcμstderr: |
| mksh | 24 strip all unicode stdout: μabcμ μabcμ μabcμ μabcμstderr: |
| toysh | 24 strip all unicode [toysh stdout] Expected '\n\n\n\n' Got '\n\n\xce\n\n' stdout: '\n\n\xce\n\n'stderr: |
| sush | 25 strip none unicode [sush stdout] Expected "['\\xce\\xbcabc\\xce\\xbc']\n['\\xce\\xbcabc\\xce\\xbc']\n['\\xce\\xbcabc\\xce\\xbc']\n['\\xce\\xbcabc\\xce\\xbc']\n" Got '' [sush status] Expected 0 Got 1 stdout: stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: evaluation error /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 3: evaluation error /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 4: evaluation error /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 5: evaluation error |
| zsh | 26 Strip Right Brace (#702) stdout: 1 $foo 2 10 }} 11 12 }'} 13stderr: |
| toysh | 26 Strip Right Brace (#702) [toysh stdout] Expected '1 $foo\n2 \n10 }}\n11 \n12 \n13 \n' Got "1 \n2 \n10 }}\n11 \n12 }'}\n13 }}\n" stdout: 1 2 10 }} 11 12 }'} 13 }}stderr: |
| sush | 26 Strip Right Brace (#702) [sush stdout] Expected '1 $foo\n2 \n10 }}\n11 \n12 \n13 \n' Got '2 \n11 \n12 \n13 \n' stdout: 2 11 12 13stderr: /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 2: evaluation error /home/andy/git/oils-for-unix/oils/../../shells/rusty_bash/target/release/sush: line 6: evaluation error |
| sush | 27 \(\) in pattern (regression) [sush stdout] Expected '1 foo\n2\n3\n4\n' Got '1 foo()\n2 foo()\n3 foo()\n4 foo()\n' stdout: 1 foo() 2 foo() 3 foo() 4 foo()stderr: |
| dash | 28 extglob in pattern stdout: stderr: |
| ash | 28 extglob in pattern stdout: stderr: |
| zsh | 28 extglob in pattern stdout: stderr: |
| toysh | 28 extglob in pattern [toysh stdout] Expected '1 foo\n2\n3\n4\n' Got '' [toysh status] Expected 0 Got -6 stdout: stderr: munmap_chunk(): invalid pointer |