Results for ysh-expr.test.sh

statusoshosh-cpp
pass 4443
FAIL 01
total4444
caseoshosh-cppdescription
0pass pass command sub $(echo hi)
1pass pass shell array %(a 'b c')
2pass pass empty array and simple_word_eval (regression test)
3pass pass Empty array and assignment builtin (regression)
4pass pass Shell arrays support tilde detection, static globbing, brace detection
5pass pass Set $HOME using 'var' (i.e. Oil string var in word evaluator)
6pass pass Use shell var in Oil expression
7pass pass Length doesn't apply to BashArray
8pass pass $[len(x)] inside strings
9pass pass Func with multiple args in multiple contexts
10pass pass Trailing Comma in Param list
11pass pass nested expr contexts
12pass pass YSH var used with shell arithmetic
13pass pass Parse { var x = 42 }
14pass pass double quoted
15pass pass double quoted respects strict_array
16pass pass simple var sub $name $0 $1 $? etc.
17pass pass braced var sub ${x:-default}
18pass pass braced var sub respects strict_array
19pass pass null / true / false
20pass pass Integer literals
21pass pass Integer literals with underscores
22pass pass Exponentiation with **
23pass pass Float Division
24pass pass Integer Division (rounds toward zero)
25pass pass % operator is remainder
26pass pass Bitwise logical
27pass pass Shift operators
28pass pass multiline strings, list, tuple syntax for list, etc.
29pass pass multiline dict
30pass pass multiline array and command sub (only here docs disallowed)
31pass pass obj->method()
32pass pass obj->method does NOT give you a bound method
33pass FAIL d.key
details
34pass pass a ++ b for string/list concatenation
35pass pass s ~~ glob and s !~~ glob
36pass pass Type Errors
37pass pass can't use ++ on integers
38pass pass can't do mystr ++ mylist
39pass pass expression literals
40pass pass No list comprehension in ^[]
41pass pass expression literals, evaluation failure
42pass pass expression literals, lazy evaluation
43pass pass expression literals, sugar for strings
87 passed, 0 OK, 0 not implemented, 0 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

osh-cpp33 d.key

[osh-cpp stdout] Expected 'andy\n', got ''
[osh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==29052==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x55771c3b05dd bp 0x7ffeb4b6f820 sp 0x7ffeb4b6f800 T0)
==29052==The signal is caused by a READ memory access.
==29052==Hint: address points to the zero page.
    #0 0x55771c3b05dc in Dict<BigStr*, value_asdl::value_t*>::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367
    #1 0x55771c2bffdc in Dict<BigStr*, value_asdl::value_t*>::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x437fdc)
    #2 0x55771c250419 in expr_eval::ExprEvaluator::_EvalDot(syntax_asdl::Attribute*, value_asdl::value_t*) _gen/bin/oils_for_unix.mycpp.cc:51352
    #3 0x55771c2516dd in expr_eval::ExprEvaluator::_EvalAttribute(syntax_asdl::Attribute*) _gen/bin/oils_for_unix.mycpp.cc:51435
    #4 0x55771c254544 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51698
    #5 0x55771c244e2d in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50494
    #6 0x55771c189a4e in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35523
    #7 0x55771c198f42 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36646
    #8 0x55771c19b1a6 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:36853
    #9 0x55771c19cf0e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37024
    #10 0x55771c0fadb9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24417
    #11 0x55771c2a63cd in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57393
    #12 0x55771c04c53f in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12381
    #13 0x55771c04ca8b in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12413
    #14 0x55771c2a8522 in main _gen/bin/oils_for_unix.mycpp.cc:57415
    #15 0x7f4e8cc6509a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #16 0x55771c025fc9 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
==29052==ABORTING