Results for var-op-bash.test.sh

statusbashosh
pass 168
ok 16
BUG 10
FAIL 26
total2020
casebashoshdescription
0pass pass Lower Case with , and ,,
1pass pass Upper Case with ^ and ^^
2pass FAIL Case folding - Unicode characters
details
3BUG FAIL Case folding - multi code point
detailsdetails
4ok ok Case folding that depends on locale (not enabled, requires Turkish locale)
detailsdetails
5pass FAIL Lower Case with constant string (VERY WEIRD)
details
6FAIL FAIL Lower Case glob
detailsdetails
7FAIL FAIL ${x@u} U l L upper / lower case (bash 5.1 feature)
detailsdetails
8pass pass ${x@Q}
9pass ok ${array@Q} and ${array[@]@Q}
details
10pass pass ${!prefix@} ${!prefix*} yields sorted array of var names
11pass pass ${!prefix@} matches var name (regression)
12pass pass ${var@a} for attributes
13pass pass ${var@a} error conditions
14pass ok undef and @P @Q @a
details
15pass ok argv array and @P @Q @a
details
16pass ok assoc array and @P @Q @a
details
17pass ok ${!var[@]@X}
details
18pass pass ${#var@X} is a parse error
19pass FAIL ${!A@a} and ${!A[@]@a}
details
24 passed, 7 OK, 0 not implemented, 1 BUG, 8 failed, 0 timeouts, 0 cases skipped
6 failed under osh

Details on runs that didn't PASS

osh2 Case folding - 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:
bash3 Case folding - multi code point

stdout:
shell
u ß
U ß
l ß
L ß

python2
ß
ß

stderr:
osh3 Case folding - multi code point

[osh stdout] Expected '', got 'shell\nu \xc3\x9f\nU \xc3\x9f\nl \xc3\x9f\nL \xc3\x9f\n\npython2\n\xc3\x9f\n\xc3\x9f\n\n'

stdout:
shell
u ß
U ß
l ß
L ß

python2
ß
ß

stderr:
bash4 Case folding that depends on locale (not enabled, requires Turkish locale)

stdout:
u I
U I
l i
L i
stderr:
osh4 Case folding that depends on locale (not enabled, requires Turkish locale)

stdout:
u I
U I
l i
L i
stderr:
osh5 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
bash6 Lower Case glob

[bash stdout] Expected 'ABC DEF\nABC deF\n', got 'ABC DEF\nABC DEF\n'

stdout:
ABC DEF
ABC DEF
stderr:
osh6 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/uke/oil/bin/oils_for_unix.py", line 198, 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 1112, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 364, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags=cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 1945, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1768, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1527, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 805, in _DoSimple
    cmd_val = self.word_ev.EvalWordSequence2(words, allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2220, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 1735, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1643, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1404, in _EvalBracedVarSub
    val = self._ApplyUnarySuffixOp(val, op)
  File "/home/uke/oil/osh/word_eval.py", line 840, in _ApplyUnarySuffixOp
    has_extglob)
  File "/home/uke/oil/osh/string_ops.py", line 441, in DoUnarySuffixOp
    raise NotImplementedError(ui.PrettyId(id_))
NotImplementedError: Id.VOp1_Comma
bash7 ${x@u} U l L upper / lower case (bash 5.1 feature)

[bash stdout] Expected '', got 'Abc def\n'
[bash status] Expected 1, got 0

stdout:
Abc def
stderr:
osh7 ${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)
osh9 ${array@Q} and ${array[@]@Q}

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

stdout:
status=0
''
status=0

status=0
stderr:
osh15 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 BashArray
osh16 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 BashAssoc
  declare -A A=(["x"]="y"); echo ${A@Q} - ${A[@]@Q}
                                                ^~
[ -c flag ]:1: fatal: Can't use @Q on BashAssoc
osh17 ${!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 BashArray
osh19 ${!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