diff options
author | Rob Landley <rob@landley.net> | 2019-10-24 19:41:09 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2019-10-24 19:41:09 -0500 |
commit | 1f5f147a9ec048897c43e2358223430098493497 (patch) | |
tree | a8bebfb7fe4dd008d7420a9d609eb304d26c4eed /tests | |
parent | 69efea9cc568b3906340ddf45df66db811d4f204 (diff) | |
download | toybox-1f5f147a9ec048897c43e2358223430098493497.tar.gz |
Fix the xargs argument too long problem by putting the proper accounting
back when they haven't specified -s, add tests.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/xargs.test | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/xargs.test b/tests/xargs.test index e2eec036..afed8a17 100644 --- a/tests/xargs.test +++ b/tests/xargs.test @@ -52,6 +52,15 @@ testing "false" "xargs false; echo \$?" "123\n" "" "" testing "exit 255" "xargs sh -c 'exit 255' 2>&1; echo \$?" \ "xargs: sh: exited with status 255; aborting\n124\n" "" "" +# findutils maxes out at 131066 (they do the math wrong), kernel takes 131071. +toyonly testing "max argument size" \ + "head -c 131071 /dev/zero | tr '\0' x | xargs | wc -c" "131072\n" "" "" +X=$(head -c 131066 /dev/zero | tr '\0' x) +# This goes over the kernel's 10 meg limit +testing "big input forces split" \ + 'for i in $(seq 1 100);do echo $X;done|{ xargs >/dev/null && echo yes;}' \ + "yes\n" "" "" + # TODO: what exactly is -x supposed to do? why does coreutils output "one"? #testing "-x" "xargs -x -s 9 || echo expected" "one\nexpected\n" "" "one\ntwo\nthree" |