diff options
author | Denys Vlasenko | 2010-01-12 23:29:57 +0100 |
---|---|---|
committer | Denys Vlasenko | 2010-01-12 23:29:57 +0100 |
commit | 03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c (patch) | |
tree | b134cbc7f0afbf76c54847624310e6a1d2774f83 /shell/hush_test/hush-read | |
parent | 045f4ad92c07434625e168bc8c37aa0e89f6e58e (diff) | |
download | busybox-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.zip busybox-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.tar.gz |
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/hush-read')
-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 0000000..59f5d54 --- /dev/null +++ b/shell/hush_test/hush-read/read_REPLY.right @@ -0,0 +1,5 @@ +test 1: | abc1 def | +test 2: | \abc2 d\ef | +test 3: |abc3 def| +test 4: |\abc4 d\ef| +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 0000000..ba20cae --- /dev/null +++ b/shell/hush_test/hush-read/read_REPLY.tests @@ -0,0 +1,5 @@ +echo ' \abc1 d\ef ' | ( read ; echo "test 1: |$REPLY|" ) +echo ' \abc2 d\ef ' | ( read -r ; echo "test 2: |$REPLY|" ) +echo ' \abc3 d\ef ' | ( read REPLY; echo "test 3: |$REPLY|" ) +echo ' \abc4 d\ef ' | ( read -r REPLY; echo "test 4: |$REPLY|" ) +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 0000000..b523344 --- /dev/null +++ b/shell/hush_test/hush-read/read_ifs.right @@ -0,0 +1,10 @@ +test 1: .a. .b. .c. +test 2: .a. .b. .c. +test 3: .a. .. .b,c. +test 4: .a. .. .b,c. +test 5: .a. .. .c. +test 6: .a. .. .c. .d. +test 7: .a. .. .b,c,d , ,. +test 8: .. .a. .b. .c. +test 9: .a. .b. .c. .. +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 0000000..6e83112 --- /dev/null +++ b/shell/hush_test/hush-read/read_ifs.tests @@ -0,0 +1,10 @@ +printf 'a\t\tb\tc\n' | ( IFS=$(printf "\t") read a b c; echo "test 1: .$a. .$b. .$c." ) +printf 'a\t\tb\tc\n' | ( IFS=$(printf " \t") read a b c; echo "test 2: .$a. .$b. .$c." ) +printf 'a,,b,c\n' | ( IFS="," read a b c; echo "test 3: .$a. .$b. .$c." ) +printf 'a,,b,c\n' | ( IFS=" ," read a b c; echo "test 4: .$a. .$b. .$c." ) +printf 'a ,, c\n' | ( IFS=" ," read a b c; echo "test 5: .$a. .$b. .$c." ) +printf 'a ,, c d\n' | ( IFS=" ," read a b c d; echo "test 6: .$a. .$b. .$c. .$d." ) +printf ' a,,b,c,d , ,\n' | ( IFS=" ," read a b c; echo "test 7: .$a. .$b. .$c." ) +printf '\t,\ta\t,\tb\tc' | ( IFS=$(printf " \t,") read a b c d; echo "test 8: .$a. .$b. .$c. .$d." ) +printf '\t\ta\t,\tb\tc' | ( IFS=$(printf " \t,") read a b c d; echo "test 9: .$a. .$b. .$c. .$d." ) +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 0000000..1f81af0 --- /dev/null +++ b/shell/hush_test/hush-read/read_n.right @@ -0,0 +1,3 @@ +test +tes +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 0000000..12423ba --- /dev/null +++ b/shell/hush_test/hush-read/read_n.tests @@ -0,0 +1,3 @@ +echo 'test' | (read reply; echo "$reply") +echo 'test' | (read -n 3 reply; echo "$reply") +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 0000000..3536bf7 --- /dev/null +++ b/shell/hush_test/hush-read/read_r.right @@ -0,0 +1,2 @@ +testbest +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 0000000..2c4cc61 --- /dev/null +++ b/shell/hush_test/hush-read/read_r.tests @@ -0,0 +1,2 @@ +echo -e 'test\\\nbest' | (read reply; echo "$reply") +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 0000000..04126cb --- /dev/null +++ b/shell/hush_test/hush-read/read_t.right @@ -0,0 +1,4 @@ +>< +>< +>test< +>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 0000000..d65f1ae --- /dev/null +++ b/shell/hush_test/hush-read/read_t.tests @@ -0,0 +1,10 @@ +# bash 3.2 outputs: + +# >< +{ echo -n 'te'; sleep 2; echo 'st'; } | (read -t 1 reply; echo ">$reply<") +# >< +{ sleep 2; echo 'test'; } | (read -t 1 reply; echo ">$reply<") +# >test< +{ echo -n 'te'; sleep 1; echo 'st'; } | (read -t 2 reply; echo ">$reply<") +# >test< +{ sleep 1; echo 'test'; } | (read -t 2 reply; echo ">$reply<") |