From owner-svn-src-all@freebsd.org Sat Aug 8 18:37:23 2015 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9D5CF9B5F2B; Sat, 8 Aug 2015 18:37:23 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 77315104F; Sat, 8 Aug 2015 18:37:23 +0000 (UTC) (envelope-from allanjude@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.70]) by repo.freebsd.org (8.14.9/8.14.9) with ESMTP id t78IbN8q089551; Sat, 8 Aug 2015 18:37:23 GMT (envelope-from allanjude@FreeBSD.org) Received: (from allanjude@localhost) by repo.freebsd.org (8.14.9/8.14.9/Submit) id t78IbLfl089545; Sat, 8 Aug 2015 18:37:21 GMT (envelope-from allanjude@FreeBSD.org) Message-Id: <201508081837.t78IbLfl089545@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: allanjude set sender to allanjude@FreeBSD.org using -f From: Allan Jude Date: Sat, 8 Aug 2015 18:37:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r286461 - in head/usr.bin/xargs: . tests X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Aug 2015 18:37:23 -0000 Author: allanjude Date: Sat Aug 8 18:37:20 2015 New Revision: 286461 URL: https://svnweb.freebsd.org/changeset/base/286461 Log: fix regression in xargs -Px (introduced in r286289) and add regression tests PR: 202152 Submitted by: jbeich (original), Nikolai Lifanov (final) Reviewed by: jbeich Approved by: bapt (mentor) Differential Revision: https://reviews.freebsd.org/D3330 Added: head/usr.bin/xargs/tests/regress.0P1.out (contents, props changed) head/usr.bin/xargs/tests/regress.P1.out (contents, props changed) head/usr.bin/xargs/tests/regress.n2P0.out (contents, props changed) Modified: head/usr.bin/xargs/tests/Makefile head/usr.bin/xargs/tests/regress.sh head/usr.bin/xargs/xargs.c Modified: head/usr.bin/xargs/tests/Makefile ============================================================================== --- head/usr.bin/xargs/tests/Makefile Sat Aug 8 18:29:45 2015 (r286460) +++ head/usr.bin/xargs/tests/Makefile Sat Aug 8 18:37:20 2015 (r286461) @@ -10,13 +10,16 @@ FILES+= regress.0.out FILES+= regress.0I.out FILES+= regress.0J.out FILES+= regress.0L.out +FILES+= regress.0P1.out FILES+= regress.I.out FILES+= regress.J.out FILES+= regress.L.out +FILES+= regress.P1.out FILES+= regress.R.out FILES+= regress.in FILES+= regress.n1.out FILES+= regress.n2.out +FILES+= regress.n2P0.out FILES+= regress.n3.out FILES+= regress.normal.out FILES+= regress.quotes.in Added: head/usr.bin/xargs/tests/regress.0P1.out ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/xargs/tests/regress.0P1.out Sat Aug 8 18:37:20 2015 (r286461) @@ -0,0 +1,4 @@ +quick ' brown fox jumped +over "the lazy dog +quick brown fox jumped over the lazy dog + Added: head/usr.bin/xargs/tests/regress.P1.out ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/xargs/tests/regress.P1.out Sat Aug 8 18:37:20 2015 (r286461) @@ -0,0 +1 @@ +quick brown fox jumped over the lazy dog Added: head/usr.bin/xargs/tests/regress.n2P0.out ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/xargs/tests/regress.n2P0.out Sat Aug 8 18:37:20 2015 (r286461) @@ -0,0 +1,4 @@ +quick brown +fox jumped +over the +lazy dog Modified: head/usr.bin/xargs/tests/regress.sh ============================================================================== --- head/usr.bin/xargs/tests/regress.sh Sat Aug 8 18:29:45 2015 (r286460) +++ head/usr.bin/xargs/tests/regress.sh Sat Aug 8 18:37:20 2015 (r286461) @@ -1,6 +1,6 @@ # $FreeBSD$ -echo 1..13 +echo 1..16 REGRESSION_START($1) @@ -8,14 +8,17 @@ REGRESSION_TEST(`normal', `xargs echo Th REGRESSION_TEST(`I', `xargs -I% echo The % % % %% % % <${SRCDIR}/regress.in') REGRESSION_TEST(`J', `xargs -J% echo The % again. <${SRCDIR}/regress.in') REGRESSION_TEST(`L', `xargs -L3 echo <${SRCDIR}/regress.in') +REGRESSION_TEST(`P1', `xargs -P1 echo <${SRCDIR}/regress.in') REGRESSION_TEST(`R', `xargs -I% -R1 echo The % % % %% % % <${SRCDIR}/regress.in') REGRESSION_TEST(`n1', `xargs -n1 echo <${SRCDIR}/regress.in') REGRESSION_TEST(`n2', `xargs -n2 echo <${SRCDIR}/regress.in') +REGRESSION_TEST(`n2P0',`xargs -n2 -P0 echo <${SRCDIR}/regress.in') REGRESSION_TEST(`n3', `xargs -n3 echo <${SRCDIR}/regress.in') REGRESSION_TEST(`0', `xargs -0 -n1 echo <${SRCDIR}/regress.0.in') REGRESSION_TEST(`0I', `xargs -0 -I% echo The % %% % <${SRCDIR}/regress.0.in') REGRESSION_TEST(`0J', `xargs -0 -J% echo The % again. <${SRCDIR}/regress.0.in') REGRESSION_TEST(`0L', `xargs -0 -L2 echo <${SRCDIR}/regress.0.in') +REGRESSION_TEST(`0P1', `xargs -0 -P1 echo <${SRCDIR}/regress.0.in') REGRESSION_TEST(`quotes', `xargs -n1 echo <${SRCDIR}/regress.quotes.in') REGRESSION_END() Modified: head/usr.bin/xargs/xargs.c ============================================================================== --- head/usr.bin/xargs/xargs.c Sat Aug 8 18:29:45 2015 (r286460) +++ head/usr.bin/xargs/xargs.c Sat Aug 8 18:37:20 2015 (r286461) @@ -166,15 +166,11 @@ main(int argc, char *argv[]) oflag = 1; break; case 'P': - maxprocs = strtonum(optarg, 1, INT_MAX, &errstr); + maxprocs = strtonum(optarg, 0, INT_MAX, &errstr); if (errstr) errx(1, "-P %s: %s", optarg, errstr); if (getrlimit(RLIMIT_NPROC, &rl) != 0) errx(1, "getrlimit failed"); - if (*endptr != '\0') - errx(1, "invalid number for -P option"); - if (maxprocs < 0) - errx(1, "value for -P option should be >= 0"); if (maxprocs == 0 || maxprocs > rl.rlim_cur) maxprocs = rl.rlim_cur; break;