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 "$@" } ysh-builtins: spec test case results

Results for ysh-builtins.test.sh

statusoshosh-cpp
pass 2929
FAIL 33
total3232
caseoshosh-cppdescription
0pass pass append onto BashArray a=(1 2)
1pass pass append onto var a = :| 1 2 |
2pass pass append onto var a = ['1', '2']
3pass pass append without typed arg
4pass pass append passed invalid type
5pass pass write --sep, --end, -n, varying flag syntax
6pass pass write --json
7pass pass write --j8
8pass pass write -e not supported
9pass pass write syntax error
10pass pass write --
11pass pass read flag usage
12pass pass read (&x) is usage error
13pass pass read --raw-line
14pass pass Mixing read --line with read -r
15pass pass read --line --with-eol
16FAIL FAIL read --raw-line --j8
detailsdetails
17pass pass echo builtin should disallow typed args - literal
18pass pass echo builtin should disallow typed args - variable
19FAIL FAIL read --all-lines
detailsdetails
20FAIL FAIL read --all-lines --with-eol
detailsdetails
21pass pass Can simulate read --all-lines with a proc and value.Place
22pass pass read --all
23pass pass read --all from directory is an error (EISDIR)
24pass pass read --num-bytes
25pass pass read -0 is like read -r -d ''
26pass pass simple_test_builtin
27pass pass long flags to test
28pass pass push-registers
29pass pass push-registers usage
30pass pass fopen
31pass pass type(x)
58 passed, 0 OK, 0 not implemented, 0 BUG, 3 failed, 0 timeouts, 0 cases skipped
3 failed under osh

Details on runs that didn't PASS

osh16 read --raw-line --j8

[osh stdout] Expected 'foo\n', got '\n'

stdout:
stderr: 
  echo $'u\'foo\'' | read --raw-line --j8
                                     ^~~~
[ stdin ]:1: 'read' got invalid flag '--j8'
osh-cpp16 read --raw-line --j8

[osh-cpp stdout] Expected 'foo\n', got '\n'

stdout:
stderr: 
  echo $'u\'foo\'' | read --raw-line --j8
                                     ^~~~
[ stdin ]:1: 'read' got invalid flag '--j8'
osh19 read --all-lines

[osh stdout] Expected '1 2 3\n', got '@nums\n'

stdout:
@nums
stderr:
  seq 3 | read --all-lines :nums
               ^~~~~~~~~~~
[ stdin ]:1: 'read' got invalid flag '--all-lines'
osh-cpp19 read --all-lines

[osh-cpp stdout] Expected '1 2 3\n', got '@nums\n'

stdout:
@nums
stderr:
  seq 3 | read --all-lines :nums
               ^~~~~~~~~~~
[ stdin ]:1: 'read' got invalid flag '--all-lines'
osh20 read --all-lines --with-eol

[osh stdout] Expected '1\n2\n3\n', got '@nums\n'

stdout:
@nums
stderr:
  seq 3 | read --all-lines --with-eol :nums
               ^~~~~~~~~~~
[ stdin ]:1: 'read' got invalid flag '--all-lines'
osh-cpp20 read --all-lines --with-eol

[osh-cpp stdout] Expected '1\n2\n3\n', got '@nums\n'

stdout:
@nums
stderr:
  seq 3 | read --all-lines --with-eol :nums
               ^~~~~~~~~~~
[ stdin ]:1: 'read' got invalid flag '--all-lines'