Results for ysh-assign.test.sh

statusyshysh-cpp
pass 1916
FAIL 25
total2121
caseyshysh-cppdescription
0pass pass proc static check: const can't be mutated
1pass pass top-level dynamic check: const can't be be mutated
2pass pass top level: var can be redefined by var/const
3pass pass setvar mutates local
4pass pass top level: setvar creates global
5pass pass top level: setvar mutates var
6pass pass proc static check: variable changed by setvar must be declared
7pass pass setglobal
8pass pass setglobal of undeclared var is allowed
9pass pass var a, b does implicit null init
10pass pass var x, y = f()
11pass pass const x, y = f()
12pass pass setvar x, y = 1, 2
13pass FAIL setvar to swap List and Dict elements
details
14pass FAIL setvar d.key = 42 (setitem)
details
15pass pass setvar mylist[1] = 42 (setitem)
16pass pass mixing assignment builtins and YSH assignment
17FAIL FAIL circular dict - TODO 2023-06 REGRESS
detailsdetails
18FAIL FAIL circular list - TODO 2023-06 REGRESS
detailsdetails
19pass pass exit code of var, const, setvar with command sub
20pass FAIL setvar obj[INVALID TYPE] =
details
35 passed, 0 OK, 0 not implemented, 0 BUG, 2 failed, 0 timeouts, 0 cases skipped
2 failed under osh

Details on runs that didn't PASS

ysh-cpp13 setvar to swap List and Dict elements

[ysh-cpp stdout] Expected '1 2 3\n2 1 3\n42 1 3\n{\n "int": 2\n}\n', got '1 2 3\n2 1 3\n'
[ysh-cpp status] Expected 0, got 1

stdout:
1 2 3
2 1 3
stderr:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==25334==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x560922f7f5dd bp 0x7ffd2e6a6910 sp 0x7ffd2e6a68f0 T0)
==25334==The signal is caused by a READ memory access.
==25334==Hint: address points to the zero page.
    #0 0x560922f7f5dc in Dict<BigStr*, value_asdl::value_t*>::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367
    #1 0x560922e8efdc in Dict<BigStr*, value_asdl::value_t*>::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x437fdc)
    #2 0x560922e1f419 in expr_eval::ExprEvaluator::_EvalDot(syntax_asdl::Attribute*, value_asdl::value_t*) _gen/bin/oils_for_unix.mycpp.cc:51352
    #3 0x560922e206dd in expr_eval::ExprEvaluator::_EvalAttribute(syntax_asdl::Attribute*) _gen/bin/oils_for_unix.mycpp.cc:51435
    #4 0x560922e23544 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51698
    #5 0x560922e2292e in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51630
    #6 0x560922e13e2d in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50494
    #7 0x560922d59fe3 in cmd_eval::CommandEvaluator::_DoMutation(syntax_asdl::command__Mutation*) _gen/bin/oils_for_unix.mycpp.cc:35604
    #8 0x560922d68004 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36652
    #9 0x560922d6a1a6 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:36853
    #10 0x560922d6bf0e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37024
    #11 0x560922cc9db9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24417
    #12 0x560922e753cd in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57393
    #13 0x560922c1b429 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12377
    #14 0x560922c1ba8b in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12413
    #15 0x560922e77522 in main _gen/bin/oils_for_unix.mycpp.cc:57415
    #16 0x7fa88242309a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #17 0x560922bf4fc9 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
==25334==ABORTING
ysh-cpp14 setvar d.key = 42 (setitem)

[ysh-cpp stdout] Expected 'f3=43\nf2=42\n', got ''
[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==25363==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x5604ba7335ca bp 0x7ffd4e7b6d00 sp 0x7ffd4e7b6ce0 T0)
==25363==The signal is caused by a READ memory access.
==25363==Hint: address points to the zero page.
    #0 0x5604ba7335c9 in Dict<BigStr*, value_asdl::value_t*>::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367
    #1 0x5604ba642fdc in Dict<BigStr*, value_asdl::value_t*>::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x437fdc)
    #2 0x5604ba5d3419 in expr_eval::ExprEvaluator::_EvalDot(syntax_asdl::Attribute*, value_asdl::value_t*) _gen/bin/oils_for_unix.mycpp.cc:51352
    #3 0x5604ba5d46dd in expr_eval::ExprEvaluator::_EvalAttribute(syntax_asdl::Attribute*) _gen/bin/oils_for_unix.mycpp.cc:51435
    #4 0x5604ba5d7544 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51698
    #5 0x5604ba5c7e2d in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50494
    #6 0x5604ba50ca4e in cmd_eval::CommandEvaluator::_DoVarDecl(syntax_asdl::command__VarDecl*) _gen/bin/oils_for_unix.mycpp.cc:35523
    #7 0x5604ba51bf42 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36646
    #8 0x5604ba51e1a6 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:36853
    #9 0x5604ba51ff0e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37024
    #10 0x5604ba47ddb9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24417
    #11 0x5604ba6293cd in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57393
    #12 0x5604ba3cf429 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12377
    #13 0x5604ba3cfa8b in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12413
    #14 0x5604ba62b522 in main _gen/bin/oils_for_unix.mycpp.cc:57415
    #15 0x7f90f9cc609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #16 0x5604ba3a8fc9 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
==25363==ABORTING
ysh17 circular dict - TODO 2023-06 REGRESS

