diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-03 00:06:55 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-10-03 00:06:55 +0200 |
commit | a62bc80571eae6d286aed9a92d47dc42318a8146 (patch) | |
tree | 45ce124c7a8426ebf95c07a34c3c521595e400de /shell/ash_test/ash-vars | |
parent | ce332a23a3ff45a5aeb3e737da15b469badd5d12 (diff) | |
download | busybox-w32-a62bc80571eae6d286aed9a92d47dc42318a8146.tar.gz busybox-w32-a62bc80571eae6d286aed9a92d47dc42318a8146.tar.bz2 busybox-w32-a62bc80571eae6d286aed9a92d47dc42318a8146.zip |
ash testsuite: add most of hust tests which pass for ash
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test/ash-vars')
22 files changed, 170 insertions, 0 deletions
diff --git a/shell/ash_test/ash-vars/empty.right b/shell/ash_test/ash-vars/empty.right new file mode 100644 index 000000000..2cb3c70f2 --- /dev/null +++ b/shell/ash_test/ash-vars/empty.right | |||
@@ -0,0 +1,3 @@ | |||
1 | a b c d e f 1 2 3 4 5 6 7 8 9 0 A B C D E F | ||
2 | a b c d e f 1 2 3 4 5 6 7 8 9 0 A B C D E F | ||
3 | a b c d e f 1 2 3 4 5 6 7 8 9 0 A B C D E F | ||
diff --git a/shell/ash_test/ash-vars/empty.tests b/shell/ash_test/ash-vars/empty.tests new file mode 100755 index 000000000..a9c247e31 --- /dev/null +++ b/shell/ash_test/ash-vars/empty.tests | |||
@@ -0,0 +1,5 @@ | |||
1 | e= | ||
2 | |||
3 | echo a b c d e f 1 2 3 4 5 6 7 8 9 0 A B C D E F | ||
4 | echo a $e b $e c $e d $e e $e f $e 1 $e 2 $e 3 $e 4 $e 5 $e 6 $e 7 $e 8 $e 9 $e 0 $e A $e B $e C $e D $e E $e F | ||
5 | echo $e a $e b $e c $e d $e e $e f $e 1 $e 2 $e 3 $e 4 $e 5 $e 6 $e 7 $e 8 $e 9 $e 0 $e A $e B $e C $e D $e E $e F | ||
diff --git a/shell/ash_test/ash-vars/glob_and_vars.right b/shell/ash_test/ash-vars/glob_and_vars.right new file mode 100644 index 000000000..3ac7ec5ff --- /dev/null +++ b/shell/ash_test/ash-vars/glob_and_vars.right | |||
@@ -0,0 +1 @@ | |||
./glob_and_vars.right ./glob_and_vars.tests | |||
diff --git a/shell/ash_test/ash-vars/glob_and_vars.tests b/shell/ash_test/ash-vars/glob_and_vars.tests new file mode 100755 index 000000000..482cf9d8a --- /dev/null +++ b/shell/ash_test/ash-vars/glob_and_vars.tests | |||
@@ -0,0 +1,2 @@ | |||
1 | v=. | ||
2 | echo $v/glob_and_vars.[tr]* | ||
diff --git a/shell/ash_test/ash-vars/param_expand_len.right b/shell/ash_test/ash-vars/param_expand_len.right new file mode 100644 index 000000000..96e8cb59b --- /dev/null +++ b/shell/ash_test/ash-vars/param_expand_len.right | |||
@@ -0,0 +1,9 @@ | |||
1 | 0 | ||
2 | 0 | ||
3 | 1 | ||
4 | Make sure len parsing doesnt break arg count | ||
5 | 0 0 | ||
6 | 4 4 | ||
7 | Testing len op | ||
8 | 4 3 2 1 0 0 | ||
9 | 0 3 0 | ||
diff --git a/shell/ash_test/ash-vars/param_expand_len.tests b/shell/ash_test/ash-vars/param_expand_len.tests new file mode 100755 index 000000000..fe20a45e9 --- /dev/null +++ b/shell/ash_test/ash-vars/param_expand_len.tests | |||
@@ -0,0 +1,17 @@ | |||
1 | "$THIS_SH" -c 'echo $#' | ||
2 | "$THIS_SH" -c 'echo $#' arg0 | ||
3 | "$THIS_SH" -c 'echo $#' arg0 arg1 | ||
4 | |||
5 | echo Make sure len parsing doesnt break arg count | ||
6 | set -- | ||
7 | echo $# ${#} | ||
8 | set -- aaaa bbb cc d | ||
9 | echo $# ${#} | ||
10 | |||
11 | echo Testing len op | ||
12 | echo ${#1} ${#2} ${#3} ${#4} ${#5} ${#6} | ||
13 | |||
14 | unset e | ||
15 | f=abc | ||
16 | g= | ||
17 | echo ${#e} ${#f} ${#g} | ||
diff --git a/shell/ash_test/ash-vars/param_glob.right b/shell/ash_test/ash-vars/param_glob.right new file mode 100644 index 000000000..bdee8fe0f --- /dev/null +++ b/shell/ash_test/ash-vars/param_glob.right | |||
@@ -0,0 +1,4 @@ | |||
1 | param_glob.tests | ||
2 | param_glob.tests | ||
3 | param_glob.t* | ||
4 | param_glob.t* | ||
diff --git a/shell/ash_test/ash-vars/param_glob.tests b/shell/ash_test/ash-vars/param_glob.tests new file mode 100755 index 000000000..4d74fee02 --- /dev/null +++ b/shell/ash_test/ash-vars/param_glob.tests | |||
@@ -0,0 +1,9 @@ | |||
1 | if test $# = 0; then | ||
2 | exec "$THIS_SH" "$0" 'param_glob.t*' | ||
3 | echo NOT SHOWN | ||
4 | exit | ||
5 | fi | ||
6 | echo $* | ||
7 | echo $@ | ||
8 | echo "$*" | ||
9 | echo "$@" | ||
diff --git a/shell/ash_test/ash-vars/param_subshell.right b/shell/ash_test/ash-vars/param_subshell.right new file mode 100644 index 000000000..f3c3767de --- /dev/null +++ b/shell/ash_test/ash-vars/param_subshell.right | |||
@@ -0,0 +1,7 @@ | |||
1 | 1=1 | ||
2 | 2=2 | ||
3 | 3=3 | ||
4 | 4=4 | ||
5 | 5=5 | ||
6 | 6=6 | ||
7 | 7=7 | ||
diff --git a/shell/ash_test/ash-vars/param_subshell.tests b/shell/ash_test/ash-vars/param_subshell.tests new file mode 100755 index 000000000..27fdc5b9b --- /dev/null +++ b/shell/ash_test/ash-vars/param_subshell.tests | |||
@@ -0,0 +1,15 @@ | |||
1 | if test $# = 0; then | ||
2 | "$THIS_SH" "$0" 1 2 3 4 5 6 7 8 9 | ||
3 | exit | ||
4 | fi | ||
5 | echo 1=$1 | ||
6 | { echo 2=$2; } | ||
7 | { echo 3=$3; } & | ||
8 | # cant use usleep as it isnt standard in $PATH -- | ||
9 | # we fail when testing busybox compiled solely as "hush" | ||
10 | wait | ||
11 | ( echo 4=$4 ) | ||
12 | ( echo 5=$5 ) & | ||
13 | wait | ||
14 | true | echo 6=$6 | cat | ||
15 | true | { echo 7=$7; } | cat | ||
diff --git a/shell/ash_test/ash-vars/star.right b/shell/ash_test/ash-vars/star.right new file mode 100644 index 000000000..0ecc55bc2 --- /dev/null +++ b/shell/ash_test/ash-vars/star.right | |||
@@ -0,0 +1,6 @@ | |||
1 | .1. | ||
2 | .abc. | ||
3 | .d. | ||
4 | .e. | ||
5 | .f. | ||
6 | .1 abc d e f. | ||
diff --git a/shell/ash_test/ash-vars/star.tests b/shell/ash_test/ash-vars/star.tests new file mode 100755 index 000000000..5554c4090 --- /dev/null +++ b/shell/ash_test/ash-vars/star.tests | |||
@@ -0,0 +1,8 @@ | |||
1 | if test $# = 0; then | ||
2 | exec "$THIS_SH" star.tests 1 abc 'd e f' | ||
3 | fi | ||
4 | # 'd e f' should be split into 3 separate args: | ||
5 | for a in $*; do echo ".$a."; done | ||
6 | |||
7 | # must produce .1 abc d e f. | ||
8 | for a in "$*"; do echo ".$a."; done | ||
diff --git a/shell/ash_test/ash-vars/var_expand_in_assign.right b/shell/ash_test/ash-vars/var_expand_in_assign.right new file mode 100644 index 000000000..352210d7e --- /dev/null +++ b/shell/ash_test/ash-vars/var_expand_in_assign.right | |||
@@ -0,0 +1,5 @@ | |||
1 | . . | ||
2 | .abc d e. | ||
3 | .abc d e. | ||
4 | .abc d e. | ||
5 | .abc d e. | ||
diff --git a/shell/ash_test/ash-vars/var_expand_in_assign.tests b/shell/ash_test/ash-vars/var_expand_in_assign.tests new file mode 100755 index 000000000..18cdc74c0 --- /dev/null +++ b/shell/ash_test/ash-vars/var_expand_in_assign.tests | |||
@@ -0,0 +1,15 @@ | |||
1 | if test $# = 0; then | ||
2 | exec "$THIS_SH" "$0" abc "d e" | ||
3 | fi | ||
4 | |||
5 | space=' ' | ||
6 | echo .$space. | ||
7 | |||
8 | a=$* | ||
9 | echo .$a. | ||
10 | a=$@ | ||
11 | echo .$a. | ||
12 | a="$*" | ||
13 | echo .$a. | ||
14 | a="$@" | ||
15 | echo .$a. | ||
diff --git a/shell/ash_test/ash-vars/var_expand_in_redir.right b/shell/ash_test/ash-vars/var_expand_in_redir.right new file mode 100644 index 000000000..423299c97 --- /dev/null +++ b/shell/ash_test/ash-vars/var_expand_in_redir.right | |||
@@ -0,0 +1,3 @@ | |||
1 | TEST1 | ||
2 | TEST2 | ||
3 | TEST3 | ||
diff --git a/shell/ash_test/ash-vars/var_expand_in_redir.tests b/shell/ash_test/ash-vars/var_expand_in_redir.tests new file mode 100755 index 000000000..bda6bdd7f --- /dev/null +++ b/shell/ash_test/ash-vars/var_expand_in_redir.tests | |||
@@ -0,0 +1,13 @@ | |||
1 | if test $# = 0; then | ||
2 | exec "$THIS_SH" "$0" abc "d e" | ||
3 | fi | ||
4 | |||
5 | echo TEST1 >"$1.out" | ||
6 | echo TEST2 >"$2.out" | ||
7 | # bash says: "$@.out": ambiguous redirect | ||
8 | # ash handles it as if it is '$*' - we do the same | ||
9 | echo TEST3 >"$@.out" | ||
10 | |||
11 | cat abc.out "d e.out" "abc d e.out" | ||
12 | |||
13 | rm abc.out "d e.out" "abc d e.out" | ||
diff --git a/shell/ash_test/ash-vars/var_expand_on_ifs.right b/shell/ash_test/ash-vars/var_expand_on_ifs.right new file mode 100644 index 000000000..2ed2069f7 --- /dev/null +++ b/shell/ash_test/ash-vars/var_expand_on_ifs.right | |||
@@ -0,0 +1,9 @@ | |||
1 | 1 a b c | ||
2 | 2 a + b c | ||
3 | 3 a b c | ||
4 | 4 a b c | ||
5 | 5 a b c | ||
6 | 6 a b + c | ||
7 | 7 a b c | ||
8 | 8 a b c | ||
9 | 9 a b c | ||
diff --git a/shell/ash_test/ash-vars/var_expand_on_ifs.tests b/shell/ash_test/ash-vars/var_expand_on_ifs.tests new file mode 100755 index 000000000..a12ff8ec8 --- /dev/null +++ b/shell/ash_test/ash-vars/var_expand_on_ifs.tests | |||
@@ -0,0 +1,11 @@ | |||
1 | b=' b ' | ||
2 | e='' | ||
3 | echo 1 a $b c | ||
4 | echo 2 a +$b c | ||
5 | echo 3 a $e$b c | ||
6 | echo 4 a "$e"$b c | ||
7 | echo 5 a ""$b c | ||
8 | echo 6 a $b+ c | ||
9 | echo 7 a $b$e c | ||
10 | echo 8 a $b"$e" c | ||
11 | echo 9 a $b"" c | ||
diff --git a/shell/ash_test/ash-vars/var_in_pipes.right b/shell/ash_test/ash-vars/var_in_pipes.right new file mode 100644 index 000000000..faf65bed4 --- /dev/null +++ b/shell/ash_test/ash-vars/var_in_pipes.right | |||
@@ -0,0 +1,6 @@ | |||
1 | b=1 | ||
2 | b=2 | ||
3 | b=3 | ||
4 | b=4 | ||
5 | b=5 | ||
6 | b=6 | ||
diff --git a/shell/ash_test/ash-vars/var_in_pipes.tests b/shell/ash_test/ash-vars/var_in_pipes.tests new file mode 100755 index 000000000..3f8cd2729 --- /dev/null +++ b/shell/ash_test/ash-vars/var_in_pipes.tests | |||
@@ -0,0 +1,7 @@ | |||
1 | b=1 env | grep ^b= | ||
2 | true | b=2 env | grep ^b= | ||
3 | a=1 true | b=3 env | grep ^b= | ||
4 | |||
5 | (b=4 env) | grep ^b= | ||
6 | (true | b=5 env) | grep ^b= | ||
7 | (a=1 true | b=6 env) | grep ^b= | ||
diff --git a/shell/ash_test/ash-vars/var_leaks.right b/shell/ash_test/ash-vars/var_leaks.right new file mode 100644 index 000000000..d86bac9de --- /dev/null +++ b/shell/ash_test/ash-vars/var_leaks.right | |||
@@ -0,0 +1 @@ | |||
OK | |||
diff --git a/shell/ash_test/ash-vars/var_leaks.tests b/shell/ash_test/ash-vars/var_leaks.tests new file mode 100755 index 000000000..27c8c6504 --- /dev/null +++ b/shell/ash_test/ash-vars/var_leaks.tests | |||
@@ -0,0 +1,14 @@ | |||
1 | # external program | ||
2 | a=b /bin/true | ||
3 | env | grep ^a= | ||
4 | |||
5 | # builtin | ||
6 | a=b true | ||
7 | env | grep ^a= | ||
8 | |||
9 | # exec with redirection only | ||
10 | # in bash, this leaks! | ||
11 | a=b exec 1>&1 | ||
12 | env | grep ^a= | ||
13 | |||
14 | echo OK | ||