Results for ysh-builtin-eval.test.sh

statusyshysh-cpp
pass 1717
FAIL 44
total2121
caseyshysh-cppdescription
0pass pass Eval does not take a literal block - can restore this later
1pass pass Eval a block within a proc
2pass pass Eval block created by calling a proc
3pass pass eval (block) can read variables like eval ''
4FAIL FAIL eval should have a sandboxed mode
detailsdetails
5pass pass eval with argv bindings
6pass pass eval lines with argv bindings
7pass pass eval lines with var bindings
8pass pass eval with custom dollar0
9pass pass eval with vars bindings
10pass pass dynamic binding names and mutation
11pass pass binding procs in the eval-ed namespace
12pass pass vars initializes the variable frame, but does not remember it
13pass pass eval pos_args must be strings
14pass pass eval with vars follows same scoping as without
15pass pass eval 'mystring' vs. eval (myblock)
16FAIL FAIL io->evalToDict() - local and global
detailsdetails
17FAIL FAIL parseCommand then io->evalToDict() - in global scope
detailsdetails
18pass pass parseCommand with syntax error
19FAIL FAIL Dict (&d) { } function - local scope with __pframe__
detailsdetails
20pass pass bindings created shvar persist, which is different than evalToDict()
34 passed, 0 OK, 0 not implemented, 0 BUG, 4 failed, 0 timeouts, 0 cases skipped
4 failed under osh

Details on runs that didn't PASS

ysh4 eval should have a sandboxed mode

[ysh stdout] Expected 'TODO\n', got ''

