From 4aca87515a5083ae0e31ce3177189fd43b6d05ac Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 3 Jan 2015 13:58:15 +0100 Subject: patch to Vanilla Tomato 1.28 --- .../busybox/shell/ash_test/ash-vars/var1.right | 6 ++++ .../busybox/shell/ash_test/ash-vars/var1.tests | 14 ++++++++ .../busybox/shell/ash_test/ash-vars/var2.right | 1 + .../busybox/shell/ash_test/ash-vars/var2.tests | 1 + .../shell/ash_test/ash-vars/var_bash1.right | 14 ++++++++ .../shell/ash_test/ash-vars/var_bash1.tests | 18 ++++++++++ .../shell/ash_test/ash-vars/var_bash2.right | 10 ++++++ .../shell/ash_test/ash-vars/var_bash2.tests | 24 +++++++++++++ .../shell/ash_test/ash-vars/var_bash3.right | 20 +++++++++++ .../shell/ash_test/ash-vars/var_bash3.tests | 41 ++++++++++++++++++++++ .../busybox/shell/ash_test/ash-vars/var_leak.right | 2 ++ .../busybox/shell/ash_test/ash-vars/var_leak.tests | 9 +++++ .../shell/ash_test/ash-vars/var_posix1.right | 17 +++++++++ .../shell/ash_test/ash-vars/var_posix1.tests | 21 +++++++++++ 14 files changed, 198 insertions(+) create mode 100644 release/src/router/busybox/shell/ash_test/ash-vars/var1.right create mode 100755 release/src/router/busybox/shell/ash_test/ash-vars/var1.tests create mode 100644 release/src/router/busybox/shell/ash_test/ash-vars/var2.right create mode 100755 release/src/router/busybox/shell/ash_test/ash-vars/var2.tests create mode 100644 release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.right create mode 100755 release/src/router/busybox/shell/ash_test/ash-vars/var_bash1.tests create mode 100644 release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.right create mode 100755 release/src/router/busybox/shell/ash_test/ash-vars/var_bash2.tests create mode 100644 release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.right create mode 100755 release/src/router/busybox/shell/ash_test/ash-vars/var_bash3.tests create mode 100644 release/src/router/busybox/shell/ash_test/ash-vars/var_leak.right create mode 100755 release/src/router/busybox/shell/ash_test/ash-vars/var_leak.tests create mode 100644 release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.right create mode 100755 release/src/router/busybox/shell/ash_test/ash-vars/var_posix1.tests (limited to 'release/src/router/busybox/shell/ash_test/ash-vars') 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 -- cgit v1.2.3-54-g00ecf