run-file () { local spec_name=$1; shift; local spec_file=spec/$spec_name.test.sh; local suite; suite=$(test/sh_spec.py --print-spec-suite $spec_file); local spec_subdir; case $suite in osh) spec_subdir='osh-cpp' ;; ysh) spec_subdir='ysh-cpp' ;; *) die "Invalid suite $suite" ;; esac; local base_dir=_tmp/spec/$spec_subdir; mkdir -v -p $base_dir; sh-spec $spec_file --timeout 10 --oils-bin-dir $PWD/bin --oils-cpp-bin-dir $REPO_ROOT/_bin/cxx-asan --tsv-output $base_dir/${spec_name}.tsv "$@" }
spec test index / oilshell.org
50 passed, 0 OK, 0 not implemented, 0 BUG, 7 failed, 0 timeouts, 0 cases skipped 7 failed under osh
osh | 6 flag -n combined ${!ref} -- bash INVERTS [osh stdout] Expected 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=x\n' Got 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=FOO\n' stdout: ref=x !ref=foo NOW A NAMEREF ref=foo !ref=FOOstderr: |
osh-cpp | 6 flag -n combined ${!ref} -- bash INVERTS [osh-cpp stdout] Expected 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=x\n' Got 'ref=x\n!ref=foo\nNOW A NAMEREF\nref=foo\n!ref=FOO\n' stdout: ref=x !ref=foo NOW A NAMEREF ref=foo !ref=FOOstderr: |
osh | 25 a[2] in nameref [osh stdout] Expected 'ref=two\n', got 'ref=a[2]\n' stdout: ref=a[2]stderr: |
osh-cpp | 25 a[2] in nameref [osh-cpp stdout] Expected 'ref=two\n', got 'ref=a[2]\n' stdout: ref=a[2]stderr: |
osh | 26 a[expr] in nameref [osh stdout] Expected 'ref=three\n', got 'ref=a[$(echo 2) + 1]\n' stdout: ref=a[$(echo 2) + 1]stderr: |
osh-cpp | 26 a[expr] in nameref [osh-cpp stdout] Expected 'ref=three\n', got 'ref=a[$(echo 2) + 1]\n' stdout: ref=a[$(echo 2) + 1]stderr: |
osh | 27 a[@] in nameref [osh stdout] Expected "['ref', 'A B', 'C']\nstatus=1\n['ref[@]']\n['ref', 'A B', 'C']\n['a[@]', 'A B', 'C']\n" Got "['ref', 'a[@]']\nstatus=0\n['ref[@]', 'X', 'Y', 'Z']\n['ref', 'X']\n['a[@]', 'A B', 'C']\n" stdout: ['ref', 'a[@]'] status=0 ['ref[@]', 'X', 'Y', 'Z'] ['ref', 'X'] ['a[@]', 'A B', 'C']stderr: |
osh-cpp | 27 a[@] in nameref [osh-cpp stdout] Expected "['ref', 'A B', 'C']\nstatus=1\n['ref[@]']\n['ref', 'A B', 'C']\n['a[@]', 'A B', 'C']\n" Got "['ref', 'a[@]']\nstatus=0\n['ref[@]', 'X', 'Y', 'Z']\n['ref', 'X']\n['a[@]', 'A B', 'C']\n" stdout: ['ref', 'a[@]'] status=0 ['ref[@]', 'X', 'Y', 'Z'] ['ref', 'X'] ['a[@]', 'A B', 'C']stderr: |
osh | 29 bad mutation through nameref: ref[0]= where ref is array[0] [osh stdout] Expected 'status=1\nX Y Z\n', got '' [osh status] Expected 0, got 1 stdout: stderr: ref[0]=foo # error in bash: 'array[0]': not a valid identifier ^~~~ [ stdin ]:3: fatal: Can't assign to items in a string |
osh-cpp | 29 bad mutation through nameref: ref[0]= where ref is array[0] [osh-cpp stdout] Expected 'status=1\nX Y Z\n', got '' [osh-cpp status] Expected 0, got 1 stdout: stderr: ref[0]=foo # error in bash: 'array[0]': not a valid identifier ^~~~ [ stdin ]:3: fatal: Can't assign to items in a string |
osh | 30 @ in nameref isn't supported, unlike in ${!ref} [osh stdout] Expected u'', got 'status=0\nref=@\nstatus=0\n' [osh status] Expected 1, got 0 stdout: status=0 ref=@ status=0stderr: |
osh-cpp | 30 @ in nameref isn't supported, unlike in ${!ref} [osh-cpp stdout] Expected u'', got 'status=0\nref=@\nstatus=0\n' [osh-cpp status] Expected 1, got 0 stdout: status=0 ref=@ status=0stderr: |
osh | 31 Unquoted assoc reference on RHS [osh stdout] Expected "['bar']\n", got "['bashup_ev_r[foo]']\n" stdout: ['bashup_ev_r[foo]']stderr: |
osh-cpp | 31 Unquoted assoc reference on RHS [osh-cpp stdout] Expected "['bar']\n", got "['bashup_ev_r[foo]']\n" stdout: ['bashup_ev_r[foo]']stderr: |