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 9testing "xargs -E _ stops on underscore" \ 10 "xargs -E _" \ 11 "a\n" \ 12 "" "a\n_\nb\n" 13 14testing "xargs -E ''" \ 15 "xargs -E ''" \ 16 "a _ b\n" \ 17 "" "a\n_\nb\n" 18 19testing "xargs -e without param" \ 20 "xargs -e" \ 21 "a _ b\n" \ 22 "" "a\n_\nb\n" 23 24testing "xargs does not stop on underscore ('new' GNU behavior)" \ 25 "xargs" \ 26 "a _ b\n" \ 27 "" "a\n_\nb\n" 28 29testing "xargs -s7 can take one-char input" \ 30 "xargs -s7 echo" \ 31 "a\n" \ 32 "" "a\n" 33 34testing "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 39testing "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 46optional FEATURE_XARGS_SUPPORT_QUOTES 47testing "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 52testing "xargs -n1" \ 53 "xargs -n1 echo" \ 54 "1\n2\n3\n4\n5\n" \ 55 "" "1 2 3 4 5\n" 56 57testing "xargs -n2" \ 58 "xargs -n2 echo" \ 59 "1 2\n3 4\n5\n" \ 60 "" "1 2 3 4 5\n" 61 62SKIP= 63 64optional FEATURE_XARGS_SUPPORT_QUOTES FEATURE_XARGS_SUPPORT_REPL_STR 65testing "xargs -I skips empty lines and leading whitespace" \ 66 "xargs -I% echo '[%]'" \ 67 "[2]\n[4]\n[6 6 ]\n[7]\n" \ 68 "" " \n2\n\n4\n\n 6 6 \n \v \t 7\n\t\n\v\n" 69 70SKIP= 71 72exit $FAILCOUNT 73