spec test index / oilshell.org
| status | ysh | ysh-cpp | |
| pass | 10 | 9 | |
| FAIL | 3 | 4 | |
| total | 13 | 13 | |
| case | ysh | ysh-cpp | description |
| 0 | pass | pass | fastlex: NUL byte not allowed inside char literal #' ' |
| 1 | pass | pass | fastlex: NUL byte inside shebang line |
| 2 | pass | FAIL | Tea keywords don't interfere with YSH expressions |
| details | |||
| 3 | pass | pass | Catch AttributeError |
| 4 | pass | pass | Command sub paren parsing bug (#1387) |
| 5 | pass | pass | More Command sub paren parsing |
| 6 | pass | pass | don't execute empty command |
| 7 | FAIL | FAIL | Do && || with YSH constructs make sense/ |
| details | details | ||
| 8 | pass | pass | shvar then replace - bug #1986 context manager crash |
| 9 | pass | pass | Parsing crash - bug #2003 |
| 10 | FAIL | FAIL | proc with IFS= read -r line - dynamic scope - issue #2012 |
| details | details | ||
| 11 | FAIL | FAIL | func call inside proc call - error message attribution |
| details | details | ||
| 12 | pass | pass | Crash in parsing case on EOF condition - issue #2037 |
19 passed, 0 OK, 0 not implemented, 0 BUG, 3 failed, 0 timeouts, 0 cases skipped 3 failed under osh
| ysh-cpp | 2 Tea keywords don't interfere with YSH expressions [ysh-cpp stdout] Expected 'foo\n6\n', got '' [ysh-cpp status] Expected 0, got 1 stdout: stderr: AddressSanitizer:DEADLYSIGNAL
=================================================================
==25639==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x55a0fdd285dd bp 0x7ffee4e15320 sp 0x7ffee4e15300 T0)
==25639==The signal is caused by a READ memory access.
==25639==Hint: address points to the zero page.
#0 0x55a0fdd285dc in Dict<BigStr*, value_asdl::value_t*>::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367
#1 0x55a0fdc37fdc in Dict<BigStr*, value_asdl::value_t*>::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x437fdc)
#2 0x55a0fdbc8419 in expr_eval::ExprEvaluator::_EvalDot(syntax_asdl::Attribute*, value_asdl::value_t*) _gen/bin/oils_for_unix.mycpp.cc:51352
#3 0x55a0fdbc96dd in expr_eval::ExprEvaluator::_EvalAttribute(syntax_asdl::Attribute*) _gen/bin/oils_for_unix.mycpp.cc:51435
#4 0x55a0fdbcc544 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51698
#5 0x55a0fdbbce2d in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50494
#6 0x55a0fdbbd682 in expr_eval::ExprEvaluator::EvalExprSub(syntax_asdl::word_part__ExprSub*) _gen/bin/oils_for_unix.mycpp.cc:50521
#7 0x55a0fdb824da in word_eval::AbstractWordEvaluator::_EvalWordPart(syntax_asdl::word_part_t*, List<runtime_asdl::part_value_t*>*, int) _gen/bin/oils_for_unix.mycpp.cc:45998
#8 0x55a0fdb8347c in word_eval::AbstractWordEvaluator::_EvalWordToParts(syntax_asdl::CompoundWord*, List<runtime_asdl::part_value_t*>*, int) _gen/bin/oils_for_unix.mycpp.cc:46064
#9 0x55a0fdb8bea4 in word_eval::AbstractWordEvaluator::SimpleEvalWordSequence2(List<syntax_asdl::CompoundWord*>*, bool, bool) _gen/bin/oils_for_unix.mycpp.cc:46608
#10 0x55a0fdb8cc51 in word_eval::AbstractWordEvaluator::EvalWordSequence2(List<syntax_asdl::CompoundWord*>*, bool, bool) _gen/bin/oils_for_unix.mycpp.cc:46647
#11 0x55a0fdb048cc in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:35695
#12 0x55a0fdb1036b in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36574
#13 0x55a0fdb131a6 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:36853
#14 0x55a0fdb14f0e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37024
#15 0x55a0fda72db9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24417
#16 0x55a0fdc1e3cd in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57393
#17 0x55a0fd9c4429 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12377
#18 0x55a0fd9c4a8b in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12413
#19 0x55a0fdc20522 in main _gen/bin/oils_for_unix.mycpp.cc:57415
#20 0x7f5a993ac09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
#21 0x55a0fd99dfc9 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
==25639==ABORTING
|
| ysh | 7 Do && || with YSH constructs make sense/ [ysh stdout] Expected '', got '(List) [42]\n(Int) 42\n(Int) 42\n' stdout: (List) [42] (Int) 42 (Int) 42stderr: |
| ysh-cpp | 7 Do && || with YSH constructs make sense/ [ysh-cpp stdout] Expected '', got '(List) [42]\n(Int) 42\n(Int) 42\n' stdout: (List) [42] (Int) 42 (Int) 42stderr: |
| ysh | 10 proc with IFS= read -r line - dynamic scope - issue #2012 [ysh stdout] Expected 'zz\nyy\n', got 'zz\n' [ysh status] Expected 0, got 1 stdout: zzstderr: write $line
^~~~~
[ stdin ]:8: fatal: Undefined variable 'line'
echo yy | p-ifs
^~~~~
[ stdin ]:14: errexit PID 25905: command.Pipeline failed with status 1
|
| ysh-cpp | 10 proc with IFS= read -r line - dynamic scope - issue #2012 [ysh-cpp stdout] Expected 'zz\nyy\n', got 'zz\n' [ysh-cpp status] Expected 0, got 1 stdout: zzstderr: write $line
^~~~~
[ stdin ]:8: fatal: Undefined variable 'line'
echo yy | p-ifs
^~~~~
[ stdin ]:14: errexit PID 25926: command.Pipeline failed with status 1
|
| ysh | 11 func call inside proc call - error message attribution [ysh stdout] Expected '', got ' eval (ident([1,2,3]))\n ^\n[ -c flag ]:11: fatal: Arg 1 should be a Command, got List\n' stdout: eval (ident([1,2,3]))
^
[ -c flag ]:11: fatal: Arg 1 should be a Command, got List
stderr: |
| ysh-cpp | 11 func call inside proc call - error message attribution [ysh-cpp stdout] Expected '', got ' eval (ident([1,2,3]))\n ^\n[ -c flag ]:11: fatal: Arg 1 should be a Command, got List\n' stdout: eval (ident([1,2,3]))
^
[ -c flag ]:11: fatal: Arg 1 should be a Command, got List
stderr: |