aboutsummaryrefslogtreecommitdiff
path: root/shell/ash_test/ash-quoting
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-03-02 18:12:12 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-03-02 18:12:12 +0100
commit55f8133a4fb207d6fecd02f43c36809d3c2f6672 (patch)
tree5f57cd305d494a914980022bb6767b2e8faaf676 /shell/ash_test/ash-quoting
parent744a20d8f9b1baf7c8cc1ed33ec744a52c89768f (diff)
downloadbusybox-55f8133a4fb207d6fecd02f43c36809d3c2f6672.tar.gz
shell: tweak bkslash_in_varexp.tests, add bkslash_in_varexp1.tests
It turns out bkslash_in_varexp.tests was a bash bug :] ash and hush fail "corrected" bkslash_in_varexp.tests as well, just not as badly as I thought (hush gets half of the cases right). Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test/ash-quoting')
-rwxr-xr-xshell/ash_test/ash-quoting/bkslash_in_varexp.tests12
-rw-r--r--shell/ash_test/ash-quoting/bkslash_in_varexp1.right5
-rwxr-xr-xshell/ash_test/ash-quoting/bkslash_in_varexp1.tests6
3 files changed, 22 insertions, 1 deletions
diff --git a/shell/ash_test/ash-quoting/bkslash_in_varexp.tests b/shell/ash_test/ash-quoting/bkslash_in_varexp.tests
index 41b31ab54..6c7b4b0cc 100755
--- a/shell/ash_test/ash-quoting/bkslash_in_varexp.tests
+++ b/shell/ash_test/ash-quoting/bkslash_in_varexp.tests
@@ -1,4 +1,14 @@
-x=a
+x='a]'
+#
+# \] is not a valid escape for ] in set glob expression.
+# Glob sets have no escaping at all:
+# ] can be in a set if it is the first char: []abc],
+# dash can be in a set if it is first or last: [abc-],
+# [ and \ need no protections at all: [a[b\c] is a valid set of 5 chars.
+#
+# bash-4.3.43 misinterprets [a\]] as "set of 'a' or ']'".
+# Correct interpretation is "set of 'a' or '\', followed by ']'".
+#
echo Nothing:${x#[a\]]}
echo Nothing:"${x#[a\]]}"
echo Nothing:${x%[a\]]}
diff --git a/shell/ash_test/ash-quoting/bkslash_in_varexp1.right b/shell/ash_test/ash-quoting/bkslash_in_varexp1.right
new file mode 100644
index 000000000..d03047024
--- /dev/null
+++ b/shell/ash_test/ash-quoting/bkslash_in_varexp1.right
@@ -0,0 +1,5 @@
+Nothing:
+Nothing:
+Nothing:
+Nothing:
+Ok:0
diff --git a/shell/ash_test/ash-quoting/bkslash_in_varexp1.tests b/shell/ash_test/ash-quoting/bkslash_in_varexp1.tests
new file mode 100755
index 000000000..3c817eae1
--- /dev/null
+++ b/shell/ash_test/ash-quoting/bkslash_in_varexp1.tests
@@ -0,0 +1,6 @@
+x=a
+echo Nothing:${x#[]a]}
+echo Nothing:"${x#[]a]}"
+echo Nothing:${x%[]a]}
+echo Nothing:"${x%[]a]}"
+echo Ok:$?