stdout:
stderr: 
    push-frame {
               ^
[ stdin ]:4: fatal: 'push-frame' appears to be external. External commands don't accept typed args (OILS-ERR-200)
ysh-cpp4 eval should have a sandboxed mode

[ysh-cpp stdout] Expected 'TODO\n', got ''

stdout:
stderr: 
    push-frame {
               ^
[ stdin ]:4: fatal: 'push-frame' appears to be external. External commands don't accept typed args (OILS-ERR-200)
ysh16 io->evalToDict() - local and global

[ysh stdout] Expected '(Dict) {"foo":42,"bar":"zz"}\n(Dict) {"foo":42,"bar":"zz"}\n' Got ''
[ysh status] Expected 0, got 1

stdout:
stderr: 
  var d = io->evalToDict(^(var foo = 42; var bar = g;))
                                                   ^
[ stdin ]:3: fatal: Undefined variable 'g'
ysh-cpp16 io->evalToDict() - local and global

[ysh-cpp stdout] Expected '(Dict) {"foo":42,"bar":"zz"}\n(Dict) {"foo":42,"bar":"zz"}\n' Got ''
[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27450==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x562c74f1aecf bp 0x7ffccf891ca0 sp 0x7ffccf891ba0 T0)
==27450==The signal is caused by a READ memory access.
==27450==Hint: address points to the zero page.
    #0 0x562c74f1aece in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x537ece)
    #1 0x562c74e2683e in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x44383e)
    #2 0x562c74c7b2b8 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27259
    #3 0x562c74beab84 in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16909
    #4 0x562c74db2f73 in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51515
    #5 0x562c74db3b95 in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51564
    #6 0x562c74dba27f in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52073
    #7 0x562c74daa3f5 in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50840
    #8 0x562c74cedd08 in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35851
    #9 0x562c74cfd22b in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36970
    #10 0x562c74cff618 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37188
    #11 0x562c74d0136c in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37359
    #12 0x562c74c5c5c7 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24694
    #13 0x562c74e0c3e6 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57784
    #14 0x562c74ba972f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12487
    #15 0x562c74ba9d91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12523
    #16 0x562c74e0e54e in main _gen/bin/oils_for_unix.mycpp.cc:57809
    #17 0x7f8a7112b09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #18 0x562c74b82fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x537ece) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27450==ABORTING
ysh17 parseCommand then io->evalToDict() - in global scope

[ysh stdout] Expected '<Command>\nhi\n(Dict)\n', got '<Command>\nhi\n(Dict) {"x":42,"y":99}\n'

stdout:
<Command>
hi
(Dict)   {"x":42,"y":99}
stderr:
ysh-cpp17 parseCommand then io->evalToDict() - in global scope

[ysh-cpp stdout] Expected '<Command>\nhi\n(Dict)\n', got '<Command>\n'
[ysh-cpp status] Expected 0, got 1

stdout:
<Command>
stderr:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27477==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x5582a32f4ecf bp 0x7ffe5ba60220 sp 0x7ffe5ba60120 T0)
==27477==The signal is caused by a READ memory access.
==27477==Hint: address points to the zero page.
    #0 0x5582a32f4ece in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x537ece)
    #1 0x5582a320083e in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x44383e)
    #2 0x5582a30552b8 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27259
    #3 0x5582a2fc4b84 in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16909
    #4 0x5582a318cf73 in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51515
    #5 0x5582a318db95 in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51564
    #6 0x5582a319427f in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52073
    #7 0x5582a31843f5 in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50840
    #8 0x5582a30c7d08 in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35851
    #9 0x5582a30d722b in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36970
    #10 0x5582a30d9618 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37188
    #11 0x5582a30db36c in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37359
    #12 0x5582a30365c7 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24694
    #13 0x5582a31e63e6 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57784
    #14 0x5582a2f8372f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12487
    #15 0x5582a2f83d91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12523
    #16 0x5582a31e854e in main _gen/bin/oils_for_unix.mycpp.cc:57809
    #17 0x7f715791c09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #18 0x5582a2f5cfc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x537ece) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27477==ABORTING
ysh19 Dict (&d) { } function - local scope with __pframe__

[ysh stdout] Expected '', got '(Dict) {"k":"k2","k2":"z","myglobal":"global"}\n(Dict) {k: \'k2\', k2: \'z\', myglobal: \'global\'}\nk-shadowed\nk2-shadowed\n'

stdout:
(Dict)   {"k":"k2","k2":"z","myglobal":"global"}
(Dict)  {k: 'k2', k2: 'z', myglobal: 'global'}
k-shadowed
k2-shadowed
stderr:
ysh-cpp19 Dict (&d) { } function - local scope with __pframe__

[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27530==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x55f3d9f93ecf bp 0x7ffe8e5cc4b0 sp 0x7ffe8e5cc3b0 T0)
==27530==The signal is caused by a READ memory access.
==27530==Hint: address points to the zero page.
    #0 0x55f3d9f93ece in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x537ece)
    #1 0x55f3d9e9f83e in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x44383e)
    #2 0x55f3d9cf42b8 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27259
    #3 0x55f3d9c63b84 in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16909
    #4 0x55f3d9e2bf73 in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51515
    #5 0x55f3d9e2cb95 in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51564
    #6 0x55f3d9e3327f in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52073
    #7 0x55f3d9e233f5 in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50840
    #8 0x55f3d9d66d08 in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35851
    #9 0x55f3d9d7622b in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36970
    #10 0x55f3d9d78618 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37188
    #11 0x55f3d9d793d6 in cmd_eval::CommandEvaluator::_ExecuteList(List<syntax_asdl::command_t*>*) _gen/bin/oils_for_unix.mycpp.cc:37253
    #12 0x55f3d9d76798 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37014
    #13 0x55f3d9d78618 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37188
    #14 0x55f3d9d7c23c in cmd_eval::CommandEvaluator::RunProc(value_asdl::value__Proc*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:37526
    #15 0x55f3d9ccc17d in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:24029
    #16 0x55f3d9d644f0 in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:35690
    #17 0x55f3d9d6a315 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36061
    #18 0x55f3d9d7580d in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36910
    #19 0x55f3d9d78618 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37188
    #20 0x55f3d9d7a36c in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37359
    #21 0x55f3d9cd55c7 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24694
    #22 0x55f3d9e853e6 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57784
    #23 0x55f3d9c2272f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12487
    #24 0x55f3d9c22d91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12523
    #25 0x55f3d9e8754e in main _gen/bin/oils_for_unix.mycpp.cc:57809
    #26 0x7f907f42e09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #27 0x55f3d9bfbfc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19ffc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x537ece) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27530==ABORTING