diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-12 23:29:57 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-12 23:29:57 +0100 |
commit | 03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c (patch) | |
tree | b134cbc7f0afbf76c54847624310e6a1d2774f83 /shell/hush_test | |
parent | 045f4ad92c07434625e168bc8c37aa0e89f6e58e (diff) | |
download | busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.tar.gz busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.tar.bz2 busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.zip |
hush: use ash's read builtin
function old new delta
shell_builtin_read - 1000 +1000
set_local_var_from_halves - 24 +24
setvar2 - 7 +7
...
popstring 140 134 -6
ash_main 1375 1368 -7
setvar 184 174 -10
arith_set_local_var 36 - -36
builtin_read 1096 185 -911
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 5/23 up/down: 1038/-1007) Total: 31 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush_test')
-rw-r--r-- | shell/hush_test/hush-read/read_REPLY.right | 5 | ||||
-rwxr-xr-x | shell/hush_test/hush-read/read_REPLY.tests | 5 | ||||
-rw-r--r-- | shell/hush_test/hush-read/read_ifs.right | 10 | ||||
-rwxr-xr-x | shell/hush_test/hush-read/read_ifs.tests | 10 | ||||
-rw-r--r-- | shell/hush_test/hush-read/read_n.right | 3 | ||||
-rwxr-xr-x | shell/hush_test/hush-read/read_n.tests | 3 | ||||
-rw-r--r-- | shell/hush_test/hush-read/read_r.right | 2 | ||||
-rwxr-xr-x | shell/hush_test/hush-read/read_r.tests | 2 | ||||
-rw-r--r-- | shell/hush_test/hush-read/read_t.right | 4 | ||||
-rwxr-xr-x | shell/hush_test/hush-read/read_t.tests | 10 |
10 files changed, 54 insertions, 0 deletions
diff --git a/shell/hush_test/hush-read/read_REPLY.right b/shell/hush_test/hush-read/read_REPLY.right new file mode 100644 index 000000000..59f5d5487 --- /dev/null +++ b/shell/hush_test/hush-read/read_REPLY.right | |||
@@ -0,0 +1,5 @@ | |||
1 | test 1: | abc1 def | | ||
2 | test 2: | \abc2 d\ef | | ||
3 | test 3: |abc3 def| | ||
4 | test 4: |\abc4 d\ef| | ||
5 | Done | ||
diff --git a/shell/hush_test/hush-read/read_REPLY.tests b/shell/hush_test/hush-read/read_REPLY.tests new file mode 100755 index 000000000..ba20cae8d --- /dev/null +++ b/shell/hush_test/hush-read/read_REPLY.tests | |||
@@ -0,0 +1,5 @@ | |||
1 | echo ' \abc1 d\ef ' | ( read ; echo "test 1: |$REPLY|" ) | ||
2 | echo ' \abc2 d\ef ' | ( read -r ; echo "test 2: |$REPLY|" ) | ||
3 | echo ' \abc3 d\ef ' | ( read REPLY; echo "test 3: |$REPLY|" ) | ||
4 | echo ' \abc4 d\ef ' | ( read -r REPLY; echo "test 4: |$REPLY|" ) | ||
5 | echo Done | ||
diff --git a/shell/hush_test/hush-read/read_ifs.right b/shell/hush_test/hush-read/read_ifs.right new file mode 100644 index 000000000..b52334456 --- /dev/null +++ b/shell/hush_test/hush-read/read_ifs.right | |||
@@ -0,0 +1,10 @@ | |||
1 | test 1: .a. .b. .c. | ||
2 | test 2: .a. .b. .c. | ||
3 | test 3: .a. .. .b,c. | ||
4 | test 4: .a. .. .b,c. | ||
5 | test 5: .a. .. .c. | ||
6 | test 6: .a. .. .c. .d. | ||
7 | test 7: .a. .. .b,c,d , ,. | ||
8 | test 8: .. .a. .b. .c. | ||
9 | test 9: .a. .b. .c. .. | ||
10 | test A: .. .a. .. .b. .c. | ||
diff --git a/shell/hush_test/hush-read/read_ifs.tests b/shell/hush_test/hush-read/read_ifs.tests new file mode 100755 index 000000000..6e8311247 --- /dev/null +++ b/shell/hush_test/hush-read/read_ifs.tests | |||
@@ -0,0 +1,10 @@ | |||
1 | printf 'a\t\tb\tc\n' | ( IFS=$(printf "\t") read a b c; echo "test 1: .$a. .$b. .$c." ) | ||
2 | printf 'a\t\tb\tc\n' | ( IFS=$(printf " \t") read a b c; echo "test 2: .$a. .$b. .$c." ) | ||
3 | printf 'a,,b,c\n' | ( IFS="," read a b c; echo "test 3: .$a. .$b. .$c." ) | ||
4 | printf 'a,,b,c\n' | ( IFS=" ," read a b c; echo "test 4: .$a. .$b. .$c." ) | ||
5 | printf 'a ,, c\n' | ( IFS=" ," read a b c; echo "test 5: .$a. .$b. .$c." ) | ||
6 | printf 'a ,, c d\n' | ( IFS=" ," read a b c d; echo "test 6: .$a. .$b. .$c. .$d." ) | ||
7 | printf ' a,,b,c,d , ,\n' | ( IFS=" ," read a b c; echo "test 7: .$a. .$b. .$c." ) | ||
8 | printf '\t,\ta\t,\tb\tc' | ( IFS=$(printf " \t,") read a b c d; echo "test 8: .$a. .$b. .$c. .$d." ) | ||
9 | printf '\t\ta\t,\tb\tc' | ( IFS=$(printf " \t,") read a b c d; echo "test 9: .$a. .$b. .$c. .$d." ) | ||
10 | printf '\t,\ta\t,,\tb\tc' | ( IFS=$(printf " \t,") read a b c d e; echo "test A: .$a. .$b. .$c. .$d. .$e." ) | ||
diff --git a/shell/hush_test/hush-read/read_n.right b/shell/hush_test/hush-read/read_n.right new file mode 100644 index 000000000..1f81af0bc --- /dev/null +++ b/shell/hush_test/hush-read/read_n.right | |||
@@ -0,0 +1,3 @@ | |||
1 | test | ||
2 | tes | ||
3 | tes | ||
diff --git a/shell/hush_test/hush-read/read_n.tests b/shell/hush_test/hush-read/read_n.tests new file mode 100755 index 000000000..12423ba6e --- /dev/null +++ b/shell/hush_test/hush-read/read_n.tests | |||
@@ -0,0 +1,3 @@ | |||
1 | echo 'test' | (read reply; echo "$reply") | ||
2 | echo 'test' | (read -n 3 reply; echo "$reply") | ||
3 | echo 'test' | (read -n3 reply; echo "$reply") | ||
diff --git a/shell/hush_test/hush-read/read_r.right b/shell/hush_test/hush-read/read_r.right new file mode 100644 index 000000000..3536bf757 --- /dev/null +++ b/shell/hush_test/hush-read/read_r.right | |||
@@ -0,0 +1,2 @@ | |||
1 | testbest | ||
2 | test\ | ||
diff --git a/shell/hush_test/hush-read/read_r.tests b/shell/hush_test/hush-read/read_r.tests new file mode 100755 index 000000000..2c4cc6106 --- /dev/null +++ b/shell/hush_test/hush-read/read_r.tests | |||
@@ -0,0 +1,2 @@ | |||
1 | echo -e 'test\\\nbest' | (read reply; echo "$reply") | ||
2 | echo -e 'test\\\nbest' | (read -r reply; echo "$reply") | ||
diff --git a/shell/hush_test/hush-read/read_t.right b/shell/hush_test/hush-read/read_t.right new file mode 100644 index 000000000..04126cbe6 --- /dev/null +++ b/shell/hush_test/hush-read/read_t.right | |||
@@ -0,0 +1,4 @@ | |||
1 | >< | ||
2 | >< | ||
3 | >test< | ||
4 | >test< | ||
diff --git a/shell/hush_test/hush-read/read_t.tests b/shell/hush_test/hush-read/read_t.tests new file mode 100755 index 000000000..d65f1aeaa --- /dev/null +++ b/shell/hush_test/hush-read/read_t.tests | |||
@@ -0,0 +1,10 @@ | |||
1 | # bash 3.2 outputs: | ||
2 | |||
3 | # >< | ||
4 | { echo -n 'te'; sleep 2; echo 'st'; } | (read -t 1 reply; echo ">$reply<") | ||
5 | # >< | ||
6 | { sleep 2; echo 'test'; } | (read -t 1 reply; echo ">$reply<") | ||
7 | # >test< | ||
8 | { echo -n 'te'; sleep 1; echo 'st'; } | (read -t 2 reply; echo ">$reply<") | ||
9 | # >test< | ||
10 | { sleep 1; echo 'test'; } | (read -t 2 reply; echo ">$reply<") | ||