Results for var-sub-quote.test.sh

statusoshosh_.pyosh_.cc
pass 3977
FAIL 03232
total393939
caseoshosh_.pyosh_.ccdescription
0pass FAIL FAIL "${empty:-}"
detailsdetails
1pass FAIL FAIL ${empty:-}
detailsdetails
2pass FAIL FAIL array with empty values
detailsdetails
3pass FAIL FAIL substitution of IFS character, quoted and unquoted
detailsdetails
4pass FAIL FAIL :-
detailsdetails
5pass FAIL FAIL -
detailsdetails
6pass FAIL FAIL Inner single quotes
detailsdetails
7pass FAIL FAIL Inner single quotes, outer double quotes
detailsdetails
8pass FAIL FAIL Inner double quotes
detailsdetails
9pass FAIL FAIL Inner double quotes, outer double quotes
detailsdetails
10pass FAIL FAIL Multiple words: no quotes
detailsdetails
11pass FAIL FAIL Multiple words: no outer quotes, inner single quotes
detailsdetails
12pass FAIL FAIL Multiple words: no outer quotes, inner double quotes
detailsdetails
13pass FAIL FAIL Multiple words: outer double quotes, no inner quotes
detailsdetails
14pass FAIL FAIL Multiple words: outer double quotes, inner double quotes
detailsdetails
15pass FAIL FAIL Multiple words: outer double quotes, inner single quotes
detailsdetails
16pass FAIL FAIL Mixed inner quotes
detailsdetails
17pass FAIL FAIL Mixed inner quotes with outer quotes
detailsdetails
18pass FAIL FAIL part_value tree with multiple words
detailsdetails
19pass FAIL FAIL part_value tree on RHS
detailsdetails
20pass FAIL FAIL Var with multiple words: no quotes
detailsdetails
21pass FAIL FAIL Multiple words: no outer quotes, inner single quotes
detailsdetails
22pass FAIL FAIL Multiple words: no outer quotes, inner double quotes
detailsdetails
23pass FAIL FAIL Multiple words: outer double quotes, no inner quotes
detailsdetails
24pass FAIL FAIL Multiple words: outer double quotes, inner double quotes
detailsdetails
25pass FAIL FAIL Multiple words: outer double quotes, inner single quotes
detailsdetails
26pass FAIL FAIL No outer quotes, Multiple internal quotes
detailsdetails
27pass FAIL FAIL Strip a string with single quotes, unquoted
detailsdetails
28pass FAIL FAIL Strip a string with single quotes, double quoted
detailsdetails
29pass FAIL FAIL The string to strip is space sensitive
detailsdetails
30pass FAIL FAIL The string to strip can be single quoted, outer is unquoted
detailsdetails
31pass pass pass Syntax error for single quote in double quote
32pass FAIL FAIL "${undef-'c d'}" and "${foo%'c d'}" are parsed differently
detailsdetails
33pass pass pass $'' allowed within VarSub arguments
34pass pass pass # operator with single quoted arg (dash/ash and bash/mksh disagree, reported by Crestwave)
35pass pass pass / operator with single quoted arg (causes syntax error in regex in OSH, reported by Crestwave)
36pass pass pass single quotes work inside character classes
37pass pass pass comparison: :- operator with single quoted arg
38pass pass pass Right Brace as argument (similar to #702)
53 passed, 0 OK, 0 not implemented, 0 BUG, 64 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

osh_.py0 "${empty:-}"

[osh_.py stdout] Expected "['']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${empty:-}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc0 "${empty:-}"

[osh_.cc stdout] Expected "['']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${empty:-}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py1 ${empty:-}

[osh_.py stdout] Expected '[]\n', got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${empty:-}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc1 ${empty:-}

[osh_.cc stdout] Expected '[]\n', got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${empty:-}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py2 array with empty values

[osh_.py stdout] Expected "['', 'x', '', '']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${A[@]}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc2 array with empty values

[osh_.cc stdout] Expected "['', 'x', '', '']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${A[@]}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py3 substitution of IFS character, quoted and unquoted

[osh_.py stdout] Expected "['']\n[':']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py $s
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
  argv.py "$s"
  ^~~~~~~
[ stdin ]:4: 'argv.py' not found
osh_.cc3 substitution of IFS character, quoted and unquoted

[osh_.cc stdout] Expected "['']\n[':']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py $s
  ^~~~~~~
[ stdin ]:3: 'argv.py' not found
  argv.py "$s"
  ^~~~~~~
[ stdin ]:4: 'argv.py' not found
osh_.py4 :-

[osh_.py stdout] Expected "['a', 'b']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${empty:-a} ${Unset:-b}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc4 :-

[osh_.cc stdout] Expected "['a', 'b']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${empty:-a} ${Unset:-b}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py5 -

[osh_.py stdout] Expected "['b']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${empty-a} ${Unset-b}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc5 -

[osh_.cc stdout] Expected "['b']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${empty-a} ${Unset-b}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py6 Inner single quotes

[osh_.py stdout] Expected "['b']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-'b'}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc6 Inner single quotes

[osh_.cc stdout] Expected "['b']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-'b'}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py7 Inner single quotes, outer double quotes

[osh_.py stdout] Expected '["\'b\'"]\n', got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-'b'}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc7 Inner single quotes, outer double quotes

