aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2015-11-03 09:37:40 +0000
committerDenys Vlasenko <vda.linux@googlemail.com>2015-11-04 14:48:16 +0100
commit85405c80a28509f2f36c0d4fda8693aac7652d9b (patch)
tree3383ab969eb16569e6e4bf77ef2f9f960f95d282 /shell
parent2cf459141373d7ade0ba8cf5de83d4ef12b7dc97 (diff)
downloadbusybox-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.right6
-rwxr-xr-xshell/ash_test/ash-misc/func1.tests16
-rw-r--r--shell/ash_test/ash-misc/func2.right5
-rwxr-xr-xshell/ash_test/ash-misc/func2.tests9
-rw-r--r--shell/ash_test/ash-misc/func3.right4
-rwxr-xr-xshell/ash_test/ash-misc/func3.tests8
-rw-r--r--shell/ash_test/ash-misc/func4.right2
-rwxr-xr-xshell/ash_test/ash-misc/func4.tests7
-rw-r--r--shell/ash_test/ash-misc/func5.right6
-rwxr-xr-xshell/ash_test/ash-misc/func5.tests13
-rw-r--r--shell/ash_test/ash-misc/func_args1.right5
-rwxr-xr-xshell/ash_test/ash-misc/func_args1.tests9
-rw-r--r--shell/ash_test/ash-misc/func_local1.right3
-rwxr-xr-xshell/ash_test/ash-misc/func_local1.tests5
-rw-r--r--shell/ash_test/ash-misc/func_local2.right14
-rwxr-xr-xshell/ash_test/ash-misc/func_local2.tests7
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 @@
1Hello
2Zero: 0
3One: 1 Param1: World
4Zero: 0 Param1: Restored
5Multi line function
6One: 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 @@
1f() { echo Hello; }
2g () { echo One: $# Param1: $1; }
3h ( )
4{
5 echo -n 'Multi ' && echo -n 'line '
6 echo function
7 false
8}
9
10f
11echo Zero: $?
12set -- Restored
13{ g World; }
14echo Zero: $? Param1: $1
15( h )
16echo 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 @@
1First 0
2Second 0
3First 1
4Second 1
5Done
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 @@
1i=0
2while test $i != 2; do
3 f() { echo First $i; }
4 f
5 f() { echo Second $i; }
6 f
7 : $((i++))
8done
9echo 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 @@
1One:1
2Zero:0
3One:1
4Five: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 @@
1f() { false; return; echo BAD; };
2{ f; echo One:$?; }; echo Zero:$?
3
4f() { false; return; };
5f; echo One:$?
6
7f() { return 5; };
8f; 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 @@
124
2Done
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 @@
1func() {
2 eval "echo \"\${val_${1}}\""
3}
4
5val_x=24
6(func x)
7echo 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 @@
11
22
33
41
52
63
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 @@
1f() { echo $1; }
2f 1
3
4f() ( echo $1; )
5f 2
6
7f() ( echo $1 )
8f 3
9
10f() for i in 1 2 3; do
11 echo $i
12done
13f
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 @@
1params: a b c
2'f 1 2 3' called
3params: a b c
4'f 1 2 3' called
5params: 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
2f() { echo "'f $1 $2 $3' called"; }
3
4set -- a b c
5echo "params: $1 $2 $3"
6f 1 2 3
7echo "params: $1 $2 $3"
8true | f 1 2 3
9echo "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 @@
1z=a
2z=z
3Done
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 @@
1export z=z
2f() { local z=a; env | grep ^z; }
3f
4env | grep ^z
5echo 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 @@
11
22
31
42
51
61
72
82
93
102
112
123
131
14Done
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 @@
1x=1
2f() { echo $x; local x=$((x+1)); echo $x; }
3g() { f; echo $x; f; local x=$((x+1)); f; echo $x; f; }
4f
5g
6echo $x
7echo Done