Results for ysh-builtin-eval.test.sh

statusyshysh-cpp
pass 1817
FAIL 34
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)
16pass FAIL io->evalToDict() - local and global
details
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()
35 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

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)
ysh-cpp16 io->evalToDict() - local and global

[ysh-cpp stdout] Expected '(Dict) {"foo":42,"bar":"global"}\n(Dict) {"foo":42,"g":"-global","p":"-param","L":"-local"}\n' Got ''
[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==27421==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x557e9d30cbcb bp 0x7ffdbbb131e0 sp 0x7ffdbbb130e0 T0)
==27421==The signal is caused by a READ memory access.
==27421==Hint: address points to the zero page.
    #0 0x557e9d30cbca in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538bca)
    #1 0x557e9d218568 in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x444568)
    #2 0x557e9d06c2b8 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27259
    #3 0x557e9cfdbb84 in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16909
    #4 0x557e9d1a4c9d in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51540
    #5 0x557e9d1a58bf in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51589
    #6 0x557e9d1abfa9 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52098
    #7 0x557e9d19c11f in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50865
    #8 0x557e9d0dfa32 in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35876
    #9 0x557e9d0eef55 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36995
    #10 0x557e9d0f1342 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37213
    #11 0x557e9d0f3096 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37384
    #12 0x557e9d04d5c7 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24694
    #13 0x557e9d1fe110 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57809
    #14 0x557e9cf9a72f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12487
    #15 0x557e9cf9ad91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12523
    #16 0x557e9d200278 in main _gen/bin/oils_for_unix.mycpp.cc:57834
    #17 0x7f8e9a03009a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #18 0x557e9cf73fc9 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+0x538bca) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27421==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
=================================================================
==27448==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x55c512bb4bcb bp 0x7fffc2d733e0 sp 0x7fffc2d732e0 T0)
==27448==The signal is caused by a READ memory access.
==27448==Hint: address points to the zero page.
    #0 0x55c512bb4bca in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538bca)
    #1 0x55c512ac0568 in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x444568)
    #2 0x55c5129142b8 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27259
    #3 0x55c512883b84 in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16909
    #4 0x55c512a4cc9d in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51540
    #5 0x55c512a4d8bf in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51589
    #6 0x55c512a53fa9 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52098
    #7 0x55c512a4411f in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50865
    #8 0x55c512987a32 in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35876
    #9 0x55c512996f55 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36995
    #10 0x55c512999342 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37213
    #11 0x55c51299b096 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37384
    #12 0x55c5128f55c7 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24694
    #13 0x55c512aa6110 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57809
    #14 0x55c51284272f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12487
    #15 0x55c512842d91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12523
    #16 0x55c512aa8278 in main _gen/bin/oils_for_unix.mycpp.cc:57834
    #17 0x7f324f4fc09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #18 0x55c51281bfc9 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+0x538bca) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27448==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
=================================================================
==27505==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000004 (pc 0x5641f714dbcb bp 0x7ffe0a5c6a60 sp 0x7ffe0a5c6960 T0)
==27505==The signal is caused by a READ memory access.
==27505==Hint: address points to the zero page.
    #0 0x5641f714dbca in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x538bca)
    #1 0x5641f7059568 in Dict<BigStr*, runtime_asdl::Cell*>::set(BigStr*, runtime_asdl::Cell*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x444568)
    #2 0x5641f6ead2b8 in state::ctx_FrontFrame::ctx_FrontFrame(state::Mem*, Dict<BigStr*, value_asdl::value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:27259
    #3 0x5641f6e1cb84 in method_io::Eval::Call(typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:16909
    #4 0x5641f6fe5c9d in expr_eval::ExprEvaluator::_CallFunc(value_asdl::value_t*, typed_args::Reader*) _gen/bin/oils_for_unix.mycpp.cc:51540
    #5 0x5641f6fe68bf in expr_eval::ExprEvaluator::_EvalFuncCall(syntax_asdl::expr__FuncCall*) _gen/bin/oils_for_unix.mycpp.cc:51589
    #6 0x5641f6fecfa9 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:52098
    #7 0x5641f6fdd11f in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50865
    #8 0x5641f6f20a32 in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35876
    #9 0x5641f6f2ff55 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36995
    #10 0x5641f6f32342 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37213
    #11 0x5641f6f33100 in cmd_eval::CommandEvaluator::_ExecuteList(List<syntax_asdl::command_t*>*) _gen/bin/oils_for_unix.mycpp.cc:37278
    #12 0x5641f6f304c2 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:37039
    #13 0x5641f6f32342 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37213
    #14 0x5641f6f35f66 in cmd_eval::CommandEvaluator::RunProc(value_asdl::value__Proc*, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:37551
    #15 0x5641f6e8517d in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:24029
    #16 0x5641f6f1e21a in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:35715
    #17 0x5641f6f2403f in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36086
    #18 0x5641f6f2f537 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36935
    #19 0x5641f6f32342 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:37213
    #20 0x5641f6f34096 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37384
    #21 0x5641f6e8e5c7 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24694
    #22 0x5641f703f110 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57809
    #23 0x5641f6ddb72f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12487
    #24 0x5641f6ddbd91 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12523
    #25 0x5641f7041278 in main _gen/bin/oils_for_unix.mycpp.cc:57834
    #26 0x7f53e8c6a09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #27 0x5641f6db4fc9 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+0x538bca) in Dict<BigStr*, runtime_asdl::Cell*>::hash_and_probe(BigStr*) const
==27505==ABORTING