The branch main has been updated by des:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=b26f93a4650339ceb319fe772faaca7389110113

commit b26f93a4650339ceb319fe772faaca7389110113
Author:     Dag-Erling Smørgrav <d...@freebsd.org>
AuthorDate: 2025-07-26 16:44:43 +0000
Commit:     Dag-Erling Smørgrav <d...@freebsd.org>
CommitDate: 2025-07-26 16:44:43 +0000

    xargs: Convert tests to ATF
    
    Also add license and copyright statement, with permission from the
    original author.
    
    Reviewed by:    kevans
    Differential Revision:  https://reviews.freebsd.org/D51537
---
 ObsoleteFiles.inc                  |   4 +-
 usr.bin/xargs/tests/Makefile       |   3 +-
 usr.bin/xargs/tests/legacy_test.sh |   5 -
 usr.bin/xargs/tests/regress.sh     |  32 ------
 usr.bin/xargs/tests/xargs_test.sh  | 193 +++++++++++++++++++++++++++++++++++++
 5 files changed, 197 insertions(+), 40 deletions(-)

diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 00f889804013..8fbba3964832 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -51,8 +51,10 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
-# 20250726: Test case renamed
+# 20250726: xargs tests rewritten
+OLD_FILES+=usr/tests/usr.bin/xargs/legacy_test
 OLD_FILES+=usr/tests/usr.bin/xargs/regress.n2147483647.out
+OLD_FILES+=usr/tests/usr.bin/xargs/regress.sh
 
 # 20250726: This file is now installed in /etc/dma
 OLD_FILES+=usr/share/examples/dma/auth.conf
diff --git a/usr.bin/xargs/tests/Makefile b/usr.bin/xargs/tests/Makefile
index 1a9265b88b4e..9fa8ff11fac2 100644
--- a/usr.bin/xargs/tests/Makefile
+++ b/usr.bin/xargs/tests/Makefile
@@ -1,6 +1,6 @@
 PACKAGE=       tests
 
-TAP_TESTS_SH=  legacy_test
+ATF_TESTS_SH=  xargs_test
 
 ${PACKAGE}FILES+=              regress.0.in
 ${PACKAGE}FILES+=              regress.0.out
@@ -23,6 +23,5 @@ ${PACKAGE}FILES+=             regress.n3.out
 ${PACKAGE}FILES+=              regress.normal.out
 ${PACKAGE}FILES+=              regress.quotes.in
 ${PACKAGE}FILES+=              regress.quotes.out
-${PACKAGE}FILES+=              regress.sh
 
 .include <bsd.test.mk>
