xargs: restore correct behaviour of -n option
[oweals/busybox.git] / testsuite / xargs.tests
1 #!/bin/sh
2 # Copyright 2008 by Denys Vlasenko
3 # Licensed under GPLv2, see file LICENSE in this source tree.
4
5 . ./testing.sh
6
7 # testing "test name" "command" "expected result" "file input" "stdin"
8
9 testing "xargs -E _ stops on underscore" \
10         "xargs -E _" \
11         "a\n" \
12         "" "a\n_\nb\n"
13
14 testing "xargs -E ''" \
15         "xargs -E ''" \
16         "a _ b\n" \
17         "" "a\n_\nb\n"
18
19 testing "xargs -e without param" \
20         "xargs -e" \
21         "a _ b\n" \
22         "" "a\n_\nb\n"
23
24 testing "xargs does not stop on underscore ('new' GNU behavior)" \
25         "xargs" \
26         "a _ b\n" \
27         "" "a\n_\nb\n"
28
29 testing "xargs -s7 can take one-char input" \
30         "xargs -s7 echo" \
31         "a\n" \
32         "" "a\n"
33
34 testing "xargs -sNUM test 1" \
35         "xargs -ts25 echo 2>&1 >/dev/null" \
36         "echo 1 2 3 4 5 6 7 8 9 0\n""echo 1 2 3 4 5 6 7 8 9\n""echo 00\n" \
37         "" "1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 00\n"
38
39 testing "xargs -sNUM test 2" \
40         "xargs -ts25 echo 1 2>&1 >/dev/null" \
41         "echo 1 2 3 4 5 6 7 8 9 0\n""echo 1 2 3 4 5 6 7 8 9\n""echo 1 00\n" \
42         "" "2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 00\n"
43
44 # see that we don't get "argument line too long",
45 # but do see the last word, 99999, instead
46 optional FEATURE_XARGS_SUPPORT_QUOTES
47 testing "xargs argument line too long" \
48         "seq 10000 99999 | sed -e 's/^/\"/' -e 's/$/\"/' | xargs echo | grep -o 99999; echo \$?" \
49         "99999\n0\n" \
50         "" ""
51
52 testing "xargs -n1" \
53         "xargs -n1 echo" \
54         "1\n2\n3\n4\n5\n" \
55         "" "1 2 3 4 5\n"
56
57 testing "xargs -n2" \
58         "xargs -n2 echo" \
59         "1 2\n3 4\n5\n" \
60         "" "1 2 3 4 5\n"
61
62 SKIP=
63
64 exit $FAILCOUNT