[osh_.cc stdout] Expected '["\'b\'"]\n', got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-'b'}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py8 Inner double quotes

[osh_.py stdout] Expected "['b']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-"b"}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc8 Inner double quotes

[osh_.cc stdout] Expected "['b']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-"b"}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py9 Inner double quotes, outer double quotes

[osh_.py stdout] Expected "['b']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset-"b"}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc9 Inner double quotes, outer double quotes

[osh_.cc stdout] Expected "['b']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset-"b"}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py10 Multiple words: no quotes

[osh_.py stdout] Expected "['a', 'b', 'c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-a b c}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc10 Multiple words: no quotes

[osh_.cc stdout] Expected "['a', 'b', 'c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-a b c}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py11 Multiple words: no outer quotes, inner single quotes

[osh_.py stdout] Expected "['a b c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-'a b c'}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc11 Multiple words: no outer quotes, inner single quotes

[osh_.cc stdout] Expected "['a b c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-'a b c'}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py12 Multiple words: no outer quotes, inner double quotes

[osh_.py stdout] Expected "['a b c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-"a b c"}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc12 Multiple words: no outer quotes, inner double quotes

[osh_.cc stdout] Expected "['a b c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-"a b c"}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py13 Multiple words: outer double quotes, no inner quotes

[osh_.py stdout] Expected "['a b c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-a b c}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc13 Multiple words: outer double quotes, no inner quotes

[osh_.cc stdout] Expected "['a b c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-a b c}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py14 Multiple words: outer double quotes, inner double quotes

[osh_.py stdout] Expected "['a b c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-"a b c"}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc14 Multiple words: outer double quotes, inner double quotes

[osh_.cc stdout] Expected "['a b c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-"a b c"}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py15 Multiple words: outer double quotes, inner single quotes

[osh_.py stdout] Expected '["\'a b c\'"]\n', got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-'a b c'}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc15 Multiple words: outer double quotes, inner single quotes

[osh_.cc stdout] Expected '["\'a b c\'"]\n', got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-'a b c'}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py16 Mixed inner quotes

[osh_.py stdout] Expected "['a b', 'c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-"a b" c}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc16 Mixed inner quotes

[osh_.cc stdout] Expected "['a b', 'c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-"a b" c}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py17 Mixed inner quotes with outer quotes

[osh_.py stdout] Expected "['a b c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-"a b" c}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc17 Mixed inner quotes with outer quotes

[osh_.cc stdout] Expected "['a b c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-"a b" c}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py18 part_value tree with multiple words

[osh_.py stdout] Expected "['1 2', '3 45', '6 7']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${a:-${a:-"1 2" "3 4"}5 "6 7"}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.cc18 part_value tree with multiple words

[osh_.cc stdout] Expected "['1 2', '3 45', '6 7']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${a:-${a:-"1 2" "3 4"}5 "6 7"}
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
osh_.py19 part_value tree on RHS

[osh_.py stdout] Expected "['1 2 3 45 6 7']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${v}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc19 part_value tree on RHS

[osh_.cc stdout] Expected "['1 2 3 45 6 7']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${v}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py20 Var with multiple words: no quotes

[osh_.py stdout] Expected "['a', 'b', 'c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-$var}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc20 Var with multiple words: no quotes

[osh_.cc stdout] Expected "['a', 'b', 'c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-$var}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py21 Multiple words: no outer quotes, inner single quotes

[osh_.py stdout] Expected "['$var']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-'$var'}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc21 Multiple words: no outer quotes, inner single quotes

[osh_.cc stdout] Expected "['$var']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-'$var'}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py22 Multiple words: no outer quotes, inner double quotes

[osh_.py stdout] Expected "['a b c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-"$var"}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc22 Multiple words: no outer quotes, inner double quotes

[osh_.cc stdout] Expected "['a b c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-"$var"}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py23 Multiple words: outer double quotes, no inner quotes

[osh_.py stdout] Expected "['a b c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-$var}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc23 Multiple words: outer double quotes, no inner quotes