diff --git a/usr.bin/xargs/tests/legacy_test.sh 
b/usr.bin/xargs/tests/legacy_test.sh
deleted file mode 100644
index 3c7842d07bf0..000000000000
--- a/usr.bin/xargs/tests/legacy_test.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-SRCDIR="$(dirname "${0}")"; export SRCDIR
-
-m4 "${SRCDIR}/../regress.m4" "${SRCDIR}/regress.sh" | sh
diff --git a/usr.bin/xargs/tests/regress.sh b/usr.bin/xargs/tests/regress.sh
deleted file mode 100644
index e65a5a703505..000000000000
--- a/usr.bin/xargs/tests/regress.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-
-echo 1..23
-
-REGRESSION_START($1)
-
-REGRESSION_TEST(`normal', `xargs echo The <${SRCDIR}/regress.in')
-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(`R-1', `xargs -I% -R-1 echo The % % % %% % % 
<${SRCDIR}/regress.in')
-REGRESSION_TEST(`n1', `xargs -n1 echo <${SRCDIR}/regress.in')
-REGRESSION_TEST(`n2', `xargs -n2 echo <${SRCDIR}/regress.in')
-argmax=$(sysctl -n kern.argmax)
-REGRESSION_TEST(`nargmax', `xargs -n$argmax <${SRCDIR}/regress.in')
-REGRESSION_TEST(`n2P0',`xargs -n2 -P0 echo <${SRCDIR}/regress.in | sort')
-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_TEST_FREEFORM(`parallel1', `echo /var/empty       /var/empty       
| xargs -n1 -P2 test -d; [ $? = 0 ]')
-REGRESSION_TEST_FREEFORM(`parallel2', `echo /var/empty       /var/empty/nodir 
| xargs -n1 -P2 test -d; [ $? = 1 ]')
-REGRESSION_TEST_FREEFORM(`parallel3', `echo /var/empty/nodir /var/empty       
| xargs -n1 -P2 test -d; [ $? = 1 ]')
-REGRESSION_TEST_FREEFORM(`parallel4', `echo /var/empty/nodir /var/empty/nodir 
| xargs -n1 -P2 test -d; [ $? = 1 ]')
-REGRESSION_TEST_FREEFORM(`ntoobig', `seq 42 | xargs -n$((argmax+1)); [ $? = 1 
]')
-
-REGRESSION_END()
diff --git a/usr.bin/xargs/tests/xargs_test.sh 
b/usr.bin/xargs/tests/xargs_test.sh
new file mode 100755
index 000000000000..12c9407a7e45
--- /dev/null
+++ b/usr.bin/xargs/tests/xargs_test.sh
@@ -0,0 +1,193 @@
+#
+# Copyright (c) 2002 Juli Mallett <jmall...@freebsd.org>
+# Copyright (c) 2025 Dag-Erling Smørgrav <d...@freebsd.org>
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+
+SRCDIR=$(atf_get_srcdir)
+
+atf_test_case xargs_normal
+xargs_normal_body()
+{
+       atf_check -o file:${SRCDIR}/regress.normal.out \
+           xargs echo The <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_I
+xargs_I_body()
+{
+       atf_check -o file:${SRCDIR}/regress.I.out \
+           xargs -I% echo The % % % %% % % <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_J
+xargs_J_body()
+{
+       atf_check -o file:${SRCDIR}/regress.J.out \
+           xargs -J% echo The % again. <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_L
+xargs_L_body()
+{
+       atf_check -o file:${SRCDIR}/regress.L.out \
+           xargs -L3 echo <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_P1
+xargs_P1_body()
+{
+       atf_check -o file:${SRCDIR}/regress.P1.out \
+           xargs -P1 echo <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_R
+xargs_R_body()
+{
+       atf_check -o file:${SRCDIR}/regress.R.out \
+           xargs -I% -R1 echo The % % % %% % % <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_R_1
+xargs_R_1_body()
+{
+       atf_check -o file:${SRCDIR}/regress.R-1.out \
+           xargs -I% -R-1 echo The % % % %% % % <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_n1
+xargs_n1_body()
+{
+       atf_check -o file:${SRCDIR}/regress.n1.out \
+           xargs -n1 echo <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_n2
+xargs_n2_body()
+{
+       atf_check -o file:${SRCDIR}/regress.n2.out \
+           xargs -n2 echo <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_nargmax
+xargs_nargmax_body()
+{
+       argmax=$(sysctl -n kern.argmax)
+       atf_check -o file:${SRCDIR}/regress.nargmax.out \
+           xargs -n$((argmax)) <${SRCDIR}/regress.in
+       atf_check -s exit:1 -e match:"too large" \
+           xargs -n$((argmax+1)) <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_n2P0
+xargs_n2P0_body()
+{
+       atf_check -o save:regress.out \
+           xargs -n2 -P0 echo <${SRCDIR}/regress.in
+       atf_check -o file:${SRCDIR}/regress.n2P0.out \
+           sort regress.out
+}
+
+atf_test_case xargs_n3
+xargs_n3_body()
+{
+       atf_check -o file:${SRCDIR}/regress.n3.out \
+           xargs -n3 echo <${SRCDIR}/regress.in
+}
+
+atf_test_case xargs_0
+xargs_0_body()
+{
+       atf_check -o file:${SRCDIR}/regress.0.out \
+           xargs -0 -n1 echo <${SRCDIR}/regress.0.in
+}
+
+atf_test_case xargs_0I
+xargs_0I_body()
+{
+       atf_check -o file:${SRCDIR}/regress.0I.out \
+           xargs -0 -I% echo The % %% % <${SRCDIR}/regress.0.in
+}
+
+atf_test_case xargs_0J
+xargs_0J_body()
+{
+       atf_check -o file:${SRCDIR}/regress.0J.out \
+           xargs -0 -J% echo The % again. <${SRCDIR}/regress.0.in
+}
+
+atf_test_case xargs_0L
+xargs_0L_body()
+{
+       atf_check -o file:${SRCDIR}/regress.0L.out \
+           xargs -0 -L2 echo <${SRCDIR}/regress.0.in
+}
+
+atf_test_case xargs_0P1
+xargs_0P1_body()
+{
+       atf_check -o file:${SRCDIR}/regress.0P1.out \
+           xargs -0 -P1 echo <${SRCDIR}/regress.0.in
+}
+
+atf_test_case xargs_quotes
+xargs_quotes_body()
+{
+       atf_check -o file:${SRCDIR}/regress.quotes.out \
+           xargs -n1 echo <${SRCDIR}/regress.quotes.in
+}
+
+atf_test_case xargs_parallel1
+xargs_parallel1_body()
+{
+       echo /var/empty /var/empty >input
+       atf_check xargs -n1 -P2 test -d <input
+}
+
+atf_test_case xargs_parallel2
+xargs_parallel2_body()
+{
+       echo /var/empty /var/empty/nodir >input
+       atf_check -s exit:1 xargs -n1 -P2 test -d <input
+}
+
+atf_test_case xargs_parallel3
+xargs_parallel3_body()
+{
+       echo /var/empty/nodir /var/empty >input
+       atf_check -s exit:1 xargs -n1 -P2 test -d <input
+}
+
+atf_test_case xargs_parallel4
+xargs_parallel4_body()
+{
+       echo /var/empty/nodir /var/empty/nodir >input
+       atf_check -s exit:1 xargs -n1 -P2 test -d <input
+}
+
+atf_init_test_cases()
+{
+       atf_add_test_case xargs_normal
+       atf_add_test_case xargs_I
+       atf_add_test_case xargs_J
+       atf_add_test_case xargs_L
+       atf_add_test_case xargs_P1
+       atf_add_test_case xargs_R
+       atf_add_test_case xargs_R_1
+       atf_add_test_case xargs_n1
+       atf_add_test_case xargs_n2
+       atf_add_test_case xargs_nargmax
+       atf_add_test_case xargs_n2P0
+       atf_add_test_case xargs_n3
+       atf_add_test_case xargs_0
+       atf_add_test_case xargs_0I
+       atf_add_test_case xargs_0J
+       atf_add_test_case xargs_0L
+       atf_add_test_case xargs_0P1
+       atf_add_test_case xargs_quotes
+       atf_add_test_case xargs_parallel1
+       atf_add_test_case xargs_parallel2
+       atf_add_test_case xargs_parallel3
+       atf_add_test_case xargs_parallel4
+}

Reply via email to