Results for var-op-bash.test.sh

statusbashoshosh_ALT
pass 1788
ok 055
N-I 100
FAIL 055
total181818
casebashoshosh_ALTdescription
0pass pass pass Lower Case with , and ,,
1pass pass pass Upper Case with ^ and ^^
2pass FAIL FAIL Case Folding of Unicode Characters
detailsdetails
3pass FAIL FAIL Lower Case with constant string (VERY WEIRD)
detailsdetails
4pass FAIL FAIL Lower Case glob
detailsdetails
5N-I FAIL FAIL ${x@u} U l L upper / lower case (bash 5.1 feature)
detailsdetailsdetails
6pass pass pass ${x@Q}
7pass ok ok ${array@Q} and ${array[@]@Q}
detailsdetails
8pass pass pass ${!prefix@} ${!prefix*} yields sorted array of var names
9pass pass pass ${!prefix@} matches var name (regression)
10pass pass pass ${var@a} for attributes
11pass pass pass ${var@a} error conditions
12pass ok ok undef and @P @Q @a
detailsdetails
13pass ok ok argv array and @P @Q @a
detailsdetails
14pass ok ok assoc array and @P @Q @a
detailsdetails
15pass ok ok ${!var[@]@X}
detailsdetails
16pass pass pass ${#var@X} is a parse error
17pass FAIL FAIL ${!A@a} and ${!A[@]@a}
detailsdetails
33 passed, 10 OK, 1 not implemented, 0 BUG, 5 failed, 0 timeouts, 0 cases skipped
5 failed under osh

Details on runs that didn't PASS

osh2 Case Folding of Unicode Characters

[osh stdout] Expected 'u \xc3\x80\xc3\x88\nU \xc3\x80\xc3\x88\nl \xc3\xa0\xc3\x88\nL \xc3\xa0\xc3\xa8\nu \xc3\x81\xc3\xa9\nU \xc3\x81\xc3\x89\nl \xc3\xa1\xc3\xa9\nL \xc3\xa1\xc3\xa9\n' Got 'u \xc3\x80\xc3\x88\nU \xc3\x80\xc3\x88\nl \xc3\x80\xc3\x88\nL \xc3\x80\xc3\x88\nu \xc3\xa1\xc3\xa9\nU \xc3\xa1\xc3\xa9\nl \xc3\xa1\xc3\xa9\nL \xc3\xa1\xc3\xa9\n'

stdout:
u ÀÈ
U ÀÈ
l ÀÈ
L ÀÈ
u áé
U áé
l áé
L áé
stderr:
osh_ALT2 Case Folding of Unicode Characters

[osh_ALT stdout] Expected 'u \xc3\x80\xc3\x88\nU \xc3\x80\xc3\x88\nl \xc3\xa0\xc3\x88\nL \xc3\xa0\xc3\xa8\nu \xc3\x81\xc3\xa9\nU \xc3\x81\xc3\x89\nl \xc3\xa1\xc3\xa9\nL \xc3\xa1\xc3\xa9\n' Got 'u \xc3\x80\xc3\x88\nU \xc3\x80\xc3\x88\nl \xc3\x80\xc3\x88\nL \xc3\x80\xc3\x88\nu \xc3\xa1\xc3\xa9\nU \xc3\xa1\xc3\xa9\nl \xc3\xa1\xc3\xa9\nL \xc3\xa1\xc3\xa9\n'

stdout:
u ÀÈ
U ÀÈ
l ÀÈ
L ÀÈ
u áé
U áé
l áé
L áé
stderr:
osh3 Lower Case with constant string (VERY WEIRD)

[osh stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
  echo ${x,A}
          ^
[ stdin ]:2: fatal: Id.VOp1_Comma can't have an argument
osh_ALT3 Lower Case with constant string (VERY WEIRD)

[osh_ALT stdout] Expected 'aAA ABC DEF\naaa aBC DEF\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
  echo ${x,A}
          ^
[ stdin ]:2: fatal: Id.VOp1_Comma can't have an argument
osh4 Lower Case glob

[osh stdout] Expected 'ABC DEF\nABC deF\n', got ''
[osh status] Expected 0, got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 224, in <module>
    sys.exit(main(sys.argv))
  File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 199, in main
    return AppBundleMain(argv)
  File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 146, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/andy/git/oilshell/oil/core/shell.py", line 830, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 347, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags=cmd_flags)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1709, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1533, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 696, in _Dispatch
    cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 2115, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1655, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1549, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1307, in _EvalBracedVarSub
    val = self._ApplyUnarySuffixOp(val, op)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 770, in _ApplyUnarySuffixOp
    s = string_ops.DoUnarySuffixOp(val.s, op.op, arg_val.s, has_extglob)
  File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 360, in DoUnarySuffixOp
    raise NotImplementedError(ui.PrettyId(id_))
NotImplementedError: Id.VOp1_Comma
osh_ALT4 Lower Case glob

[osh_ALT stdout] Expected 'ABC DEF\nABC deF\n', got ''
[osh_ALT status] Expected 0, got 1
[osh_ALT stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/oil.py", line 32, in _cpython_main_hook
    sys.exit(oils_for_unix.main(sys.argv))
  File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 199, in main
    return AppBundleMain(argv)
  File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 146, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/andy/git/oilshell/oil/core/shell.py", line 830, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 355, in Batch
    return status
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1709, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1533, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 765, in _Dispatch
    status = self._Execute(node.child)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 2115, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1655, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1549, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1311, in _EvalBracedVarSub
    val = self._PatSub(val, op)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 770, in _ApplyUnarySuffixOp
    s = string_ops.DoUnarySuffixOp(val.s, op.op, arg_val.s, has_extglob)
  File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 360, in DoUnarySuffixOp
    raise NotImplementedError(ui.PrettyId(id_))
NotImplementedError: Id.VOp1_Comma
FATAL: couldn't import from app bundle '/home/andy/git/oilshell/oil/_tmp/oil-tar-test/oil-0.15.0/_bin/osh' (1)
Stripping the oil.ovm binary may cause this error.
See https://github.com/oilshell/oil/issues/47
bash5 ${x@u} U l L upper / lower case (bash 5.1 feature)

stdout:
stderr: 
bash: line 2: ${x@u}: bad substitution
osh5 ${x@u} U l L upper / lower case (bash 5.1 feature)

[osh status] Expected 0, got 2

stdout:
stderr: 
  echo "${x@u}"
           ^
[ stdin ]:2: Unexpected token in ${} (VOp3)
osh_ALT5 ${x@u} U l L upper / lower case (bash 5.1 feature)

[osh_ALT status] Expected 0, got 2

stdout:
stderr: 
  echo "${x@u}"
           ^
[ stdin ]:2: Unexpected token in ${} (VOp3)
osh7 ${array@Q} and ${array[@]@Q}

stdout:
x $'y\\nz'
x
x
stderr:
osh_ALT7 ${array@Q} and ${array[@]@Q}

stdout:
x $'y\\nz'
x
x
stderr:
osh12 undef and @P @Q @a

stdout:
status=0
''
status=0

status=0
stderr:
osh_ALT12 undef and @P @Q @a

stdout:
status=0
''
status=0

status=0
stderr:
osh13 argv array and @P @Q @a

stdout:
status=1
a $'b\\nc'
status=0
a
status=0
stderr:
  echo ${@@P}
  ^~~~
[ -c flag ]:1: fatal: Can't use @P on value.MaybeStrArray
osh_ALT13 argv array and @P @Q @a

stdout:
status=1
a $'b\\nc'
status=0
a
status=0
stderr:
  echo ${@@P}
  ^~~~
[ -c flag ]:1: fatal: Can't use @P on value.MaybeStrArray
osh14 assoc array and @P @Q @a

stdout:
status=1
status=1
A - A
status=0
stderr:
  declare -A A=(["x"]="y"); echo ${A@P} - ${A[@]@P}
                            ^~~~
[ -c flag ]:1: fatal: Can't use @P on value.AssocArray
  declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q}
                            ^~~~
[ -c flag ]:1: fatal: Can't use @Q on value.AssocArray
osh_ALT14 assoc array and @P @Q @a

stdout:
status=1
status=1
A - A
status=0
stderr:
  declare -A A=(["x"]="y"); echo ${A@P} - ${A[@]@P}
                            ^~~~
[ -c flag ]:1: fatal: Can't use @P on value.AssocArray
  declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q}
                            ^~~~
[ -c flag ]:1: fatal: Can't use @Q on value.AssocArray
osh15 ${!var[@]@X}

stdout:
fail
'x y'
a
stderr:
  declare -A A=(["x"]="y"); echo ${!A[@]@P}
                            ^~~~
[ -c flag ]:1: fatal: Can't use @P on value.MaybeStrArray
osh_ALT15 ${!var[@]@X}

stdout:
fail
'x y'
a
stderr:
  declare -A A=(["x"]="y"); echo ${!A[@]@P}
                            ^~~~
[ -c flag ]:1: fatal: Can't use @P on value.MaybeStrArray
osh17 ${!A@a} and ${!A[@]@a}

[osh stdout] Expected 'x=\nx=\n', got 'x=a\n'
[osh status] Expected 0, got 1

stdout:
x=a
stderr:
  echo x=${!A@a}
  ^~~~
[ stdin ]:3: fatal: Indirect expansion of assoc array
osh_ALT17 ${!A@a} and ${!A[@]@a}

[osh_ALT stdout] Expected 'x=\nx=\n', got 'x=a\n'
[osh_ALT status] Expected 0, got 1

stdout:
x=a
stderr:
  echo x=${!A@a}
  ^~~~
[ stdin ]:3: fatal: Indirect expansion of assoc array