summaryrefslogtreecommitdiff
path: root/release/src/router/busybox/shell/ash_test/ash-vars
diff options
context:
space:
mode:
Diffstat (limited to 'release/src/router/busybox/shell/ash_test/ash-vars')
-rw-r--r--release/src/router/busybox/shell/ash_test/ash-vars/var1.right6
-rwxr-xr-xrelease/src/router/busybox/shell/ash_test/ash-vars/var1.tests14
-rw-r--r--release/src/router/busybox/shell/ash_test/ash-vars/var2.right1
-rwxr-xr-xrelease/src/router/busybox/shell/ash_test/ash-vars/var2.tests1
-rw-r--r--release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.right14
-rwxr-xr-xrelease/src/router/busybox/shell/ash_test/ash-vars/var_bash1.tests18
-rw-r--r--release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.right10
-rwxr-xr-xrelease/src/router/busybox/shell/ash_test/ash-vars/var_bash2.tests24
-rw-r--r--release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.right20
-rwxr-xr-xrelease/src/router/busybox/shell/ash_test/ash-vars/var_bash3.tests41
-rw-r--r--release/src/router/busybox/shell/ash_test/ash-vars/var_leak.right2
-rwxr-xr-xrelease/src/router/busybox/shell/ash_test/ash-vars/var_leak.tests9
-rw-r--r--release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.right17
-rwxr-xr-xrelease/src/router/busybox/shell/ash_test/ash-vars/var_posix1.tests21
14 files changed, 198 insertions, 0 deletions
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var1.right b/release/src/router/busybox/shell/ash_test/ash-vars/var1.right
new file mode 100644
index 00000000..2a01291b
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var1.right
@@ -0,0 +1,6 @@
+a=a A=a
+a=a A=a
+a= A=
+a= A=
+a=a A=a
+a=a A=a
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var1.tests b/release/src/router/busybox/shell/ash_test/ash-vars/var1.tests
new file mode 100755
index 00000000..802e489b
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var1.tests
@@ -0,0 +1,14 @@
+# check that first assignment has proper effect on second one
+
+(
+a=a A=$a
+echo a=$a A=$A
+)
+(a=a A=$a; echo a=$a A=$A)
+(a=a A=$a echo a=$a A=$A)
+(a=a A=$a /bin/echo a=$a A=$A)
+
+f() { echo a=$a A=$A; }
+
+(a=a A=$a f)
+(a=a A=$a; f)
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var2.right b/release/src/router/busybox/shell/ash_test/ash-vars/var2.right
new file mode 100644
index 00000000..8fed138e
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var2.right
@@ -0,0 +1 @@
+bus/usb/1/2
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var2.tests b/release/src/router/busybox/shell/ash_test/ash-vars/var2.tests
new file mode 100755
index 00000000..07feaeb8
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var2.tests
@@ -0,0 +1 @@
+X=usbdev1.2 X=${X#usbdev} B=${X%%.*} D=${X#*.}; echo bus/usb/$B/$D
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.right b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.right
new file mode 100644
index 00000000..c0a07699
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.right
@@ -0,0 +1,14 @@
+
+
+f
+bcdef
+abcdef
+abcdef
+bcde
+abcd
+abcd
+abcdef
+bcdef
+abcdef
+abcdef
+abcdef
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.tests b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.tests
new file mode 100755
index 00000000..24d3c9a0
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.tests
@@ -0,0 +1,18 @@
+var=abcdef
+
+echo ${var:7}
+echo ${var:6}
+echo ${var:5}
+echo ${var:1}
+echo ${var:0}
+echo ${var:-1}
+
+echo ${var:1:4}
+echo ${var:0:4}
+echo ${var::4}
+echo ${var:-1:4}
+
+echo ${var:1:7}
+echo ${var:0:7}
+echo ${var::7}
+echo ${var:-1:7}
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.right b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.right
new file mode 100644
index 00000000..acba5c6f
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.right
@@ -0,0 +1,10 @@
+abc123xcba123
+abx123dcba123
+abx123dxba123
+abcx23dcba123
+abcxxxdcbaxxx
+abx
+xba123
+abx23
+abc23dcba123
+abcdcba
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.tests b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.tests
new file mode 100755
index 00000000..29c526ce
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.tests
@@ -0,0 +1,24 @@
+var=abc123dcba123
+
+echo ${var/d/x}
+echo ${var/c/x}
+echo ${var//c/x}
+echo ${var/[123]/x}
+echo ${var//[123]/x}
+echo ${var/c*/x}
+echo ${var/*c/x}
+
+# must match longest match: result is "abx23"
+echo ${var/c*1/x}
+
+# empty replacement - 2nd slash can be omitted
+echo ${var/[123]}
+echo ${var//[123]}
+
+### ash doesn't support
+### # match only at the beginning:
+### echo ${var/#a/x}
+### echo ${var/#b/x} # should not match
+### echo ${var//#b/x} # should not match
+### # match only at the end:
+### echo ${var/%3/x}
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.right b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.right
new file mode 100644
index 00000000..f7f14791
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.right
@@ -0,0 +1,20 @@
+a041#c
+a041#c
+a\041#c
+a\041#c
+a\041#c
+a\041#c
+a\041#c
+a\041#c
+a\041#c
+a\c
+a\c
+a\c
+a\\c
+a\\c
+a\\c
+a\tc
+a\tc
+a\tc
+atc
+a\tc
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.tests b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.tests
new file mode 100755
index 00000000..b9050279
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.tests
@@ -0,0 +1,41 @@
+a='abc'
+r=${a//b/\041#}
+echo $r
+echo ${a//b/\041#}
+echo "${a//b/\041#}"
+
+a='abc'
+r=${a//b/\\041#}
+echo $r
+echo ${a//b/\\041#}
+echo "${a//b/\\041#}"
+
+a='abc'
+b='\041#'
+r=${a//b/$b}
+echo $r
+echo ${a//b/$b}
+echo "${a//b/$b}"
+
+a='abc'
+b='\'
+r="${a//b/$b}"
+echo $r
+echo ${a//b/$b}
+echo "${a//b/$b}"
+
+a='abc'
+b='\\'
+r="${a//b/$b}"
+echo $r
+echo ${a//b/$b}
+echo "${a//b/$b}"
+
+a='abc'
+b='\t'
+r="${a//b/$b}"
+echo $r
+echo ${a//b/$b}
+echo "${a//b/$b}"
+echo ${a//b/\t}
+echo "${a//b/\t}"
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_leak.right b/release/src/router/busybox/shell/ash_test/ash-vars/var_leak.right
new file mode 100644
index 00000000..45c5458d
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_leak.right
@@ -0,0 +1,2 @@
+should be empty: ''
+should be empty: ''
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_leak.tests b/release/src/router/busybox/shell/ash_test/ash-vars/var_leak.tests
new file mode 100755
index 00000000..1b1123fb
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_leak.tests
@@ -0,0 +1,9 @@
+# This currently fails with CONFIG_FEATURE_SH_NOFORK=y
+VAR=''
+VAR=qwe true
+echo "should be empty: '$VAR'"
+
+# This fails (always)
+VAR=''
+VAR=qwe exec 2>&1
+echo "should be empty: '$VAR'"
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.right b/release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.right
new file mode 100644
index 00000000..55f35798
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.right
@@ -0,0 +1,17 @@
+abcdcd
+abcdcd
+abcdcd
+cdcd
+babcdcd
+babcdcd
+ababcdcd
+
+ababcd
+ababcd
+ababcd
+abab
+ababcdc
+ababcdc
+ababcdcd
+
+end
diff --git a/release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.tests b/release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.tests
new file mode 100755
index 00000000..4139e2cc
--- /dev/null
+++ b/release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.tests
@@ -0,0 +1,21 @@
+var=ababcdcd
+
+echo ${var#ab}
+echo ${var##ab}
+echo ${var#a*b}
+echo ${var##a*b}
+echo ${var#?}
+echo ${var##?}
+echo ${var#*}
+echo ${var##*}
+
+echo ${var%cd}
+echo ${var%%cd}
+echo ${var%c*d}
+echo ${var%%c*d}
+echo ${var%?}
+echo ${var%%?}
+echo ${var%*}
+echo ${var%%*}
+
+echo end