Results for ble-idioms.test.sh

statusoshosh-cpp
pass 4745
FAIL 13
total4848
caseoshosh-cppdescription
0pass pass recursive arith: one level
1pass pass recursive arith: two levels
2pass pass recursive arith: short circuit &&, ||
3pass pass recursive arith: short circuit ?:
4pass pass recursive arith: side effects
5pass pass recursive arith: recursion
6pass pass recursive arith: array elements
7pass pass dynamic arith varname: assign
8pass pass dynamic arith varname: read
9pass pass dynamic arith varname: copy/add
10pass pass is-array with ${var@a}
11pass pass Sparse array with big index
12pass pass shift unshift reverse
13pass pass SparseArray Performance demo
14pass pass SparseArray: test length
15pass pass SparseArray: test "declare -p sp"
16pass pass SparseArray: +=
17pass pass SparseArray: a[i]=v
18pass pass SparseArray: Negative index with a[i]=v
19pass FAIL SparseArray: a[i]=v with BigInt
details
20pass pass SparseArray: Negative out-of-bound index with a[i]=v (1/2)
21pass pass SparseArray: Negative out-of-bound index with a[i]=v (2/2)
22pass pass SparseArray: xtrace a+=()
23pass pass SparseArray: unset -v a[i]
24pass pass SparseArray: unset -v a[i] with out-of-bound negative index
25pass pass SparseArray: unset -v a[i] for max index
26pass pass SparseArray: [[ -v a[i] ]]
27pass pass SparseArray: [[ -v a[i] ]] with invalid negative index
28pass pass SparseArray: ((sp[i])) and ((sp[i]++))
29pass pass SparseArray: ((sp[i])) and ((sp[i]++)) with invalid negative index
30pass pass SparseArray: ${sp[i]}
31pass pass SparseArray: ${sp[i]} with negative invalid index
32pass pass SparseArray (YSH): @[sp] and @sp
33pass pass SparseArray: ${a[@]:offset:length}
34pass pass ${@:offset:length}
35pass FAIL SparseArray: ${a[@]:BigInt}
details
36pass pass SparseArray: ${a[@]}
37pass pass SparseArray: ${a[@]#...}
38pass pass SparseArray: ${a[@]/pat/rep}
39pass pass SparseArray: ${a[@]@P}, ${a[@]@Q}, and ${a[@]@a}
40pass pass SparseArray: ${a[@]-unset}, ${a[@]:-empty}, etc.
41pass pass SparseArray: ${a-}
42pass pass SparseArray: compgen -F _set_COMPREPLY
43pass pass SparseArray: compgen -F _set_COMPREPLY
44pass pass SparseArray (YSH): $[a1 === a2]
45pass pass SparseArray (YSH): append v1 v2... (a)
46pass pass SparseArray (YSH): $[bool(a)]
47FAIL FAIL SparseArray: crash dump
detailsdetails
92 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

osh-cpp19 SparseArray: a[i]=v with BigInt

[osh-cpp stdout] Expected '3\n4\n5\n6\n', got '3\n3\n4\n5\n'

stdout:
3
3
4
5
stderr:
osh-cpp35 SparseArray: ${a[@]:BigInt}

[osh-cpp stdout] Expected '[x][x]\n[y x][y x]\n[z y x][z y x]\n[z y x][z y x]\n' Got '[x][x]\n[y x][y x]\n[z y x][z y x]\n[][]\n'

stdout:
[x][x]
[y x][y x]
[z y x][z y x]
[][]
stderr:
osh47 SparseArray: crash dump

[osh stdout] Expected '{\n "val": {\n "type": "SparseArray",\n "data": {\n "0": "0",\n "1": "1",\n "3": "3"\n }\n }\n}\n' Got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1216, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 375, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2141, in ExecuteAndCatch
    self.dumper.MaybeRecord(self, err)
  File "/home/uke/oil/core/dev.py", line 101, in MaybeRecord
    self.var_stack, self.argv_stack, self.debug_stack = cmd_ev.mem.Dump()
  File "/home/uke/oil/core/state.py", line 1347, in Dump
    debug_stack.append(value.Dict(d))
UnboundLocalError: local variable 'd' referenced before assignment
  json read (&crash_dump) < $TMP/*.json
                          ^
[ stdin ]:4: Can't open '/home/uke/oil/_tmp/spec-tmp/ble-idioms.test.sh.4689/47-osh/*.json': No such file or directory
[ stdin ]:4: I/O error applying redirect: No such file or directory
  json write (crash_dump.var_stack[0].a)
              ^~~~~~~~~~
[ stdin ]:5: fatal: Undefined variable 'crash_dump'
osh-cpp47 SparseArray: crash dump

[osh-cpp stdout] Expected '{\n "val": {\n "type": "SparseArray",\n "data": {\n "0": "0",\n "1": "1",\n "3": "3"\n }\n }\n}\n' Got ''
[osh-cpp status] Expected 0, got 1

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==5975==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x563c67f81120 bp 0x7fffba0a45d0 sp 0x7fffba0a45c0 T0)
==5975==The signal is caused by a READ memory access.
==5975==Hint: address points to the zero page.
    #0 0x563c67f8111f in int len<BigStr*, value_asdl::value_t*>(Dict<BigStr*, value_asdl::value_t*> const*) (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x41511f)
    #1 0x563c67dd81ce in j8::InstancePrinter::_PrintMapping(Dict<BigStr*, value_asdl::value_t*>*, BigStr*, BigStr*, int) _gen/bin/oils_for_unix.mycpp.cc:29701
    #2 0x563c67dd8974 in j8::InstancePrinter::_PrintDict(value_asdl::value__Dict*, int) _gen/bin/oils_for_unix.mycpp.cc:29732
    #3 0x563c67ddba2f in j8::InstancePrinter::Print(value_asdl::value_t*, int) _gen/bin/oils_for_unix.mycpp.cc:29970
    #4 0x563c67dd7d90 in j8::InstancePrinter::_PrintList(value_asdl::value__List*, int) _gen/bin/oils_for_unix.mycpp.cc:29687
    #5 0x563c67ddb731 in j8::InstancePrinter::Print(value_asdl::value_t*, int) _gen/bin/oils_for_unix.mycpp.cc:29951
    #6 0x563c67dd8602 in j8::InstancePrinter::_PrintMapping(Dict<BigStr*, value_asdl::value_t*>*, BigStr*, BigStr*, int) _gen/bin/oils_for_unix.mycpp.cc:29720
    #7 0x563c67dd8974 in j8::InstancePrinter::_PrintDict(value_asdl::value__Dict*, int) _gen/bin/oils_for_unix.mycpp.cc:29732
    #8 0x563c67ddba2f in j8::InstancePrinter::Print(value_asdl::value_t*, int) _gen/bin/oils_for_unix.mycpp.cc:29970
    #9 0x563c67dd625b in j8::_Print(value_asdl::value_t*, mylib::BufWriter*, int, int) _gen/bin/oils_for_unix.mycpp.cc:29573
    #10 0x563c67dd64ec in j8::PrintMessage(value_asdl::value_t*, mylib::BufWriter*, int) _gen/bin/oils_for_unix.mycpp.cc:29580
    #11 0x563c67d7d3fa in dev::CrashDumper::MaybeDump(int) _gen/bin/oils_for_unix.mycpp.cc:23028
    #12 0x563c67e4c0b7 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:38483
    #13 0x563c67d97c09 in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24843
    #14 0x563c67f5c7e1 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:59375
    #15 0x563c67cc89f5 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:10780
    #16 0x563c67cc8f41 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:10812
    #17 0x563c67f5ecbd in main _gen/bin/oils_for_unix.mycpp.cc:59400
    #18 0x7f688923409a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #19 0x563c67ca6fd9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x13afd9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x41511f) in int len<BigStr*, value_asdl::value_t*>(Dict<BigStr*, value_asdl::value_t*> const*)
==5975==ABORTING
  json read (&crash_dump) < $TMP/*.json
                          ^
[ stdin ]:4: Can't open '/home/uke/oil/_tmp/spec-tmp/ble-idioms.test.sh.4689/47-osh-cpp/*.json': No such file or directory
[ stdin ]:4: I/O error applying redirect: No such file or directory
  json write (crash_dump.var_stack[0].a)
              ^~~~~~~~~~
[ stdin ]:5: fatal: Undefined variable 'crash_dump'