diff options
author | Ron Yorston <rmy@pobox.com> | 2015-11-03 09:37:40 +0000 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2015-11-04 14:48:16 +0100 |
commit | 85405c80a28509f2f36c0d4fda8693aac7652d9b (patch) | |
tree | 3383ab969eb16569e6e4bf77ef2f9f960f95d282 /shell | |
parent | 2cf459141373d7ade0ba8cf5de83d4ef12b7dc97 (diff) | |
download | busybox-w32-85405c80a28509f2f36c0d4fda8693aac7652d9b.tar.gz busybox-w32-85405c80a28509f2f36c0d4fda8693aac7652d9b.tar.bz2 busybox-w32-85405c80a28509f2f36c0d4fda8693aac7652d9b.zip |
ash: copy function tests from hush testsuite
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash_test/ash-misc/func1.right | 6 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/func1.tests | 16 | ||||
-rw-r--r-- | shell/ash_test/ash-misc/func2.right | 5 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/func2.tests | 9 | ||||
-rw-r--r-- | shell/ash_test/ash-misc/func3.right | 4 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/func3.tests | 8 | ||||
-rw-r--r-- | shell/ash_test/ash-misc/func4.right | 2 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/func4.tests | 7 | ||||
-rw-r--r-- | shell/ash_test/ash-misc/func5.right | 6 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/func5.tests | 13 | ||||
-rw-r--r-- | shell/ash_test/ash-misc/func_args1.right | 5 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/func_args1.tests | 9 | ||||
-rw-r--r-- | shell/ash_test/ash-misc/func_local1.right | 3 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/func_local1.tests | 5 | ||||
-rw-r--r-- | shell/ash_test/ash-misc/func_local2.right | 14 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/func_local2.tests | 7 |
16 files changed, 119 insertions, 0 deletions
diff --git a/shell/ash_test/ash-misc/func1.right b/shell/ash_test/ash-misc/func1.right new file mode 100644 index 000000000..e21665aaf --- /dev/null +++ b/shell/ash_test/ash-misc/func1.right | |||
@@ -0,0 +1,6 @@ | |||
1 | Hello | ||
2 | Zero: 0 | ||
3 | One: 1 Param1: World | ||
4 | Zero: 0 Param1: Restored | ||
5 | Multi line function | ||
6 | One: 1 | ||
diff --git a/shell/ash_test/ash-misc/func1.tests b/shell/ash_test/ash-misc/func1.tests new file mode 100755 index 000000000..ffb269fad --- /dev/null +++ b/shell/ash_test/ash-misc/func1.tests | |||
@@ -0,0 +1,16 @@ | |||
1 | f() { echo Hello; } | ||
2 | g () { echo One: $# Param1: $1; } | ||
3 | h ( ) | ||
4 | { | ||
5 | echo -n 'Multi ' && echo -n 'line ' | ||
6 | echo function | ||
7 | false | ||
8 | } | ||
9 | |||
10 | f | ||
11 | echo Zero: $? | ||
12 | set -- Restored | ||
13 | { g World; } | ||
14 | echo Zero: $? Param1: $1 | ||
15 | ( h ) | ||
16 | echo One: $? | ||
diff --git a/shell/ash_test/ash-misc/func2.right b/shell/ash_test/ash-misc/func2.right new file mode 100644 index 000000000..f2a041da7 --- /dev/null +++ b/shell/ash_test/ash-misc/func2.right | |||
@@ -0,0 +1,5 @@ | |||
1 | First 0 | ||
2 | Second 0 | ||
3 | First 1 | ||
4 | Second 1 | ||
5 | Done | ||
diff --git a/shell/ash_test/ash-misc/func2.tests b/shell/ash_test/ash-misc/func2.tests new file mode 100755 index 000000000..763203f15 --- /dev/null +++ b/shell/ash_test/ash-misc/func2.tests | |||
@@ -0,0 +1,9 @@ | |||
1 | i=0 | ||
2 | while test $i != 2; do | ||
3 | f() { echo First $i; } | ||
4 | f | ||
5 | f() { echo Second $i; } | ||
6 | f | ||
7 | : $((i++)) | ||
8 | done | ||
9 | echo Done | ||
diff --git a/shell/ash_test/ash-misc/func3.right b/shell/ash_test/ash-misc/func3.right new file mode 100644 index 000000000..b6d73459a --- /dev/null +++ b/shell/ash_test/ash-misc/func3.right | |||
@@ -0,0 +1,4 @@ | |||
1 | One:1 | ||
2 | Zero:0 | ||
3 | One:1 | ||
4 | Five:5 | ||
diff --git a/shell/ash_test/ash-misc/func3.tests b/shell/ash_test/ash-misc/func3.tests new file mode 100755 index 000000000..fa6f26a23 --- /dev/null +++ b/shell/ash_test/ash-misc/func3.tests | |||
@@ -0,0 +1,8 @@ | |||
1 | f() { false; return; echo BAD; }; | ||
2 | { f; echo One:$?; }; echo Zero:$? | ||
3 | |||
4 | f() { false; return; }; | ||
5 | f; echo One:$? | ||
6 | |||
7 | f() { return 5; }; | ||
8 | f; echo Five:$? | ||
diff --git a/shell/ash_test/ash-misc/func4.right b/shell/ash_test/ash-misc/func4.right new file mode 100644 index 000000000..0c87e316a --- /dev/null +++ b/shell/ash_test/ash-misc/func4.right | |||
@@ -0,0 +1,2 @@ | |||
1 | 24 | ||
2 | Done | ||
diff --git a/shell/ash_test/ash-misc/func4.tests b/shell/ash_test/ash-misc/func4.tests new file mode 100755 index 000000000..74c1b9a46 --- /dev/null +++ b/shell/ash_test/ash-misc/func4.tests | |||
@@ -0,0 +1,7 @@ | |||
1 | func() { | ||
2 | eval "echo \"\${val_${1}}\"" | ||
3 | } | ||
4 | |||
5 | val_x=24 | ||
6 | (func x) | ||
7 | echo Done | ||
diff --git a/shell/ash_test/ash-misc/func5.right b/shell/ash_test/ash-misc/func5.right new file mode 100644 index 000000000..2c9d316b3 --- /dev/null +++ b/shell/ash_test/ash-misc/func5.right | |||
@@ -0,0 +1,6 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | 3 | ||
4 | 1 | ||
5 | 2 | ||
6 | 3 | ||
diff --git a/shell/ash_test/ash-misc/func5.tests b/shell/ash_test/ash-misc/func5.tests new file mode 100755 index 000000000..e967208cc --- /dev/null +++ b/shell/ash_test/ash-misc/func5.tests | |||
@@ -0,0 +1,13 @@ | |||
1 | f() { echo $1; } | ||
2 | f 1 | ||
3 | |||
4 | f() ( echo $1; ) | ||
5 | f 2 | ||
6 | |||
7 | f() ( echo $1 ) | ||
8 | f 3 | ||
9 | |||
10 | f() for i in 1 2 3; do | ||
11 | echo $i | ||
12 | done | ||
13 | f | ||
diff --git a/shell/ash_test/ash-misc/func_args1.right b/shell/ash_test/ash-misc/func_args1.right new file mode 100644 index 000000000..2dfb9629b --- /dev/null +++ b/shell/ash_test/ash-misc/func_args1.right | |||
@@ -0,0 +1,5 @@ | |||
1 | params: a b c | ||
2 | 'f 1 2 3' called | ||
3 | params: a b c | ||
4 | 'f 1 2 3' called | ||
5 | params: a b c | ||
diff --git a/shell/ash_test/ash-misc/func_args1.tests b/shell/ash_test/ash-misc/func_args1.tests new file mode 100755 index 000000000..7970795a9 --- /dev/null +++ b/shell/ash_test/ash-misc/func_args1.tests | |||
@@ -0,0 +1,9 @@ | |||
1 | |||
2 | f() { echo "'f $1 $2 $3' called"; } | ||
3 | |||
4 | set -- a b c | ||
5 | echo "params: $1 $2 $3" | ||
6 | f 1 2 3 | ||
7 | echo "params: $1 $2 $3" | ||
8 | true | f 1 2 3 | ||
9 | echo "params: $1 $2 $3" | ||
diff --git a/shell/ash_test/ash-misc/func_local1.right b/shell/ash_test/ash-misc/func_local1.right new file mode 100644 index 000000000..312178366 --- /dev/null +++ b/shell/ash_test/ash-misc/func_local1.right | |||
@@ -0,0 +1,3 @@ | |||
1 | z=a | ||
2 | z=z | ||
3 | Done | ||
diff --git a/shell/ash_test/ash-misc/func_local1.tests b/shell/ash_test/ash-misc/func_local1.tests new file mode 100755 index 000000000..1d594e20c --- /dev/null +++ b/shell/ash_test/ash-misc/func_local1.tests | |||
@@ -0,0 +1,5 @@ | |||
1 | export z=z | ||
2 | f() { local z=a; env | grep ^z; } | ||
3 | f | ||
4 | env | grep ^z | ||
5 | echo Done | ||
diff --git a/shell/ash_test/ash-misc/func_local2.right b/shell/ash_test/ash-misc/func_local2.right new file mode 100644 index 000000000..fe9343ac8 --- /dev/null +++ b/shell/ash_test/ash-misc/func_local2.right | |||
@@ -0,0 +1,14 @@ | |||
1 | 1 | ||
2 | 2 | ||
3 | 1 | ||
4 | 2 | ||
5 | 1 | ||
6 | 1 | ||
7 | 2 | ||
8 | 2 | ||
9 | 3 | ||
10 | 2 | ||
11 | 2 | ||
12 | 3 | ||
13 | 1 | ||
14 | Done | ||
diff --git a/shell/ash_test/ash-misc/func_local2.tests b/shell/ash_test/ash-misc/func_local2.tests new file mode 100755 index 000000000..1a9ae559d --- /dev/null +++ b/shell/ash_test/ash-misc/func_local2.tests | |||
@@ -0,0 +1,7 @@ | |||
1 | x=1 | ||
2 | f() { echo $x; local x=$((x+1)); echo $x; } | ||
3 | g() { f; echo $x; f; local x=$((x+1)); f; echo $x; f; } | ||
4 | f | ||
5 | g | ||
6 | echo $x | ||
7 | echo Done | ||