aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2016-10-02 18:08:04 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2016-10-02 18:08:04 +0200
commite3354bc44aa92c20bec0ffdc78e6b57351e8f16d (patch)
tree5b1d0397af69b7bcd9f63d94705cfdbade01810a
parentc4cf542c575068d55368e771abf6c358bfebf5d3 (diff)
downloadbusybox-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>
-rw-r--r--shell/ash_test/ash-vars/var_bash4.right25
-rwxr-xr-xshell/ash_test/ash-vars/var_bash4.tests52
-rw-r--r--shell/ash_test/ash-vars/var_bash5.right13
-rwxr-xr-xshell/ash_test/ash-vars/var_bash5.tests24
-rw-r--r--shell/ash_test/ash-vars/var_posix1.right30
-rwxr-xr-xshell/ash_test/ash-vars/var_posix1.tests37
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 @@
1Source: a*b\*c 1Source: a*b\*c
2Replace str: _\\_\z_ 2Replace str: _\\_\z_
3Pattern: single backslash and star: "replace literal star" 3Pattern: single backslash and star: "replace literal star"
4In assignment: a_\_z_b\*c
5Unquoted: a_\_z_b\*c 4Unquoted: a_\_z_b\*c
5Unquoted =: a_\_z_b\*c
6Quoted: a_\_\z_b\*c 6Quoted: a_\_\z_b\*c
7Quoted =: a_\_\z_b\*c
7Pattern: double backslash and star: "replace backslash and everything after it" 8Pattern: double backslash and star: "replace backslash and everything after it"
8In assignment: a*b_\_z_
9Unquoted: a*b_\_z_ 9Unquoted: a*b_\_z_
10Unquoted =: a*b_\_z_
10Quoted: a*b_\_\z_ 11Quoted: a*b_\_\z_
12Quoted =: a*b_\_\z_
11 13
12Source: a\bc 14Source: a\bc
13Replace str: _\\_\z_ 15Replace str: _\\_\z_
14Pattern: single backslash and b: "replace b" 16Pattern: single backslash and b: "replace b"
15In assignment: a\_\_z_c
16Unquoted: a\_\_z_c 17Unquoted: a\_\_z_c
18Unquoted =: a\_\_z_c
17Quoted: a\_\_\z_c 19Quoted: a\_\_\z_c
20Quoted =: a\_\_\z_c
18Pattern: double backslash and b: "replace backslash and b" 21Pattern: double backslash and b: "replace backslash and b"
19In assignment: a_\_z_c
20Unquoted: a_\_z_c 22Unquoted: a_\_z_c
23Unquoted =: a_\_z_c
21Quoted: a_\_\z_c 24Quoted: a_\_\z_c
25Quoted =: a_\_\z_c
26
27Source: a\bc
28Replace str: _\\_\z_ (as variable $s)
29Pattern: single backslash and b: "replace b"
30Unquoted: a\_\\_\z_c
31Unquoted =: a\_\\_\z_c
32Quoted: a\_\\_\z_c
33Quoted =: a\_\\_\z_c
34Pattern: double backslash and b: "replace backslash and b"
35Unquoted: a_\\_\z_c
36Unquoted =: a_\\_\z_c
37Quoted: a_\\_\z_c
38Quoted =: a_\\_\z_c
22 39
23Done: 0 40Done: 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
11v='a*b\*c' 14v='a*b\*c'
12echo 'Source: ' "$v" 15echo 'Source: ' "$v"
13echo 'Replace str: ' '_\\_\z_' 16echo 'Replace str: ' '_\\_\z_'
14 17
15echo 'Pattern: ' 'single backslash and star: "replace literal star"' 18echo 'Pattern: ' 'single backslash and star: "replace literal star"'
16r=${v/\*/_\\_\z_}
17echo 'In assignment:' "$r"
18echo 'Unquoted: ' ${v/\*/_\\_\z_} 19echo 'Unquoted: ' ${v/\*/_\\_\z_}
20r=${v/\*/_\\_\z_}
21echo 'Unquoted =: ' "$r"
19echo 'Quoted: ' "${v/\*/_\\_\z_}" 22echo 'Quoted: ' "${v/\*/_\\_\z_}"
23r="${v/\*/_\\_\z_}"
24echo 'Quoted =: ' "$r"
20 25
21echo 'Pattern: ' 'double backslash and star: "replace backslash and everything after it"' 26echo 'Pattern: ' 'double backslash and star: "replace backslash and everything after it"'
22r=${v/\\*/_\\_\z_}
23echo 'In assignment:' "$r"
24echo 'Unquoted: ' ${v/\\*/_\\_\z_} 27echo 'Unquoted: ' ${v/\\*/_\\_\z_}
28r=${v/\\*/_\\_\z_}
29echo 'Unquoted =: ' "$r"
25echo 'Quoted: ' "${v/\\*/_\\_\z_}" 30echo 'Quoted: ' "${v/\\*/_\\_\z_}"
31r="${v/\\*/_\\_\z_}"
32echo 'Quoted =: ' "$r"
26 33
27echo 34echo
28 35
@@ -31,16 +38,43 @@ echo 'Source: ' "$v"
31echo 'Replace str: ' '_\\_\z_' 38echo 'Replace str: ' '_\\_\z_'
32 39
33echo 'Pattern: ' 'single backslash and b: "replace b"' 40echo 'Pattern: ' 'single backslash and b: "replace b"'
34r=${v/\b/_\\_\z_}
35echo 'In assignment:' "$r"
36echo 'Unquoted: ' ${v/\b/_\\_\z_} 41echo 'Unquoted: ' ${v/\b/_\\_\z_}
42r=${v/\b/_\\_\z_}
43echo 'Unquoted =: ' "$r"
37echo 'Quoted: ' "${v/\b/_\\_\z_}" 44echo 'Quoted: ' "${v/\b/_\\_\z_}"
45r="${v/\b/_\\_\z_}"
46echo 'Quoted =: ' "$r"
38 47
39echo 'Pattern: ' 'double backslash and b: "replace backslash and b"' 48echo 'Pattern: ' 'double backslash and b: "replace backslash and b"'
40r=${v/\\b/_\\_\z_}
41echo 'In assignment:' "$r"
42echo 'Unquoted: ' ${v/\\b/_\\_\z_} 49echo 'Unquoted: ' ${v/\\b/_\\_\z_}
50r=${v/\\b/_\\_\z_}
51echo 'Unquoted =: ' "$r"
43echo 'Quoted: ' "${v/\\b/_\\_\z_}" 52echo 'Quoted: ' "${v/\\b/_\\_\z_}"
53r="${v/\\b/_\\_\z_}"
54echo 'Quoted =: ' "$r"
55
56echo
57
58v='a\bc'
59s='_\\_\z_'
60echo 'Source: ' "$v"
61echo 'Replace str: ' "$s" '(as variable $s)'
62
63echo 'Pattern: ' 'single backslash and b: "replace b"'
64echo 'Unquoted: ' ${v/\b/$s}
65r=${v/\b/$s}
66echo 'Unquoted =: ' "$r"
67echo 'Quoted: ' "${v/\b/$s}"
68r="${v/\b/$s}"
69echo 'Quoted =: ' "$r"
70
71echo 'Pattern: ' 'double backslash and b: "replace backslash and b"'
72echo 'Unquoted: ' ${v/\\b/$s}
73r=${v/\\b/$s}
74echo 'Unquoted =: ' "$r"
75echo 'Quoted: ' "${v/\\b/$s}"
76r="${v/\\b/$s}"
77echo 'Quoted =: ' "$r"
44 78
45echo 79echo
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 @@
1a/ 11 a/
2a/d 22 a/d
3a/e/f 33 a/e/f
44 a\
55 a\d
66 a\e\f
77 a\\
88 a\\d
99 a\\e\\f
10a ab
4Done: 0 11Done: 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 @@
4v='a/b/c' 4v='a/b/c'
5s='b/c' 5s='b/c'
6r='e/f' 6r='e/f'
7echo "${v/$s}" 7echo "1 ${v/$s}"
8echo "${v/$s/d}" 8echo "2 ${v/$s/d}"
9echo "${v/$s/$r}" 9echo "3 ${v/$s/$r}"
10
11v='a\b\c'
12s='b\\c'
13r='e\f'
14echo "4 ${v/$s}"
15echo "5 ${v/$s/d}"
16echo "6 ${v/$s/$r}"
17
18v='a\\b\\c'
19s='b\\\\c'
20r='e\\f'
21echo "7 ${v/$s}"
22echo "8 ${v/$s/d}"
23echo "9 ${v/$s/$r}"
24
25v='a-$a-\t-\\-\"-\`-\--\z-\*-\?-b'
26s='-$a-\\t-\\\\-\\"-\\`-\\--\\z-\\\*-\\\?-'
27echo "a ${v/$s}"
10 28
11echo Done: $? 29echo 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 @@
1Empty:
2Empty:
3Empty:
4Empty:
5Empty:
6Empty:
7Empty:
8Empty:
9Empty:
10Empty:
11Empty:
12Empty:
13Empty:
14Empty:
15Empty:
16Empty:
1abcdcd 17abcdcd
2abcdcd 18abcdcd
3abcdcd 19abcdcd
@@ -5,7 +21,9 @@ cdcd
5babcdcd 21babcdcd
6babcdcd 22babcdcd
7ababcdcd 23ababcdcd
8 24Empty:
25ababcdcd}_tail
26ababcdcd_tail
9ababcd 27ababcd
10ababcd 28ababcd
11ababcd 29ababcd
@@ -13,5 +31,11 @@ abab
13ababcdc 31ababcdc
14ababcdc 32ababcdc
15ababcdcd 33ababcdcd
16 34Empty:
17end 35ababcdcd}_tail
36ababcdcd_tail
37ababcdcd
38ab
39ab
40ab
41End
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 @@
1unset var
2
3echo Empty:${var#}
4echo Empty:${var##}
5echo Empty:${var#*}
6echo Empty:${var##*}
7echo Empty:${var%}
8echo Empty:${var%%}
9echo Empty:${var%*}
10echo Empty:${var%%*}
11
12var=
13
14echo Empty:${var#}
15echo Empty:${var##}
16echo Empty:${var#*}
17echo Empty:${var##*}
18echo Empty:${var%}
19echo Empty:${var%%}
20echo Empty:${var%*}
21echo Empty:${var%%*}
22
1var=ababcdcd 23var=ababcdcd
2 24
3echo ${var#ab} 25echo ${var#ab}
@@ -7,7 +29,9 @@ echo ${var##a*b}
7echo ${var#?} 29echo ${var#?}
8echo ${var##?} 30echo ${var##?}
9echo ${var#*} 31echo ${var#*}
10echo ${var##*} 32echo Empty:${var##*}
33echo ${var#}}_tail
34echo ${var#\}}_tail
11 35
12echo ${var%cd} 36echo ${var%cd}
13echo ${var%%cd} 37echo ${var%%cd}
@@ -16,6 +40,13 @@ echo ${var%%c*d}
16echo ${var%?} 40echo ${var%?}
17echo ${var%%?} 41echo ${var%%?}
18echo ${var%*} 42echo ${var%*}
19echo ${var%%*} 43echo Empty:${var%%*}
44echo ${var#}}_tail
45echo ${var#\}}_tail
46echo ${var%\\*}
47
48a=ab}; echo ${a%\}};
49a=abc; c=c; echo ${a%${c}}
50a=ab{{c; echo ${a%`echo {{c`}
20 51
21echo end 52echo End