Results for ysh-methods.test.sh

statusyshysh-cpp
pass 3635
FAIL 23
total3838
caseyshysh-cppdescription
0pass pass => operator for pure computation is allowed (may be mandatory later)
1pass pass => can be used to chain free functions
2pass pass Str => startsWith(Str) and endsWith(Str), simple
3pass pass Str => startsWith(Str) and endsWith(Str), matches bytes not runes
4pass pass Str => startsWith(Str) and endsWith(Str), eggex
5pass pass Str => startsWith(Str) and endsWith(Str), eggex with anchors
6FAIL FAIL Str => startsWith(Str) and endsWith(Str), eggex matches bytes not runes
detailsdetails
7pass pass Str => startsWith(), no args
8pass pass Str => startsWith(), too many args
9pass pass Str => endsWith(), no args
10pass pass Str => endsWith(), too many args
11pass pass Str => trim*() with no args trims whitespace
12pass pass Str => trim*() with a simple string pattern trims pattern
13pass pass Str => trim*() with a string pattern trims bytes not runes
14pass pass Str => trim*() with an eggex pattern trims pattern
15FAIL FAIL Str => trim*() with an eggex pattern trims bytes not runes
detailsdetails
16pass pass Str => trim(), too many args
17pass pass Str => trimStart(), too many args
18pass pass Str => trimEnd(), too many args
19pass pass Str => trim(), unicode whitespace aware
20pass pass Str => trim*(), unicode decoding errors
21pass pass Str => trimStart(), unicode decoding error types
22pass pass Str => trimEnd(), unicode decoding error types
23pass pass Str => trim*(), zero-codepoints are not NUL-terminators
24pass pass Dict => keys()
25pass pass Str => split(sep), non-empty sep
26pass pass Str => split(sep, count), non-empty sep
27pass FAIL Str => split(), usage errors
details
28pass pass Str => split(), non-ascii
29pass pass Dict => values()
30pass pass Dict -> erase()
31pass pass Dict -> get()
32pass pass Separation of -> attr and () calling
33pass pass Bound methods, receiver value/reference semantics
34pass pass List => indexOf()
35pass pass List => join()
36pass pass List->reverse()
37pass pass List->reverse() from iterator
71 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

ysh6 Str => startsWith(Str) and endsWith(Str), eggex matches bytes not runes

[ysh stdout] Expected 'true true\ntrue true\ntrue true\ntrue true\n' Got 'true true\ntrue true\nfalse false\nfalse false\n'

stdout:
true true
true true
false false
false false
stderr:
ysh-cpp6 Str => startsWith(Str) and endsWith(Str), eggex matches bytes not runes

[ysh-cpp stdout] Expected 'true true\ntrue true\ntrue true\ntrue true\n' Got 'true true\ntrue true\nfalse false\nfalse false\n'

stdout:
true true
true true
false false
false false
stderr:
ysh15 Str => trim*() with an eggex pattern trims bytes not runes

[ysh stdout] Expected 'b\'\\ya3\', b\'\\yce\', ""\nb\'\\ya3\', b\'\\yce\', ""\n"", "", ""\n"", "", ""\n' Got '"", "", ""\n"", "", ""\nb\'\\yce\', b\'\\yce\', b\'\\yce\'\nb\'\\yce\', b\'\\yce\', b\'\\yce\'\n'

stdout:
"", "", ""
"", "", ""
b'\yce', b'\yce', b'\yce'
b'\yce', b'\yce', b'\yce'
stderr:
ysh-cpp15 Str => trim*() with an eggex pattern trims bytes not runes

[ysh-cpp stdout] Expected 'b\'\\ya3\', b\'\\yce\', ""\nb\'\\ya3\', b\'\\yce\', ""\n"", "", ""\n"", "", ""\n' Got '"", "", ""\n"", "", ""\nb\'\\yce\', b\'\\yce\', b\'\\yce\'\nb\'\\yce\', b\'\\yce\', b\'\\yce\'\n'

stdout:
"", "", ""
"", "", ""
b'\yce', b'\yce', b'\yce'
b'\yce', b'\yce', b'\yce'
stderr:
ysh-cpp27 Str => split(), usage errors

[ysh-cpp stdout] Expected 'status=3\nstatus=3\n', got ''
[ysh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==30061==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55b0191ca5ca bp 0x7ffc578eaf80 sp 0x7ffc578eaf60 T0)
==30061==The signal is caused by a READ memory access.
==30061==Hint: address points to the zero page.
    #0 0x55b0191ca5c9 in Dict<BigStr*, value_asdl::value_t*>::find_kv_index(BigStr*) const /home/uke/oil/mycpp/gc_dict.h:367
    #1 0x55b0190d9fdc in Dict<BigStr*, value_asdl::value_t*>::get(BigStr*) const (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x437fdc)
    #2 0x55b01906a419 in expr_eval::ExprEvaluator::_EvalDot(syntax_asdl::Attribute*, value_asdl::value_t*) _gen/bin/oils_for_unix.mycpp.cc:51352
    #3 0x55b01906b6dd in expr_eval::ExprEvaluator::_EvalAttribute(syntax_asdl::Attribute*) _gen/bin/oils_for_unix.mycpp.cc:51435
    #4 0x55b01906e544 in expr_eval::ExprEvaluator::_EvalExpr(syntax_asdl::expr_t*) _gen/bin/oils_for_unix.mycpp.cc:51698
    #5 0x55b01905ee2d in expr_eval::ExprEvaluator::EvalExpr(syntax_asdl::expr_t*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:50494
    #6 0x55b01905f682 in expr_eval::ExprEvaluator::EvalExprSub(syntax_asdl::word_part__ExprSub*) _gen/bin/oils_for_unix.mycpp.cc:50521
    #7 0x55b0190244da 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 0x55b01902547c in word_eval::AbstractWordEvaluator::_EvalWordToParts(syntax_asdl::CompoundWord*, List<runtime_asdl::part_value_t*>*, int) _gen/bin/oils_for_unix.mycpp.cc:46064
    #9 0x55b01902dea4 in word_eval::AbstractWordEvaluator::SimpleEvalWordSequence2(List<syntax_asdl::CompoundWord*>*, bool, bool) _gen/bin/oils_for_unix.mycpp.cc:46608
    #10 0x55b01902ec51 in word_eval::AbstractWordEvaluator::EvalWordSequence2(List<syntax_asdl::CompoundWord*>*, bool, bool) _gen/bin/oils_for_unix.mycpp.cc:46647
    #11 0x55b018fa68cc in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:35695
    #12 0x55b018fb236b in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36574
    #13 0x55b018fb51a6 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:36853
    #14 0x55b018fb6f0e in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37024
    #15 0x55b018f14db9 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24417
    #16 0x55b0190c03cd in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57393
    #17 0x55b018e66429 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12377
    #18 0x55b018e66a8b in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12413
    #19 0x55b0190c2522 in main _gen/bin/oils_for_unix.mycpp.cc:57415
    #20 0x7f04ccf9c09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #21 0x55b018e3ffc9 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
==30061==ABORTING