[osh_.cc stdout] Expected "['a b c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-$var}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py24 Multiple words: outer double quotes, inner double quotes

[osh_.py stdout] Expected "['a b c']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-"$var"}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc24 Multiple words: outer double quotes, inner double quotes

[osh_.cc stdout] Expected "['a b c']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-"$var"}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py25 Multiple words: outer double quotes, inner single quotes

[osh_.py stdout] Expected '["\'a b c\'"]\n', got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-'$var'}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc25 Multiple words: outer double quotes, inner single quotes

[osh_.cc stdout] Expected '["\'a b c\'"]\n', got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${Unset:-'$var'}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py26 No outer quotes, Multiple internal quotes

[osh_.py stdout] Expected "['Aa', 'b', 'c', ' a b cD', 'E', 'F']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-A$var " $var"D E F}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc26 No outer quotes, Multiple internal quotes

[osh_.cc stdout] Expected "['Aa', 'b', 'c', ' a b cD', 'E', 'F']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${Unset:-A$var " $var"D E F}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py27 Strip a string with single quotes, unquoted

[osh_.py stdout] Expected '["\'a", \'b\', \'c\']\n', got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${foo%d\'}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc27 Strip a string with single quotes, unquoted

[osh_.cc stdout] Expected '["\'a", \'b\', \'c\']\n', got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${foo%d\'}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py28 Strip a string with single quotes, double quoted

[osh_.py stdout] Expected '["\'a b c "]\n', got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${foo%d\'}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc28 Strip a string with single quotes, double quoted

[osh_.cc stdout] Expected '["\'a b c "]\n', got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${foo%d\'}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py29 The string to strip is space sensitive

[osh_.py stdout] Expected "['a b ', 'a b c d']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${foo%c d}" "${foo%c  d}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc29 The string to strip is space sensitive

[osh_.cc stdout] Expected "['a b ', 'a b c d']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py "${foo%c d}" "${foo%c  d}"
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py30 The string to strip can be single quoted, outer is unquoted

[osh_.py stdout] Expected "['a', 'b', 'a', 'b', 'c', 'd']\n", got ''
[osh_.py status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${foo%'c d'} ${foo%'c  d'}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.cc30 The string to strip can be single quoted, outer is unquoted

[osh_.cc stdout] Expected "['a', 'b', 'a', 'b', 'c', 'd']\n", got ''
[osh_.cc status] Expected 0, got 127

stdout:
stderr: 
  argv.py ${foo%'c d'} ${foo%'c  d'}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
osh_.py32 "${undef-'c d'}" and "${foo%'c d'}" are parsed differently

[osh_.py stdout] Expected '["\'c d\'", "\'c d\'"]\n[\'c d\', \'c d\']\n---\n[\'a b \', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n', got '---\n'
[osh_.py status] Expected 0, got 127

stdout:
---
stderr:
  argv.py "${undef-'c d'}" "${undef-'c  d'}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
  argv.py ${undef-'c d'} ${undef-'c  d'}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
  argv.py "${foo%'c d'}" "${foo%'c  d'}"
  ^~~~~~~
[ stdin ]:5: 'argv.py' not found
  argv.py "${foo//'c d'/zzz}" "${foo//'c  d'/zzz}"
  ^~~~~~~
[ stdin ]:7: 'argv.py' not found
  argv.py "${foo//'c d'/'zzz'}" "${foo//'c  d'/'zzz'}"
  ^~~~~~~
[ stdin ]:8: 'argv.py' not found
osh_.cc32 "${undef-'c d'}" and "${foo%'c d'}" are parsed differently

[osh_.cc stdout] Expected '["\'c d\'", "\'c d\'"]\n[\'c d\', \'c d\']\n---\n[\'a b \', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n[\'a b zzz\', \'a b c d\']\n', got '---\n'
[osh_.cc status] Expected 0, got 127

stdout:
---
stderr:
  argv.py "${undef-'c d'}" "${undef-'c  d'}"
  ^~~~~~~
[ stdin ]:1: 'argv.py' not found
  argv.py ${undef-'c d'} ${undef-'c  d'}
  ^~~~~~~
[ stdin ]:2: 'argv.py' not found
  argv.py "${foo%'c d'}" "${foo%'c  d'}"
  ^~~~~~~
[ stdin ]:5: 'argv.py' not found
  argv.py "${foo//'c d'/zzz}" "${foo//'c  d'/zzz}"
  ^~~~~~~
[ stdin ]:7: 'argv.py' not found
  argv.py "${foo//'c d'/'zzz'}" "${foo//'c  d'/'zzz'}"
  ^~~~~~~
[ stdin ]:8: 'argv.py' not found