#!/bin/sh
# Copyright 2008 by Denys Vlasenko
# Licensed under GPLv2, see file LICENSE in this source tree.

. ./testing.sh

# testing "test name" "command" "expected result" "file input" "stdin"

testing "xargs -E _ stops on underscore" \
	"xargs -E _" \
	"a\n" \
	"" "a\n_\nb\n"

testing "xargs -E ''" \
	"xargs -E ''" \
	"a _ b\n" \
	"" "a\n_\nb\n"

testing "xargs -e without param" \
	"xargs -e" \
	"a _ b\n" \
	"" "a\n_\nb\n"

testing "xargs does not stop on underscore ('new' GNU behavior)" \
	"xargs" \
	"a _ b\n" \
	"" "a\n_\nb\n"

testing "xargs -s7 can take one-char input" \
	"xargs -s7 echo" \
	"a\n" \
	"" "a\n"

testing "xargs -sNUM test 1" \
	"xargs -ts25 echo 2>&1 >/dev/null" \
	"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" \
	"" "1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 00\n"

testing "xargs -sNUM test 2" \
	"xargs -ts25 echo 1 2>&1 >/dev/null" \
	"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" \
	"" "2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 00\n"

# see that we don't get "argument line too long",
# but do see the last word, 99999, instead
optional FEATURE_XARGS_SUPPORT_QUOTES
testing "xargs argument line too long" \
	"seq 10000 99999 | sed -e 's/^/\"/' -e 's/$/\"/' | xargs echo | grep -o 99999; echo \$?" \
	"99999\n0\n" \
	"" ""

testing "xargs -n1" \
	"xargs -n1 echo" \
	"1\n2\n3\n4\n5\n" \
	"" "1 2 3 4 5\n"

testing "xargs -n2" \
	"xargs -n2 echo" \
	"1 2\n3 4\n5\n" \
	"" "1 2 3 4 5\n"

SKIP=

optional FEATURE_XARGS_SUPPORT_QUOTES FEATURE_XARGS_SUPPORT_REPL_STR
testing "xargs -I skips empty lines and leading whitespace" \
	"xargs -I% echo '[%]'" \
	"[2]\n[4]\n[6 6 ]\n[7]\n" \
	"" " \n2\n\n4\n\n 6 6 \n \v \t 7\n\t\n\v\n"

SKIP=

exit $FAILCOUNT
