From nobody Sun Feb 15 08:57:59 2026 X-Original-To: dev-commits-src-branches@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 4fDKYh0bcfz6SGxT for ; Sun, 15 Feb 2026 08:58:00 +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 4fDKYg5CXkz46DW for ; Sun, 15 Feb 2026 08:57:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771145879; 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=R93l0n+C+h/zLuZFuRtbnkeLdaYtxtYIFfFqotkzqok=; b=Sssh26FYNN0LyC2M8fUgRqqJBAw/rh7BiTkVqJ61BEaTnhdhOQqp5ejviFKe0quVaPJkbv 6dTSeO5xLBae0erJvSCGcKgFfI1JsZiDzgGyoPfqgxJkdREMSUBiufIdrefyohFpNG7kmZ wjy5A61H8BlMfravlYhxiMqW6oGf49LRJkH8OEXWXO0VmH6ycdba5g5neexYtLrMbk0msF HunNI1IvMQCCyvZzYpXb7LBuzEk9mPrINniqCGVeZNq3eAodxhWrJ2liqq+B9N1NSjNT6P jh5Rp8DVyrObd8j/xvAthIdvLPNptcBBdSUX5ahx2ghSkbTY52sbn/2BsCrSyA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771145879; a=rsa-sha256; cv=none; b=E37jevfiyhTGVO6CBN7sO1YvajI21h9JoZSL0bbF07jtocCx1E4uWteBUTDkn4IWPos1Qh KH0a4F+Imtbv2c2ZRiOgNtem8Tlde4MuulDusPK5dbSIH8LY8NEBK0Dof3KRM0VpjkLz3q StDv/3vCrewInzHouoYnH+/HPljAmExgmhAhmHOzvt649AHNHO6Vy/iQqcMqYdQ1xR1Cow LELFe1LoHR+fsUV61ZRAWN86f6Jl/z3QmYsMRuZ7lR+jITlbF8oDE32CRoJErPErUX6McR xak6o+8WETGExfoCE01x14nbiEDzIyoRP7Y1BZWTMs23U3VDGhRrT95/3SeBig== 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=1771145879; 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=R93l0n+C+h/zLuZFuRtbnkeLdaYtxtYIFfFqotkzqok=; b=qEGYqVgm5MIWfQha3CqkJp1CAdefl27IQ/SToQfVogQEFussEZUCdTjuf9dUiiAydPwHbl xnnkBxBJdsIe9J5c/knKYhVUfjZOlVCejbAdYBfNVNUQFSibuHR4xziPv9AsG6CmoeV+5b UuZAD8HbVtAM+NlwB8hKNCJAtu1ObgtN7AKvrNdGu2KFGY3I1BRN1ydomrVgxxFeWfITIR 760WRbtL9Tn5bFZBejwcm1rGBHWqIRtiXxOLPno4UQXY/BN/o4dChBrmUVmJEOmPmduZIL uHMtKDBMwqQY7AKvxokPP1aFMgrh64sEfWJNcX00VILTnrCbnhR98WiZDI76Kg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDKYg4H5rzmrM for ; Sun, 15 Feb 2026 08:57:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e0ad by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 15 Feb 2026 08:57:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 955fdd490b21 - stable/15 - m4: Convert tests to ATF List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 955fdd490b21e935b0a7c0318084e47ac26379b2 Auto-Submitted: auto-generated Date: Sun, 15 Feb 2026 08:57:59 +0000 Message-Id: <69918a97.1e0ad.cd0fa32@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=955fdd490b21e935b0a7c0318084e47ac26379b2 commit 955fdd490b21e935b0a7c0318084e47ac26379b2 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-07 18:16:17 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-15 08:57:45 +0000 m4: Convert tests to ATF MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55115 (cherry picked from commit 16e073df4a33646fa0e0fba5b41ddc6b44df3605) --- 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 6cb2b129a8fc..a81407a93453 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 # 20260202: 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()