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
| status | ysh | ysh-cpp | |
| FAIL | 5 | 5 | |
| total | 5 | 5 | |
| case | ysh | ysh-cpp | description | 
| 0 | FAIL | FAIL | value.Expr test - positional test | 
| details | details | ||
| 1 | FAIL | FAIL | value.Expr test - named test | 
| details | details | ||
| 2 | FAIL | FAIL | assert builtin | 
| details | details | ||
| 3 | FAIL | FAIL | ysh --tool test file | 
| details | details | ||
| 4 | FAIL | FAIL | Describe Prototype | 
| details | details | 
0 passed, 0 OK, 0 not implemented, 0 BUG, 5 failed, 0 timeouts, 0 cases skipped 5 failed under osh
| ysh | 0 value.Expr test - positional test [ysh stdout] Expected '', got 'TODO\nparens\nexpr\n(Int) 43\n\nbrackets\nexpr\n(Expr) <Expr 0x7f6e15eb1cf8>\n\nexpr in parens\nexpr\n(Expr) <Expr 0x7f6e15ec4170>\n\n' stdout: TODO parens expr (Int) 43 brackets expr (Expr) <Expr 0x7f6e15eb1cf8> expr in parens expr (Expr) <Expr 0x7f6e15ec4170>stderr:  | 
| ysh-cpp | 0 value.Expr test - positional test [ysh-cpp stdout] Expected '', got 'TODO\nparens\nexpr\n(Int) 43\n\nbrackets\nexpr\n(Expr) <Expr 0x40c9>\n\nexpr in parens\nexpr\n(Expr) <Expr 0x5375>\n\n' stdout: TODO parens expr (Int) 43 brackets expr (Expr) <Expr 0x40c9> expr in parens expr (Expr) <Expr 0x5375>stderr:  | 
| ysh | 1 value.Expr test - named test [ysh stdout] Expected '', got 'TODO\nparens\nn\n(Int) 43\n\nbrackets\nn\n(Expr) <Expr 0x7f906c507cf8>\n\nexpr in parens\nn\n(Expr) <Expr 0x7f906c51a170>\n\nno value\nn\n(Expr) <Expr 0x7f906c4c9d40>\n\n' stdout: TODO parens n (Int) 43 brackets n (Expr) <Expr 0x7f906c507cf8> expr in parens n (Expr) <Expr 0x7f906c51a170> no value n (Expr) <Expr 0x7f906c4c9d40>stderr:  | 
| ysh-cpp | 1 value.Expr test - named test [ysh-cpp stdout] Expected '', got 'TODO\nparens\nn\n(Int) 43\n\nbrackets\n' [ysh-cpp status] Expected 0, got 1 stdout: TODO parens n (Int) 43 bracketsstderr: AddressSanitizer:DEADLYSIGNAL
=================================================================
==31980==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x5607684f18a7 bp 0x7ffe76c09ce0 sp 0x7ffe76c09be0 T0)
==31980==The signal is caused by a READ memory access.
==31980==Hint: address points to the zero page.
    #0 0x5607684f18a6 in Dict<BigStr*, value_asdl::value_t*>::hash_and_probe(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:308
    #1 0x56076840dd2e in Dict<BigStr*, value_asdl::value_t*>::set(BigStr*, value_asdl::value_t*) /home/uke/oil/mycpp/gc_dict.h:394
    #2 0x5607683b8578 in func_proc::EvalTypedArgsToProc(expr_eval::ExprEvaluator*, state::MutableOpts*, syntax_asdl::command__Simple*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:53142
    #3 0x5607682cf5fa in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:34668
    #4 0x5607682daae1 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:35538
    #5 0x5607682dd0b8 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:35781
    #6 0x5607682dec88 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:35939
    #7 0x56076824756e in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:23876
    #8 0x5607683e64bb in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:56203
    #9 0x56076819e019 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12121
    #10 0x56076819e67b in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12157
    #11 0x5607683e846c in main _gen/bin/oils_for_unix.mycpp.cc:56225
    #12 0x7f74f33c209a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #13 0x560768177fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x192fc9)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:308 in Dict<BigStr*, value_asdl::value_t*>::hash_and_probe(BigStr*) const
==31980==ABORTING
 | 
| ysh | 2 assert builtin [ysh stdout] Expected '', got 'TODO\nhi from assert\n(Expr) <Expr 0x7fddbe9bfcb0>\n\nvalue\n(Bool) true\n(Bool) true\n(Str) "default fail message"\nOK\nhi from assert\n(Expr) <Expr 0x7fddbe9bfe60>\n\nvalue\n(Bool) false\n(Bool) false\n(Str) "default fail message"\n' [ysh status] Expected 0, got 3 stdout: TODO hi from assert (Expr) <Expr 0x7fddbe9bfcb0> value (Bool) true (Bool) true (Str) "default fail message" OK hi from assert (Expr) <Expr 0x7fddbe9bfe60> value (Bool) false (Bool) false (Str) "default fail message"stderr:       var m = evalExpr(fail_message)
                       ^~~~~~~~~~~~
stdlib/testing.ysh:39: fatal: Arg 1 should be a Expr, got Str
 | 
| ysh-cpp | 2 assert builtin [ysh-cpp stdout] Expected '', got 'TODO\nhi from assert\n(Expr) <Expr 0x43bd>\n\nvalue\n(Bool) true\n(Bool) true\n(Str) "default fail message"\nOK\nhi from assert\n(Expr) <Expr 0x54bd>\n\nvalue\n(Bool) false\n(Bool) false\n(Str) "default fail message"\n' [ysh-cpp status] Expected 0, got 3 stdout: TODO hi from assert (Expr) <Expr 0x43bd> value (Bool) true (Bool) true (Str) "default fail message" OK hi from assert (Expr) <Expr 0x54bd> value (Bool) false (Bool) false (Str) "default fail message"stderr:       var m = evalExpr(fail_message)
                       ^~~~~~~~~~~~
stdlib/testing.ysh:39: fatal: Arg 1 should be a Expr, got Str
 | 
| ysh | 3 ysh --tool test file [ysh status] Expected 0, got 1 [ysh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 198, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 170, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 137, in AppBundleMain
    return shell.Main('ysh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1104, in Main
    raise AssertionError('TODO')
AssertionError: TODO
  $SH --tool test mytest.ysh
  ^~~
[ stdin ]:7: errexit PID 32027: command.Simple failed with status 1
 | 
| ysh-cpp | 3 ysh --tool test file [ysh-cpp status] Expected 0, got 134 stdout: stderr: ysh: _gen/bin/oils_for_unix.mycpp.cc:56179: int shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*): Assertion `0' failed. $SH --tool test mytest.ysh ^~~ [ stdin ]:7: errexit PID 32049: command.Simple failed with status 134  | 
| ysh | 4 Describe Prototype [ysh stdout] Expected 'TODO\n', got 'TODO\ndescribe\n' stdout: TODO describestderr:  | 
| ysh-cpp | 4 Describe Prototype [ysh-cpp stdout] Expected 'TODO\n', got 'TODO\ndescribe\n' stdout: TODO describestderr:  |