From nobody Sat Feb 7 18:17:04 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f7fLZ1Zlcz6RDdT for ; Sat, 07 Feb 2026 18:17:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f7fLS6ddxz4QTp for ; Sat, 07 Feb 2026 18:17:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770488224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s2u5Kx6q2UAxJiZpzn3xMBGkbDWO3JDy0HqdlBuFixM=; b=Fq3rkKlITbapljTcaLPdx7VQCBS7Vly6uQ8aUu6z2oUpoZeYtEvmsWWfenVcOJCofcvHbp B/47PSw+3XFrLr0JepehrH2H+fjEa9BoS3Ard8/n2EaIRXI1GkNVmkpVY1b2mGkeGAMrlt 5USmQbw2GBRUt9jGsm1ZhvvBVwVgcCGQ6jVGrAvJjZYZc8qS9sSHlGYkyxQ5MpIo312GcA 1CiNho3WdVzFF4vkQGuC+LgJLegoCr9EdVa7/jYd3ddzTJvznFQEBtqD36eFnf4Pt5hnNB wFZXCQ7jBEBTwDQ8x1qMGVQYooAmlK51L8czyzCTahqot6feD+C4+LfIZL7O2w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770488224; a=rsa-sha256; cv=none; b=PXRaVQuJidObdd+luiTgQ/c4xZblAvw7vMDIgNPlF5iPSf/iLE5uzD0yA6C708Jc1MUxL4 tptUt/i9JSlqMRAzWZSqE0sk0YQz3xlOtZlzfe0fHRSfvV+/Xqi1d/jBvF1RGNeQlhz8u+ +6UTgvwvgTc3MHiVEyUKDCIkVIGVwx0kZM4gYSAoOQveo4E+Gc6cbk4qZGfIyXpWh9jnFm 2/2/qELz+CEjJkImT3ppQ7i14Up4p4RzseWDvISlghv8LzNwKUaAN2wKBtQjYGbqtYAu1G jfzUuBFkes/ADRrVu41fMl7hhep7pskHBUE6GqOV6uaxEmF3c7SYzhQbror0lA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770488224; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=s2u5Kx6q2UAxJiZpzn3xMBGkbDWO3JDy0HqdlBuFixM=; b=J4ukX51K1izupxjzNNH0at+LZFWULPivKPfjVShs4163YHvkanZtDNnukpG5uDShSI56dy ysJdCwEYoEaBH51d9o+kcaVeGyBsbB09LU72H72REPpBd1DT6y8tjCVcelgcFsCOzhAFPp 1A1Cy3fCk4fSF5wVSvg4bJpgy5A96BbpWQaND7gCKBF+YaUi3NCJtTytpObT6em9bWqrXd w/fLCGIs7FkgNMhtmxFp2l+RMMA3IOTw1QfpmxrYF+NTHqn6s94cXZS4dEpZyqSobPz/RT hodZcrNsIFuDvygugf26TzYosA4N6yUh/2JRAa2u6bQ/jiFHg8aN9Ax0pphD6Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f7fLS5lH1z19v5 for ; Sat, 07 Feb 2026 18:17:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27855 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 07 Feb 2026 18:17:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 16e073df4a33 - main - m4: Convert tests to ATF List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 16e073df4a33646fa0e0fba5b41ddc6b44df3605 Auto-Submitted: auto-generated Date: Sat, 07 Feb 2026 18:17:04 +0000 Message-Id: <698781a0.27855.18b97cf6@gitrepo.freebsd.org> The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=16e073df4a33646fa0e0fba5b41ddc6b44df3605 commit 16e073df4a33646fa0e0fba5b41ddc6b44df3605 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-07 18:16:17 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-07 18:16:17 +0000 m4: Convert tests to ATF MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55115 --- ObsoleteFiles.inc | 3 + usr.bin/m4/tests/Makefile | 13 +- usr.bin/m4/tests/legacy_test.sh | 5 - usr.bin/m4/tests/m4_test.sh | 240 ++++++++++++++++++++++++++++++ usr.bin/m4/tests/regress.gnuprefix.err | 44 ++++++ usr.bin/m4/tests/regress.gnuprefix.out | 44 ------ usr.bin/m4/tests/regress.gnusofterror.err | 1 + usr.bin/m4/tests/regress.gnusofterror.out | 1 - usr.bin/m4/tests/regress.quotes.err | 2 + usr.bin/m4/tests/regress.quotes.out | 2 - usr.bin/m4/tests/regress.sh | 32 ---- 11 files changed, 298 insertions(+), 89 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index a65251d0a9ee..e131bb0d8a82 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,9 @@ # xargs -n1 | sort | uniq -d; # done +# 20260204: replaced with ATF test +OLD_FILES+=usr/tests/usr.bin/m4/legacy_test +OLD_FILES+=usr/tests/usr.bin/m4/regress.sh # 20260120: remove obsolete MIT KRB5 plugin files OLD_LIBS+=usr/lib/krb5/plugins/kdb/db2.so.121 diff --git a/usr.bin/m4/tests/Makefile b/usr.bin/m4/tests/Makefile index 45245d75e85d..bbf26d4e42d9 100644 --- a/usr.bin/m4/tests/Makefile +++ b/usr.bin/m4/tests/Makefile @@ -1,6 +1,6 @@ PACKAGE= tests -TAP_TESTS_SH= legacy_test +ATF_TESTS_SH= m4_test ${PACKAGE}FILES+= args.m4 ${PACKAGE}FILES+= args2.m4 @@ -20,6 +20,10 @@ ${PACKAGE}FILES+= m4wrap3.m4 ${PACKAGE}FILES+= patterns.m4 ${PACKAGE}FILES+= quotes.m4 ${PACKAGE}FILES+= redef.m4 +${PACKAGE}FILES+= strangequotes.m4.uu +${PACKAGE}FILES+= translit.m4 +${PACKAGE}FILES+= translit2.m4 + ${PACKAGE}FILES+= regress.args.out ${PACKAGE}FILES+= regress.args2.out ${PACKAGE}FILES+= regress.comments.out @@ -31,19 +35,18 @@ ${PACKAGE}FILES+= regress.gnuformat.out ${PACKAGE}FILES+= regress.gnupatterns.out ${PACKAGE}FILES+= regress.gnupatterns2.out ${PACKAGE}FILES+= regress.gnuprefix.out +${PACKAGE}FILES+= regress.gnuprefix.err ${PACKAGE}FILES+= regress.gnusofterror.out +${PACKAGE}FILES+= regress.gnusofterror.err ${PACKAGE}FILES+= regress.gnutranslit2.out ${PACKAGE}FILES+= regress.includes.out ${PACKAGE}FILES+= regress.m4wrap3.out ${PACKAGE}FILES+= regress.patterns.out ${PACKAGE}FILES+= regress.quotes.out +${PACKAGE}FILES+= regress.quotes.err ${PACKAGE}FILES+= regress.redef.out -${PACKAGE}FILES+= regress.sh ${PACKAGE}FILES+= regress.strangequotes.out ${PACKAGE}FILES+= regress.translit.out ${PACKAGE}FILES+= regress.translit2.out -${PACKAGE}FILES+= strangequotes.m4.uu -${PACKAGE}FILES+= translit.m4 -${PACKAGE}FILES+= translit2.m4 .include diff --git a/usr.bin/m4/tests/legacy_test.sh b/usr.bin/m4/tests/legacy_test.sh deleted file mode 100644 index 3c7842d07bf0..000000000000 --- a/usr.bin/m4/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/m4/tests/m4_test.sh b/usr.bin/m4/tests/m4_test.sh new file mode 100644 index 000000000000..671f25ff4673 --- /dev/null +++ b/usr.bin/m4/tests/m4_test.sh @@ -0,0 +1,240 @@ +# +# Copyright (c) 2026 Klara, Inc. +# +# SPDX-License-Identifier: BSD-2-Clause +# + +m4_test() +{ + local dir=$(atf_get_srcdir) + local rc=0 + local args opt output script + while getopts "1gP" opt ; do + case ${opt} in + 1) + rc=1 + ;; + *) + args="${args% }-${opt}" + ;; + esac + done + shift $((OPTIND - 1)) + script=$1 + output=$2 + if [ -z "${output}" ] ; then + output="${script}" + fi + if [ -f "${dir}/regress.${output}.out" ] ; then + ln -s "${dir}/regress.${output}.out" out + else + atf_fail "regress.${output}.out not found" + fi + if [ -f "${dir}/regress.${output}.err" ] ; then + ln -s "${dir}/regress.${output}.err" err + else + touch err + fi + if [ -f "${dir}/${script}.m4.uu" ] ; then + atf_check uudecode -o "${script}.m4" "${dir}/${script}.m4.uu" + elif [ -f "${dir}/${script}.m4" ] ; then + ln -s "${dir}/${script}.m4" "${script}.m4" + else + atf_fail "${script}.m4 not found" + fi + atf_check -s exit:${rc} -o file:out -e file:err \ + m4 -I "${dir}" ${args} "${script}.m4" +} + +args_head() +{ +} +args_body() +{ + m4_test args +} + +args2_head() +{ +} +args2_body() +{ + m4_test args2 +} + +comments_head() +{ +} +comments_body() +{ + m4_test comments +} + +esyscmd_head() +{ +} +esyscmd_body() +{ + m4_test esyscmd +} + +eval_head() +{ +} +eval_body() +{ + m4_test eval +} + +ff_after_dnl_head() +{ +} +ff_after_dnl_body() +{ + m4_test ff_after_dnl +} + +gnueval_head() +{ +} +gnueval_body() +{ + m4_test -g gnueval +} + +gnuformat_head() +{ +} +gnuformat_body() +{ + m4_test -g gnuformat +} + +gnupatterns_head() +{ +} +gnupatterns_body() +{ + m4_test -g gnupatterns +} + +gnupatterns2_head() +{ +} +gnupatterns2_body() +{ + m4_test -g gnupatterns2 +} + +gnuprefix_head() +{ +} +gnuprefix_body() +{ + m4_test -P gnuprefix +} + +gnusofterror_head() +{ +} +gnusofterror_body() +{ + m4_test -1 -g gnusofterror +} + +gnutranslit2_head() +{ +} +gnutranslit2_body() +{ + m4_test -g translit2 gnutranslit2 +} + +includes_head() +{ +} +includes_body() +{ + m4_test includes +} + +m4wrap3_head() +{ +} +m4wrap3_body() +{ + m4_test m4wrap3 +} + +patterns_head() +{ +} +patterns_body() +{ + m4_test patterns +} + +quotes_head() +{ +} +quotes_body() +{ + m4_test -1 quotes +} + +redef_head() +{ +} +redef_body() +{ + m4_test redef +} + +strangequotes_head() +{ +} +strangequotes_body() +{ + m4_test strangequotes +} + +translit_head() +{ +} +translit_body() +{ + m4_test translit +} + +translit2_head() +{ +} +translit2_body() +{ + m4_test translit2 +} + +atf_init_test_cases() +{ + atf_add_test_case args + atf_add_test_case args2 + atf_add_test_case comments + atf_add_test_case esyscmd + atf_add_test_case eval + atf_add_test_case ff_after_dnl + atf_add_test_case gnueval + atf_add_test_case gnuformat + atf_add_test_case gnupatterns + atf_add_test_case gnupatterns2 + atf_add_test_case gnuprefix + atf_add_test_case gnusofterror + atf_add_test_case gnutranslit2 + atf_add_test_case includes + atf_add_test_case m4wrap3 + atf_add_test_case patterns + atf_add_test_case quotes + atf_add_test_case redef + atf_add_test_case strangequotes + atf_add_test_case translit + atf_add_test_case translit2 +} diff --git a/usr.bin/m4/tests/regress.gnuprefix.err b/usr.bin/m4/tests/regress.gnuprefix.err new file mode 100644 index 000000000000..8939371e81f4 --- /dev/null +++ b/usr.bin/m4/tests/regress.gnuprefix.err @@ -0,0 +1,44 @@ +`m4_ifelse' `m4_ifelse' +`m4_dnl' `m4_dnl' +`m4_expr' `m4_expr' +`m4_builtin' `m4_builtin' +`m4_popdef' `m4_popdef' +`m4_eval' `m4_eval' +`m4_len' `m4_len' +`m4_indir' `m4_indir' +`m4_sinclude' `m4_sinclude' +`m4_index' `m4_index' +`m4_traceoff' `m4_traceoff' +`m4___file__' `m4___file__' +`m4_unix' `m4_unix' +`m4_mkstemp' `m4_mkstemp' +`m4_changecom' `m4_changecom' +`m4_defn' `m4_defn' +`m4_decr' `m4_decr' +`m4_translit' `m4_translit' +`m4_patsubst' `m4_patsubst' +`m4_dumpdef' `m4_dumpdef' +`m4___line__' `m4___line__' +`m4_esyscmd' `m4_esyscmd' +`m4_traceon' `m4_traceon' +`m4_incr' `m4_incr' +`m4_shift' `m4_shift' +`m4_syscmd' `m4_syscmd' +`m4_include' `m4_include' +`m4_pushdef' `m4_pushdef' +`m4_paste' `m4_paste' +`m4_regexp' `m4_regexp' +`m4_changequote' `m4_changequote' +`m4_undivert' `m4_undivert' +`m4_m4exit' `m4_m4exit' +`m4_substr' `m4_substr' +`m4_m4wrap' `m4_m4wrap' +`m4_ifdef' `m4_ifdef' +`m4_sysval' `m4_sysval' +`m4_divert' `m4_divert' +`m4_maketemp' `m4_maketemp' +`m4_spaste' `m4_spaste' +`m4_define' `m4_define' +`m4_undefine' `m4_undefine' +`m4_divnum' `m4_divnum' +`m4_errprint' `m4_errprint' diff --git a/usr.bin/m4/tests/regress.gnuprefix.out b/usr.bin/m4/tests/regress.gnuprefix.out index 186421d8650b..3e86f4db699c 100644 --- a/usr.bin/m4/tests/regress.gnuprefix.out +++ b/usr.bin/m4/tests/regress.gnuprefix.out @@ -1,46 +1,2 @@ -`m4_ifelse' `m4_ifelse' -`m4_dnl' `m4_dnl' -`m4_expr' `m4_expr' -`m4_builtin' `m4_builtin' -`m4_popdef' `m4_popdef' -`m4_eval' `m4_eval' -`m4_len' `m4_len' -`m4_indir' `m4_indir' -`m4_sinclude' `m4_sinclude' -`m4_index' `m4_index' -`m4_traceoff' `m4_traceoff' -`m4___file__' `m4___file__' -`m4_unix' `m4_unix' -`m4_mkstemp' `m4_mkstemp' -`m4_changecom' `m4_changecom' -`m4_defn' `m4_defn' -`m4_decr' `m4_decr' -`m4_translit' `m4_translit' -`m4_patsubst' `m4_patsubst' -`m4_dumpdef' `m4_dumpdef' -`m4___line__' `m4___line__' -`m4_esyscmd' `m4_esyscmd' -`m4_traceon' `m4_traceon' -`m4_incr' `m4_incr' -`m4_shift' `m4_shift' -`m4_syscmd' `m4_syscmd' -`m4_include' `m4_include' -`m4_pushdef' `m4_pushdef' -`m4_paste' `m4_paste' -`m4_regexp' `m4_regexp' -`m4_changequote' `m4_changequote' -`m4_undivert' `m4_undivert' -`m4_m4exit' `m4_m4exit' -`m4_substr' `m4_substr' -`m4_m4wrap' `m4_m4wrap' -`m4_ifdef' `m4_ifdef' -`m4_sysval' `m4_sysval' -`m4_divert' `m4_divert' -`m4_maketemp' `m4_maketemp' -`m4_spaste' `m4_spaste' -`m4_define' `m4_define' -`m4_undefine' `m4_undefine' -`m4_divnum' `m4_divnum' -`m4_errprint' `m4_errprint' dumpdef() diff --git a/usr.bin/m4/tests/regress.gnusofterror.err b/usr.bin/m4/tests/regress.gnusofterror.err new file mode 100644 index 000000000000..d34464e85791 --- /dev/null +++ b/usr.bin/m4/tests/regress.gnusofterror.err @@ -0,0 +1 @@ +m4: gnusofterror.m4 at line 2: include(hey I do not exit): No such file or directory diff --git a/usr.bin/m4/tests/regress.gnusofterror.out b/usr.bin/m4/tests/regress.gnusofterror.out index 5c23eb237b6c..8baef1b4abc4 100644 --- a/usr.bin/m4/tests/regress.gnusofterror.out +++ b/usr.bin/m4/tests/regress.gnusofterror.out @@ -1,2 +1 @@ -m4: gnusofterror.m4 at line 2: include(hey I do not exit): No such file or directory abc diff --git a/usr.bin/m4/tests/regress.quotes.err b/usr.bin/m4/tests/regress.quotes.err new file mode 100644 index 000000000000..50eb78ca62df --- /dev/null +++ b/usr.bin/m4/tests/regress.quotes.err @@ -0,0 +1,2 @@ +m4: unclosed quote: + quotes.m4 at line 54 diff --git a/usr.bin/m4/tests/regress.quotes.out b/usr.bin/m4/tests/regress.quotes.out index cf34ba42a8d0..df38b6e6cd4d 100644 --- a/usr.bin/m4/tests/regress.quotes.out +++ b/usr.bin/m4/tests/regress.quotes.out @@ -1,5 +1,3 @@ -m4: unclosed quote: - quotes.m4 at line 54 1: normal quoted string [quoted STRING] diff --git a/usr.bin/m4/tests/regress.sh b/usr.bin/m4/tests/regress.sh deleted file mode 100644 index 39c9103db8d9..000000000000 --- a/usr.bin/m4/tests/regress.sh +++ /dev/null @@ -1,32 +0,0 @@ - -echo 1..21 - -test_m4() { - m4 "${@}" 2>&1 | sed -e "s,${SRCDIR}/,,g" -} - -REGRESSION_START($1) - -REGRESSION_TEST(`args', `test_m4 ${SRCDIR}/args.m4') -REGRESSION_TEST(`args2', `test_m4 ${SRCDIR}/args2.m4') -REGRESSION_TEST(`comments', `test_m4 ${SRCDIR}/comments.m4') -REGRESSION_TEST(`esyscmd', `test_m4 ${SRCDIR}/esyscmd.m4') -REGRESSION_TEST(`eval', `test_m4 ${SRCDIR}/eval.m4') -REGRESSION_TEST(`ff_after_dnl', `uudecode -o /dev/stdout ${SRCDIR}/ff_after_dnl.m4.uu | m4') -REGRESSION_TEST(`gnueval', `test_m4 -g ${SRCDIR}/gnueval.m4') -REGRESSION_TEST(`gnuformat', `test_m4 -g ${SRCDIR}/gnuformat.m4') -REGRESSION_TEST(`gnupatterns', `test_m4 -g ${SRCDIR}/gnupatterns.m4') -REGRESSION_TEST(`gnupatterns2', `test_m4 -g ${SRCDIR}/gnupatterns2.m4') -REGRESSION_TEST(`gnuprefix', `test_m4 -P ${SRCDIR}/gnuprefix.m4 2>&1') -REGRESSION_TEST(`gnusofterror', `test_m4 -g ${SRCDIR}/gnusofterror.m4 2>&1') -REGRESSION_TEST(`gnutranslit2', `test_m4 -g ${SRCDIR}/translit2.m4') -REGRESSION_TEST(`includes', `test_m4 -I${SRCDIR} ${SRCDIR}/includes.m4') -REGRESSION_TEST(`m4wrap3', `test_m4 ${SRCDIR}/m4wrap3.m4') -REGRESSION_TEST(`patterns', `test_m4 ${SRCDIR}/patterns.m4') -REGRESSION_TEST(`quotes', `test_m4 ${SRCDIR}/quotes.m4 2>&1') -REGRESSION_TEST(`strangequotes', `uudecode -o /dev/stdout ${SRCDIR}/strangequotes.m4.uu | m4') -REGRESSION_TEST(`redef', `test_m4 ${SRCDIR}/redef.m4') -REGRESSION_TEST(`translit', `test_m4 ${SRCDIR}/translit.m4') -REGRESSION_TEST(`translit2', `test_m4 ${SRCDIR}/translit2.m4') - -REGRESSION_END()