diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-02 18:08:04 +0200 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-02 18:08:04 +0200 |
| commit | e3354bc44aa92c20bec0ffdc78e6b57351e8f16d (patch) | |
| tree | 5b1d0397af69b7bcd9f63d94705cfdbade01810a /shell | |
| parent | c4cf542c575068d55368e771abf6c358bfebf5d3 (diff) | |
| download | busybox-w32-e3354bc44aa92c20bec0ffdc78e6b57351e8f16d.tar.gz busybox-w32-e3354bc44aa92c20bec0ffdc78e6b57351e8f16d.tar.bz2 busybox-w32-e3354bc44aa92c20bec0ffdc78e6b57351e8f16d.zip | |
ash testsuite: update some of variable tests with newer versions from hush
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
| -rw-r--r-- | shell/ash_test/ash-vars/var_bash4.right | 25 | ||||
| -rwxr-xr-x | shell/ash_test/ash-vars/var_bash4.tests | 52 | ||||
| -rw-r--r-- | shell/ash_test/ash-vars/var_bash5.right | 13 | ||||
| -rwxr-xr-x | shell/ash_test/ash-vars/var_bash5.tests | 24 | ||||
| -rw-r--r-- | shell/ash_test/ash-vars/var_posix1.right | 30 | ||||
| -rwxr-xr-x | shell/ash_test/ash-vars/var_posix1.tests | 37 |
6 files changed, 156 insertions, 25 deletions
diff --git a/shell/ash_test/ash-vars/var_bash4.right b/shell/ash_test/ash-vars/var_bash4.right index 600e8532f..0ef1bf661 100644 --- a/shell/ash_test/ash-vars/var_bash4.right +++ b/shell/ash_test/ash-vars/var_bash4.right | |||
| @@ -1,23 +1,40 @@ | |||
| 1 | Source: a*b\*c | 1 | Source: a*b\*c |
| 2 | Replace str: _\\_\z_ | 2 | Replace str: _\\_\z_ |
| 3 | Pattern: single backslash and star: "replace literal star" | 3 | Pattern: single backslash and star: "replace literal star" |
| 4 | In assignment: a_\_z_b\*c | ||
| 5 | Unquoted: a_\_z_b\*c | 4 | Unquoted: a_\_z_b\*c |
| 5 | Unquoted =: a_\_z_b\*c | ||
| 6 | Quoted: a_\_\z_b\*c | 6 | Quoted: a_\_\z_b\*c |
| 7 | Quoted =: a_\_\z_b\*c | ||
| 7 | Pattern: double backslash and star: "replace backslash and everything after it" | 8 | Pattern: double backslash and star: "replace backslash and everything after it" |
| 8 | In assignment: a*b_\_z_ | ||
| 9 | Unquoted: a*b_\_z_ | 9 | Unquoted: a*b_\_z_ |
| 10 | Unquoted =: a*b_\_z_ | ||
| 10 | Quoted: a*b_\_\z_ | 11 | Quoted: a*b_\_\z_ |
| 12 | Quoted =: a*b_\_\z_ | ||
| 11 | 13 | ||
| 12 | Source: a\bc | 14 | Source: a\bc |
| 13 | Replace str: _\\_\z_ | 15 | Replace str: _\\_\z_ |
| 14 | Pattern: single backslash and b: "replace b" | 16 | Pattern: single backslash and b: "replace b" |
| 15 | In assignment: a\_\_z_c | ||
| 16 | Unquoted: a\_\_z_c | 17 | Unquoted: a\_\_z_c |
| 18 | Unquoted =: a\_\_z_c | ||
| 17 | Quoted: a\_\_\z_c | 19 | Quoted: a\_\_\z_c |
| 20 | Quoted =: a\_\_\z_c | ||
| 18 | Pattern: double backslash and b: "replace backslash and b" | 21 | Pattern: double backslash and b: "replace backslash and b" |
| 19 | In assignment: a_\_z_c | ||
| 20 | Unquoted: a_\_z_c | 22 | Unquoted: a_\_z_c |
| 23 | Unquoted =: a_\_z_c | ||
| 21 | Quoted: a_\_\z_c | 24 | Quoted: a_\_\z_c |
| 25 | Quoted =: a_\_\z_c | ||
| 26 | |||
| 27 | Source: a\bc | ||
| 28 | Replace str: _\\_\z_ (as variable $s) | ||
| 29 | Pattern: single backslash and b: "replace b" | ||
| 30 | Unquoted: a\_\\_\z_c | ||
| 31 | Unquoted =: a\_\\_\z_c | ||
| 32 | Quoted: a\_\\_\z_c | ||
| 33 | Quoted =: a\_\\_\z_c | ||
| 34 | Pattern: double backslash and b: "replace backslash and b" | ||
| 35 | Unquoted: a_\\_\z_c | ||
| 36 | Unquoted =: a_\\_\z_c | ||
| 37 | Quoted: a_\\_\z_c | ||
| 38 | Quoted =: a_\\_\z_c | ||
| 22 | 39 | ||
| 23 | Done: 0 | 40 | Done: 0 |
diff --git a/shell/ash_test/ash-vars/var_bash4.tests b/shell/ash_test/ash-vars/var_bash4.tests index d5470614b..32aa2b34c 100755 --- a/shell/ash_test/ash-vars/var_bash4.tests +++ b/shell/ash_test/ash-vars/var_bash4.tests | |||
| @@ -6,23 +6,30 @@ | |||
| 6 | # even in quotes. | 6 | # even in quotes. |
| 7 | # | 7 | # |
| 8 | # bash4 (and probably bash3 too): "Quoted:" results are different from | 8 | # bash4 (and probably bash3 too): "Quoted:" results are different from |
| 9 | # unquoted and assignment expansions - they have a backslash before z. | 9 | # unquoted expansions - they have a backslash before z. |
| 10 | # | ||
| 11 | # The difference only exists if repl is a literal. If it is a variable: | ||
| 12 | # ${v/.../$s}, then all backslashes are preserved in both cases. | ||
| 10 | 13 | ||
| 11 | v='a*b\*c' | 14 | v='a*b\*c' |
| 12 | echo 'Source: ' "$v" | 15 | echo 'Source: ' "$v" |
| 13 | echo 'Replace str: ' '_\\_\z_' | 16 | echo 'Replace str: ' '_\\_\z_' |
| 14 | 17 | ||
| 15 | echo 'Pattern: ' 'single backslash and star: "replace literal star"' | 18 | echo 'Pattern: ' 'single backslash and star: "replace literal star"' |
| 16 | r=${v/\*/_\\_\z_} | ||
| 17 | echo 'In assignment:' "$r" | ||
| 18 | echo 'Unquoted: ' ${v/\*/_\\_\z_} | 19 | echo 'Unquoted: ' ${v/\*/_\\_\z_} |
| 20 | r=${v/\*/_\\_\z_} | ||
| 21 | echo 'Unquoted =: ' "$r" | ||
| 19 | echo 'Quoted: ' "${v/\*/_\\_\z_}" | 22 | echo 'Quoted: ' "${v/\*/_\\_\z_}" |
| 23 | r="${v/\*/_\\_\z_}" | ||
| 24 | echo 'Quoted =: ' "$r" | ||
| 20 | 25 | ||
| 21 | echo 'Pattern: ' 'double backslash and star: "replace backslash and everything after it"' | 26 | echo 'Pattern: ' 'double backslash and star: "replace backslash and everything after it"' |
| 22 | r=${v/\\*/_\\_\z_} | ||
| 23 | echo 'In assignment:' "$r" | ||
| 24 | echo 'Unquoted: ' ${v/\\*/_\\_\z_} | 27 | echo 'Unquoted: ' ${v/\\*/_\\_\z_} |
| 28 | r=${v/\\*/_\\_\z_} | ||
| 29 | echo 'Unquoted =: ' "$r" | ||
| 25 | echo 'Quoted: ' "${v/\\*/_\\_\z_}" | 30 | echo 'Quoted: ' "${v/\\*/_\\_\z_}" |
| 31 | r="${v/\\*/_\\_\z_}" | ||
| 32 | echo 'Quoted =: ' "$r" | ||
| 26 | 33 | ||
| 27 | echo | 34 | echo |
| 28 | 35 | ||
| @@ -31,16 +38,43 @@ echo 'Source: ' "$v" | |||
| 31 | echo 'Replace str: ' '_\\_\z_' | 38 | echo 'Replace str: ' '_\\_\z_' |
| 32 | 39 | ||
| 33 | echo 'Pattern: ' 'single backslash and b: "replace b"' | 40 | echo 'Pattern: ' 'single backslash and b: "replace b"' |
| 34 | r=${v/\b/_\\_\z_} | ||
| 35 | echo 'In assignment:' "$r" | ||
| 36 | echo 'Unquoted: ' ${v/\b/_\\_\z_} | 41 | echo 'Unquoted: ' ${v/\b/_\\_\z_} |
| 42 | r=${v/\b/_\\_\z_} | ||
| 43 | echo 'Unquoted =: ' "$r" | ||
| 37 | echo 'Quoted: ' "${v/\b/_\\_\z_}" | 44 | echo 'Quoted: ' "${v/\b/_\\_\z_}" |
| 45 | r="${v/\b/_\\_\z_}" | ||
| 46 | echo 'Quoted =: ' "$r" | ||
| 38 | 47 | ||
| 39 | echo 'Pattern: ' 'double backslash and b: "replace backslash and b"' | 48 | echo 'Pattern: ' 'double backslash and b: "replace backslash and b"' |
| 40 | r=${v/\\b/_\\_\z_} | ||
| 41 | echo 'In assignment:' "$r" | ||
| 42 | echo 'Unquoted: ' ${v/\\b/_\\_\z_} | 49 | echo 'Unquoted: ' ${v/\\b/_\\_\z_} |
| 50 | r=${v/\\b/_\\_\z_} | ||
| 51 | echo 'Unquoted =: ' "$r" | ||
| 43 | echo 'Quoted: ' "${v/\\b/_\\_\z_}" | 52 | echo 'Quoted: ' "${v/\\b/_\\_\z_}" |
| 53 | r="${v/\\b/_\\_\z_}" | ||
| 54 | echo 'Quoted =: ' "$r" | ||
| 55 | |||
| 56 | echo | ||
| 57 | |||
| 58 | v='a\bc' | ||
| 59 | s='_\\_\z_' | ||
| 60 | echo 'Source: ' "$v" | ||
| 61 | echo 'Replace str: ' "$s" '(as variable $s)' | ||
| 62 | |||
| 63 | echo 'Pattern: ' 'single backslash and b: "replace b"' | ||
| 64 | echo 'Unquoted: ' ${v/\b/$s} | ||
| 65 | r=${v/\b/$s} | ||
| 66 | echo 'Unquoted =: ' "$r" | ||
| 67 | echo 'Quoted: ' "${v/\b/$s}" | ||
| 68 | r="${v/\b/$s}" | ||
| 69 | echo 'Quoted =: ' "$r" | ||
| 70 | |||
| 71 | echo 'Pattern: ' 'double backslash and b: "replace backslash and b"' | ||
| 72 | echo 'Unquoted: ' ${v/\\b/$s} | ||
| 73 | r=${v/\\b/$s} | ||
| 74 | echo 'Unquoted =: ' "$r" | ||
| 75 | echo 'Quoted: ' "${v/\\b/$s}" | ||
| 76 | r="${v/\\b/$s}" | ||
| 77 | echo 'Quoted =: ' "$r" | ||
| 44 | 78 | ||
| 45 | echo | 79 | echo |
| 46 | 80 | ||
diff --git a/shell/ash_test/ash-vars/var_bash5.right b/shell/ash_test/ash-vars/var_bash5.right index 278ed3228..1990902b2 100644 --- a/shell/ash_test/ash-vars/var_bash5.right +++ b/shell/ash_test/ash-vars/var_bash5.right | |||
| @@ -1,4 +1,11 @@ | |||
| 1 | a/ | 1 | 1 a/ |
| 2 | a/d | 2 | 2 a/d |
| 3 | a/e/f | 3 | 3 a/e/f |
| 4 | 4 a\ | ||
| 5 | 5 a\d | ||
| 6 | 6 a\e\f | ||
| 7 | 7 a\\ | ||
| 8 | 8 a\\d | ||
| 9 | 9 a\\e\\f | ||
| 10 | a ab | ||
| 4 | Done: 0 | 11 | Done: 0 |
diff --git a/shell/ash_test/ash-vars/var_bash5.tests b/shell/ash_test/ash-vars/var_bash5.tests index 7f482a554..5748b4ac7 100755 --- a/shell/ash_test/ash-vars/var_bash5.tests +++ b/shell/ash_test/ash-vars/var_bash5.tests | |||
| @@ -4,8 +4,26 @@ | |||
| 4 | v='a/b/c' | 4 | v='a/b/c' |
| 5 | s='b/c' | 5 | s='b/c' |
| 6 | r='e/f' | 6 | r='e/f' |
| 7 | echo "${v/$s}" | 7 | echo "1 ${v/$s}" |
| 8 | echo "${v/$s/d}" | 8 | echo "2 ${v/$s/d}" |
| 9 | echo "${v/$s/$r}" | 9 | echo "3 ${v/$s/$r}" |
| 10 | |||
| 11 | v='a\b\c' | ||
| 12 | s='b\\c' | ||
| 13 | r='e\f' | ||
| 14 | echo "4 ${v/$s}" | ||
| 15 | echo "5 ${v/$s/d}" | ||
| 16 | echo "6 ${v/$s/$r}" | ||
| 17 | |||
| 18 | v='a\\b\\c' | ||
| 19 | s='b\\\\c' | ||
| 20 | r='e\\f' | ||
| 21 | echo "7 ${v/$s}" | ||
| 22 | echo "8 ${v/$s/d}" | ||
| 23 | echo "9 ${v/$s/$r}" | ||
| 24 | |||
| 25 | v='a-$a-\t-\\-\"-\`-\--\z-\*-\?-b' | ||
| 26 | s='-$a-\\t-\\\\-\\"-\\`-\\--\\z-\\\*-\\\?-' | ||
| 27 | echo "a ${v/$s}" | ||
| 10 | 28 | ||
| 11 | echo Done: $? | 29 | echo Done: $? |
diff --git a/shell/ash_test/ash-vars/var_posix1.right b/shell/ash_test/ash-vars/var_posix1.right index 55f35798a..7ff618ad0 100644 --- a/shell/ash_test/ash-vars/var_posix1.right +++ b/shell/ash_test/ash-vars/var_posix1.right | |||
| @@ -1,3 +1,19 @@ | |||
| 1 | Empty: | ||
| 2 | Empty: | ||
| 3 | Empty: | ||
| 4 | Empty: | ||
| 5 | Empty: | ||
| 6 | Empty: | ||
| 7 | Empty: | ||
| 8 | Empty: | ||
| 9 | Empty: | ||
| 10 | Empty: | ||
| 11 | Empty: | ||
| 12 | Empty: | ||
| 13 | Empty: | ||
| 14 | Empty: | ||
| 15 | Empty: | ||
| 16 | Empty: | ||
| 1 | abcdcd | 17 | abcdcd |
| 2 | abcdcd | 18 | abcdcd |
| 3 | abcdcd | 19 | abcdcd |
| @@ -5,7 +21,9 @@ cdcd | |||
| 5 | babcdcd | 21 | babcdcd |
| 6 | babcdcd | 22 | babcdcd |
| 7 | ababcdcd | 23 | ababcdcd |
| 8 | 24 | Empty: | |
| 25 | ababcdcd}_tail | ||
| 26 | ababcdcd_tail | ||
| 9 | ababcd | 27 | ababcd |
| 10 | ababcd | 28 | ababcd |
| 11 | ababcd | 29 | ababcd |
| @@ -13,5 +31,11 @@ abab | |||
| 13 | ababcdc | 31 | ababcdc |
| 14 | ababcdc | 32 | ababcdc |
| 15 | ababcdcd | 33 | ababcdcd |
| 16 | 34 | Empty: | |
| 17 | end | 35 | ababcdcd}_tail |
| 36 | ababcdcd_tail | ||
| 37 | ababcdcd | ||
| 38 | ab | ||
| 39 | ab | ||
| 40 | ab | ||
| 41 | End | ||
diff --git a/shell/ash_test/ash-vars/var_posix1.tests b/shell/ash_test/ash-vars/var_posix1.tests index 4139e2cc3..82abe8198 100755 --- a/shell/ash_test/ash-vars/var_posix1.tests +++ b/shell/ash_test/ash-vars/var_posix1.tests | |||
| @@ -1,3 +1,25 @@ | |||
| 1 | unset var | ||
| 2 | |||
| 3 | echo Empty:${var#} | ||
| 4 | echo Empty:${var##} | ||
| 5 | echo Empty:${var#*} | ||
| 6 | echo Empty:${var##*} | ||
| 7 | echo Empty:${var%} | ||
| 8 | echo Empty:${var%%} | ||
| 9 | echo Empty:${var%*} | ||
| 10 | echo Empty:${var%%*} | ||
| 11 | |||
| 12 | var= | ||
| 13 | |||
| 14 | echo Empty:${var#} | ||
| 15 | echo Empty:${var##} | ||
| 16 | echo Empty:${var#*} | ||
| 17 | echo Empty:${var##*} | ||
| 18 | echo Empty:${var%} | ||
| 19 | echo Empty:${var%%} | ||
| 20 | echo Empty:${var%*} | ||
| 21 | echo Empty:${var%%*} | ||
| 22 | |||
| 1 | var=ababcdcd | 23 | var=ababcdcd |
| 2 | 24 | ||
| 3 | echo ${var#ab} | 25 | echo ${var#ab} |
| @@ -7,7 +29,9 @@ echo ${var##a*b} | |||
| 7 | echo ${var#?} | 29 | echo ${var#?} |
| 8 | echo ${var##?} | 30 | echo ${var##?} |
| 9 | echo ${var#*} | 31 | echo ${var#*} |
| 10 | echo ${var##*} | 32 | echo Empty:${var##*} |
| 33 | echo ${var#}}_tail | ||
| 34 | echo ${var#\}}_tail | ||
| 11 | 35 | ||
| 12 | echo ${var%cd} | 36 | echo ${var%cd} |
| 13 | echo ${var%%cd} | 37 | echo ${var%%cd} |
| @@ -16,6 +40,13 @@ echo ${var%%c*d} | |||
| 16 | echo ${var%?} | 40 | echo ${var%?} |
| 17 | echo ${var%%?} | 41 | echo ${var%%?} |
| 18 | echo ${var%*} | 42 | echo ${var%*} |
| 19 | echo ${var%%*} | 43 | echo Empty:${var%%*} |
| 44 | echo ${var#}}_tail | ||
| 45 | echo ${var#\}}_tail | ||
| 46 | echo ${var%\\*} | ||
| 47 | |||
| 48 | a=ab}; echo ${a%\}}; | ||
| 49 | a=abc; c=c; echo ${a%${c}} | ||
| 50 | a=ab{{c; echo ${a%`echo {{c`} | ||
| 20 | 51 | ||
| 21 | echo end | 52 | echo End |
