Results for builtin-bracket.test.sh

statusoshosh-cpp
pass 4545
FAIL 11
total4646
caseoshosh-cppdescription
0pass pass zero args: [ ]
1pass pass one arg: [ x ] where x is one of '=' '!' '(' ']'
2pass pass one arg: empty string is false. Equivalent to -n.
3pass pass -a as unary operator (alias of -e)
4pass pass two args: -z with = ! ( ]
5pass pass three args
6pass pass four args
7pass pass test with extra args is syntax error
8pass pass ] syntax errors
9pass pass -n
10pass pass ! -a
11pass pass -o
12pass pass ( )
13pass pass ( ) ! -a -o with system version of [
14pass pass == is alias for =
15pass pass == and = does not do glob
16pass pass [ with op variable
17pass pass [ with unquoted empty var
18pass pass [ compare with literal -f
19pass pass [ '(' foo ] is runtime syntax error
20pass pass -z '>' implies two token lookahead
21pass pass operator/operand ambiguity with ]
22pass pass operator/operand ambiguity with -a
23pass pass -d
24pass pass -x
25pass pass -r
26pass pass -w
27pass pass -k for sticky bit
28pass pass -h and -L test for symlink
29pass pass -t 1 for stdout
30pass pass [ -t invalid ]
31pass pass -ot and -nt
32FAIL FAIL [ a -eq b ]
detailsdetails
33pass pass test -s
34pass pass test -b -c -S (block, character, socket)
35pass pass test -p named pipe
36pass pass -G and -O for effective user ID and group ID
37pass pass -u for setuid, -g too
38pass pass -v to test variable (bash)
39pass pass test -o for options
40pass pass -nt -ot
41pass pass -ef
42pass pass Overflow error
43pass pass Bug regression
44pass pass test -c
45pass pass test -S
90 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

osh32 [ a -eq b ]

[osh stdout] Expected 'status=2\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 201, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 170, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 140, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1171, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 365, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2036, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1835, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1570, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 840, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 520, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 325, in RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/uke/oil/core/executor.py", line 209, in RunBuiltin
    status = builtin_func.Run(cmd_val)
  File "/home/uke/oil/builtin/bracket_osh.py", line 271, in Run
    b = bool_ev.EvalB(bool_node)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 1137, in EvalB
    i1 = self._StringToBigIntOrError(s1, blame_word=node.left)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 1029, in _StringToBigIntOrError
    i = self._StringToBigInt(s, location)
  File "/home/uke/oil/osh/sh_expr_eval.py", line 395, in _StringToBigInt
    assert self.parse_ctx is not None
AssertionError
osh-cpp32 [ a -eq b ]

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

stdout:
stderr: 
AddressSanitizer:DEADLYSIGNAL
=================================================================
==6350==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x5602e7b21452 bp 0x7ffd241c83d0 sp 0x7ffd241c7dd0 T0)
==6350==The signal is caused by a READ memory access.
==6350==Hint: address points to the zero page.
    #0 0x5602e7b21451 in sh_expr_eval::ArithEvaluator::_StringToBigInt(BigStr*, syntax_asdl::loc_t*) _gen/bin/oils_for_unix.mycpp.cc:41169
    #1 0x5602e7b29c40 in sh_expr_eval::BoolEvaluator::_StringToBigIntOrError(BigStr*, syntax_asdl::word_t*) _gen/bin/oils_for_unix.mycpp.cc:41931
    #2 0x5602e7b2aef1 in sh_expr_eval::BoolEvaluator::EvalB(syntax_asdl::bool_expr_t*) _gen/bin/oils_for_unix.mycpp.cc:42070
    #3 0x5602e7bda96e in bracket_osh::Test::Run(runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:55919
    #4 0x5602e7a3f64e in executor::ShellExecutor::RunBuiltin(int, runtime_asdl::cmd_value__Argv*) _gen/bin/oils_for_unix.mycpp.cc:23665
    #5 0x5602e7a40ea7 in executor::ShellExecutor::RunSimpleCommand(runtime_asdl::cmd_value__Argv*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:23775
    #6 0x5602e7ad5fee in cmd_eval::CommandEvaluator::_RunSimpleCommand(runtime_asdl::cmd_value_t*, runtime_asdl::CommandStatus*, int) _gen/bin/oils_for_unix.mycpp.cc:35363
    #7 0x5602e7adbe13 in cmd_eval::CommandEvaluator::_DoSimple(syntax_asdl::command__Simple*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:35734
    #8 0x5602e7ae71f7 in cmd_eval::CommandEvaluator::_Dispatch(syntax_asdl::command_t*, runtime_asdl::CommandStatus*) _gen/bin/oils_for_unix.mycpp.cc:36583
    #9 0x5602e7aea002 in cmd_eval::CommandEvaluator::_Execute(syntax_asdl::command_t*) _gen/bin/oils_for_unix.mycpp.cc:36861
    #10 0x5602e7aebd56 in cmd_eval::CommandEvaluator::ExecuteAndCatch(syntax_asdl::command_t*, int) _gen/bin/oils_for_unix.mycpp.cc:37032
    #11 0x5602e7a49dbb in main_loop::Batch(cmd_eval::CommandEvaluator*, cmd_parse::CommandParser*, ui::ErrorFormatter*, int) _gen/bin/oils_for_unix.mycpp.cc:24421
    #12 0x5602e7bf5841 in shell::Main(BigStr*, args::Reader*, Dict<BigStr*, BigStr*>*, bool, pyutil::_ResourceLoader*, py_readline::Readline*) _gen/bin/oils_for_unix.mycpp.cc:57428
    #13 0x5602e799b587 in oils_for_unix::AppBundleMain(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12382
    #14 0x5602e799bad3 in oils_for_unix::main(List<BigStr*>*) _gen/bin/oils_for_unix.mycpp.cc:12414
    #15 0x5602e7bf79be in main _gen/bin/oils_for_unix.mycpp.cc:57453
    #16 0x7fe831f1209a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    #17 0x5602e7974fc9 in _start (/home/uke/oil/_bin/cxx-asan/oils-for-unix+0x19dfc9)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV _gen/bin/oils_for_unix.mycpp.cc:41169 in sh_expr_eval::ArithEvaluator::_StringToBigInt(BigStr*, syntax_asdl::loc_t*)
==6350==ABORTING