Results for ysh-builtin-eval.test.sh

statusyshysh-cpp
pass 1514
FAIL 12
total1616
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 FAIL binding procs in the eval-ed namespace
details
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)
29 passed, 0 OK, 0 not implemented, 0 BUG, 1 failed, 0 timeouts, 0 cases skipped
1 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-cpp11 binding procs in the eval-ed namespace

[ysh-cpp status] Expected 0, got 1

stdout:
flag -h --help
arg file
stderr:
  try { flag }
        ^~~~
[ stdin ]:19: 'flag' not found (OILS-ERR-100)
AddressSanitizer:DEADLYSIGNAL
=================================================================
==26245==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x562498e095dd bp 0x7fffd5833e70 sp 0x7fffd5833e50 T0)
==26245==The signal is caused by a READ memory access.
==26245==Hint: address points to the zero page.
    #0 0x562498e095dc in Dict<BigStr*, value_asdl::value_t*>::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367
    #1 0x562498d18fdc in Dict<BigStr*, value_asdl::value_t*>::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x437fdc)
    #2 0x562498ca9419 in expr_eval::ExprEvaluator::_EvalDot(syntax_asdl::Attribute*, value_asdl::value_t*) _gen/bin/oils_for_unix.mycpp.cc:51352
    #3 0x562498caa6dd in expr_eval::ExprEvaluator::_EvalAttribute(syntax_asdl::Attribute*) _gen/bin/oils_for_unix.mycpp.cc:51435
    #4 0x562498cad544 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51698
    #5 0x562498ca43b9 in expr_eval::ExprEvaluator::_EvalCompare(syntax_asdl::expr__Compare*) _gen/bin/oils_for_unix.mycpp.cc:51002
    #6 0x562498cac574 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51601
    #7 0x562498c9de2d in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50494
    #8 0x562498be17db in cmd_eval::CommandEvaluator::_EvalCondition(syntax_asdl::condition_t*, syntax_asdl::Token*) _gen/bin/oils_for_unix.mycpp.cc:35450
    #9 0x562498bee48e in cmd_eval::CommandEvaluator::_DoIf(syntax_asdl::command__If*) _gen/bin/oils_for_unix.mycpp.cc:36348
    #10 0x562498bf299c in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36735
    #11 0x562498bf41a6 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:36853
    #12 0x562498bf5f0e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37024
    #13 0x562498b53db9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24417
    #14 0x562498cff3cd in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57393
    #15 0x562498aa5429 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12377
    #16 0x562498aa5a8b in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12413
    #17 0x562498d01522 in main _gen/bin/oils_for_unix.mycpp.cc:57415
    #18 0x7fab1667d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #19 0x562498a7efc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19dfc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/uke/oil/mycpp/gc_dict.h:367 in Dict<BigStr*, value_asdl::value_t*>::find_kv_index(BigStr*) const
==26245==ABORTING