diff options
Diffstat (limited to 'shell/ash_test/ash-vars')
-rw-r--r-- | shell/ash_test/ash-vars/var1.right | 6 | ||||
-rwxr-xr-x | shell/ash_test/ash-vars/var1.tests | 14 | ||||
-rw-r--r-- | shell/ash_test/ash-vars/var2.right | 1 | ||||
-rwxr-xr-x | shell/ash_test/ash-vars/var2.tests | 1 | ||||
-rw-r--r-- | shell/ash_test/ash-vars/var_bash1.right | 14 | ||||
-rwxr-xr-x | shell/ash_test/ash-vars/var_bash1.tests | 18 | ||||
-rw-r--r-- | shell/ash_test/ash-vars/var_bash2.right | 10 | ||||
-rwxr-xr-x | shell/ash_test/ash-vars/var_bash2.tests | 24 | ||||
-rw-r--r-- | shell/ash_test/ash-vars/var_bash3.right | 20 | ||||
-rwxr-xr-x | shell/ash_test/ash-vars/var_bash3.tests | 41 | ||||
-rw-r--r-- | shell/ash_test/ash-vars/var_leak.right | 2 | ||||
-rwxr-xr-x | shell/ash_test/ash-vars/var_leak.tests | 9 | ||||
-rw-r--r-- | shell/ash_test/ash-vars/var_posix1.right | 17 | ||||
-rwxr-xr-x | shell/ash_test/ash-vars/var_posix1.tests | 21 |
14 files changed, 198 insertions, 0 deletions
diff --git a/shell/ash_test/ash-vars/var1.right b/shell/ash_test/ash-vars/var1.right new file mode 100644 index 0000000..2a01291 --- /dev/null +++ b/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/shell/ash_test/ash-vars/var1.tests b/shell/ash_test/ash-vars/var1.tests new file mode 100755 index 0000000..802e489 --- /dev/null +++ b/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/shell/ash_test/ash-vars/var2.right b/shell/ash_test/ash-vars/var2.right new file mode 100644 index 0000000..8fed138 --- /dev/null +++ b/shell/ash_test/ash-vars/var2.right @@ -0,0 +1 @@ +bus/usb/1/2 diff --git a/shell/ash_test/ash-vars/var2.tests b/shell/ash_test/ash-vars/var2.tests new file mode 100755 index 0000000..07feaeb --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_bash1.right b/shell/ash_test/ash-vars/var_bash1.right new file mode 100644 index 0000000..c0a0769 --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_bash1.tests b/shell/ash_test/ash-vars/var_bash1.tests new file mode 100755 index 0000000..24d3c9a --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_bash2.right b/shell/ash_test/ash-vars/var_bash2.right new file mode 100644 index 0000000..acba5c6 --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_bash2.tests b/shell/ash_test/ash-vars/var_bash2.tests new file mode 100755 index 0000000..29c526c --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_bash3.right b/shell/ash_test/ash-vars/var_bash3.right new file mode 100644 index 0000000..f7f1479 --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_bash3.tests b/shell/ash_test/ash-vars/var_bash3.tests new file mode 100755 index 0000000..b905027 --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_leak.right b/shell/ash_test/ash-vars/var_leak.right new file mode 100644 index 0000000..45c5458 --- /dev/null +++ b/shell/ash_test/ash-vars/var_leak.right @@ -0,0 +1,2 @@ +should be empty: '' +should be empty: '' diff --git a/shell/ash_test/ash-vars/var_leak.tests b/shell/ash_test/ash-vars/var_leak.tests new file mode 100755 index 0000000..1b1123f --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_posix1.right b/shell/ash_test/ash-vars/var_posix1.right new file mode 100644 index 0000000..55f3579 --- /dev/null +++ b/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/shell/ash_test/ash-vars/var_posix1.tests b/shell/ash_test/ash-vars/var_posix1.tests new file mode 100755 index 0000000..4139e2c --- /dev/null +++ b/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 |