[ysh stdout] Expected "(OrderedDict) <'name': 'foo'>\n(OrderedDict) <'name': 123>\n(OrderedDict) <'name': 'mystr'>\n(OrderedDict) <'name': ...>\n" Got '(Dict) {"name":"foo"}\n(Dict) {"name":123}\n(Dict) {"name":"mystr"}\n(Dict) {"name":{ --> 0x7f1583f26950 }}\n'

stdout:
(Dict)   {"name":"foo"}
(Dict)   {"name":123}
(Dict)   {"name":"mystr"}
(Dict)   {"name":{ --> 0x7f1583f26950 }}
stderr:
ysh-cpp17 circular dict - TODO 2023-06 REGRESS

[ysh-cpp stdout] Expected "(OrderedDict) <'name': 'foo'>\n(OrderedDict) <'name': 123>\n(OrderedDict) <'name': 'mystr'>\n(OrderedDict) <'name': ...>\n" Got '(Dict) {"name":"foo"}\n(Dict) {"name":123}\n(Dict) {"name":"mystr"}\n(Dict) {"name":{ --> 0x1839 }}\n'

stdout:
(Dict)   {"name":"foo"}
(Dict)   {"name":123}
(Dict)   {"name":"mystr"}
(Dict)   {"name":{ --> 0x1839 }}
stderr:
ysh18 circular list - TODO 2023-06 REGRESS

[ysh stdout] Expected '(List) [1, 2, 3]\n(List) [[...], 2, 3]\n' Got '(List) [1, 2, 3]\n'

stdout:
(List)  [1, 2, 3]
stderr:
ysh-cpp18 circular list - TODO 2023-06 REGRESS

[ysh-cpp stdout] Expected '(List) [1, 2, 3]\n(List) [[...], 2, 3]\n' Got '(List) [1, 2, 3]\n'

stdout:
(List)  [1, 2, 3]
stderr:
ysh-cpp20 setvar obj[INVALID TYPE] =

[ysh-cpp stdout] Expected 'd.key = 5\noutside1=3\nL[0] = 43\noutside2=3\n' Got 'outside1=1\nL[0] = 43\noutside2=3\n'

stdout:
outside1=1
L[0] = 43
outside2=3
stderr:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==25663==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000010 (pc 0x55c12558d5dd bp 0x7ffe012cb450 sp 0x7ffe012cb430 T0)
==25663==The signal is caused by a READ memory access.
==25663==Hint: address points to the zero page.
    #0 0x55c12558d5dc in Dict<BigStr*, value_asdl::value_t*>::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367
    #1 0x55c12549cfdc in Dict<BigStr*, value_asdl::value_t*>::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x437fdc)
    #2 0x55c12542d419 in expr_eval::ExprEvaluator::_EvalDot(syntax_asdl::Attribute*, value_asdl::value_t*) _gen/bin/oils_for_unix.mycpp.cc:51352
    #3 0x55c12542e6dd in expr_eval::ExprEvaluator::_EvalAttribute(syntax_asdl::Attribute*) _gen/bin/oils_for_unix.mycpp.cc:51435
    #4 0x55c125431544 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51698
    #5 0x55c125421e2d in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50494
    #6 0x55c125422682 in expr_eval::ExprEvaluator::EvalExprSub(syntax_asdl::word_part__ExprSub*) _gen/bin/oils_for_unix.mycpp.cc:50521
    #7 0x55c1253e74da 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 0x55c1253ddbfb in word_eval::AbstractWordEvaluator::_EvalDoubleQuoted(List<syntax_asdl::word_part_t*>*, List<runtime_asdl::part_value_t*>*) _gen/bin/oils_for_unix.mycpp.cc:45359
    #9 0x55c1253e684b in word_eval::AbstractWordEvaluator::_EvalWordPart(syntax_asdl::word_part_t*, List<runtime_asdl::part_value_t*>*, int) _gen/bin/oils_for_unix.mycpp.cc:45929
    #10 0x55c1253e847c in word_eval::AbstractWordEvaluator::_EvalWordToParts(syntax_asdl::CompoundWord*, List<runtime_asdl::part_value_t*>*, int) _gen/bin/oils_for_unix.mycpp.cc:46064
    #11 0x55c1253f0ea4 in word_eval::AbstractWordEvaluator::SimpleEvalWordSequence2(List<syntax_asdl::CompoundWord*>*, bool, bool) _gen/bin/oils_for_unix.mycpp.cc:46608
    #12 0x55c1253f1c51 in word_eval::AbstractWordEvaluator::EvalWordSequence2(List<syntax_asdl::CompoundWord*>*, bool, bool) _gen/bin/oils_for_unix.mycpp.cc:46647
    #13 0x55c1253698cc in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:35695
    #14 0x55c12537536b in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36574
    #15 0x55c1253781a6 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:36853
    #16 0x55c125379f0e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37024
    #17 0x55c1252d7db9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24417
    #18 0x55c1254833cd in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57393
    #19 0x55c125229429 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12377
    #20 0x55c125229a8b in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12413
    #21 0x55c125485522 in main _gen/bin/oils_for_unix.mycpp.cc:57415
    #22 0x7f40fcbf809a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #23 0x55c125202fc9 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
==25663==ABORTING
  setvar L["key"] = 44
  ^~~~~~
[ -c flag ]:5: fatal: List index should be Int, got Str