Results for var-op-bash.test.sh

statusoshosh-cpp
pass 88
ok 66
FAIL 66
total2020
caseoshosh-cppdescription
0pass pass Lower Case with , and ,,
1pass pass Upper Case with ^ and ^^
2FAIL FAIL Case folding - Unicode characters
detailsdetails
3FAIL FAIL Case folding - multi code point
detailsdetails
4ok ok Case folding that depends on locale (not enabled, requires Turkish locale)
detailsdetails
5FAIL FAIL Lower Case with constant string (VERY WEIRD)
detailsdetails
6FAIL FAIL Lower Case glob
detailsdetails
7FAIL FAIL ${x@u} U L - upper / lower case (bash 5.1 feature)
detailsdetails
8pass pass ${x@Q}
9ok ok ${array@Q} and ${array[@]@Q}
detailsdetails
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
14ok ok undef and @P @Q @a
detailsdetails
15ok ok argv array and @P @Q @a
detailsdetails
16ok ok assoc array and @P @Q @a
detailsdetails
17ok ok ${!var[@]@X}
detailsdetails
18pass pass ${#var@X} is a parse error
19FAIL FAIL ${!A@a} and ${!A[@]@a}
detailsdetails
16 passed, 12 OK, 0 not implemented, 0 BUG, 6 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:
osh-cpp2 Case folding - Unicode characters

[osh-cpp 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 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:
osh-cpp3 Case folding - multi code point

[osh-cpp 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:
osh4 Case folding that depends on locale (not enabled, requires Turkish locale)

stdout:
u I
U I
l i
L i
stderr:
osh-cpp4 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
osh-cpp5 Lower Case with constant string (VERY WEIRD)

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

stdout:
stderr: 
  echo ${x,A}
          ^
[ stdin ]:2: fatal: Id.VOp1_Comma can't have an argument
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/andy/git/oilshell/oil/bin/oils_for_unix.py", line 201, in <module>
    sys.exit(main(sys.argv))
  File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 170, in main
    return AppBundleMain(argv)
  File "/home/andy/git/oilshell/oil/bin/oils_for_unix.py", line 140, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/andy/git/oilshell/oil/core/shell.py", line 1171, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 365, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 2036, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1835, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1570, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 800, in _DoSimple
    allow_assign=True)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 2282, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1769, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1677, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 1438, in _EvalBracedVarSub
    val = self._ApplyUnarySuffixOp(val, op)
  File "/home/andy/git/oilshell/oil/osh/word_eval.py", line 879, in _ApplyUnarySuffixOp
    has_extglob)
  File "/home/andy/git/oilshell/oil/osh/string_ops.py", line 441, in DoUnarySuffixOp
    raise NotImplementedError(ui.PrettyId(id_))
NotImplementedError: Id.VOp1_Comma
osh-cpp6 Lower Case glob

[osh-cpp stdout] Expected 'ABC DEF\nABC DEF\n', got ''
[osh-cpp status] Expected 0, got -6

stdout:
stderr: 
osh: _gen/bin/oils_for_unix.mycpp.cc:42783: BigStr* string_ops::DoUnarySuffixOp(BigStr*, syntax_asdl::Token*, BigStr*, bool): Assertion `false' failed.
osh7 ${x@u} U L - upper / lower case (bash 5.1 feature)

[osh stdout] Expected 'Abc DEF\nABC DEF\nabc def\n', got ''
[osh status] Expected 0, got 2

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

[osh-cpp stdout] Expected 'Abc DEF\nABC DEF\nabc def\n', got ''
[osh-cpp status] Expected 0, got 2

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

stdout:
x $'y\\nz'
x
x
stderr:
osh-cpp9 ${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:
osh-cpp14 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
osh-cpp15 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
osh-cpp16 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
osh-cpp17 ${!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
osh-cpp19 ${!A@a} and ${!A[@]@a}

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

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