From nobody Sun Feb 15 08:58:42 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 4fDKZW2gRtz6SGwR for ; Sun, 15 Feb 2026 08:58:43 +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 4fDKZV58VYz46bN for ; Sun, 15 Feb 2026 08:58:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771145922; 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=ECNPJXIlj110jR3ymCJQr3UQK9uXxtpiEDManb3EZFo=; b=ntF9htKqdg3G1PDyBGG2MYWHs9mMqtQ92os09Du1DwUiJBogyev2i9v2OiL6t+8opR5xfO tbDWn8wOc54bmaQ2YHXlqTi1i/cVYVEw7os8b1TUOacOUoEGaFQVB9/x/eOiKM524+djTL 27MV4H2n46RX1/SvLFxOQnHWhlO1pkphBSScRYBYOffFsO/Y+PMyRLmhOmJW2M9rMil5/P Kn6DQSskPWBGpcN6K1o8S/uTSQcZ46Jge8A9pR7fCtL78XL6pHb2JJLv8a43F7ruDs+2If H2guQBXbsmVoQJ7gHhSIQm/asn2gkFPTHA/UVVksFPrY6EcTdmAKFHzbZrmflw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771145922; a=rsa-sha256; cv=none; b=oKz2qjisIIrYRN6YxIgV2cCLYMZKzHlzUM/MQfasOLW7VlkWizvM508Uz77CaXOq3Ap+82 JS+THW+sbITq2of6evfPYZRHNXMHk+C2IioyLHhcxNZpI4zYtC7gv117CwVaX8OEgRhoJI sag2/JCCsf8uVeg5cS4h1Dx+zdOCeUiXBg87h8pK7yjm4Gff/D2sEoLg6J9WdHHT9PVgss bGFQfuVVu2MObT8OXRkKD8Nf62LKDYd/UQT31e4yOjyIUn2vTsSlc8ULnZNjNUV2w0pFfJ GNN3W9BL6zucUsefOd+LQgwN5RLL+QVjZu4QeX8Fz/ekHPLqCR3xIVzMF7VFXg== 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=1771145922; 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=ECNPJXIlj110jR3ymCJQr3UQK9uXxtpiEDManb3EZFo=; b=yNBseHJG3Io33QsTGHXDiftPsjnhc6+0lsm7NwAQuvv3es5UhWNozJn4Rni+KdrzTQf4M9 +C2DQGvdWREN9MWl8DN9+cP/h0Z0bASe4/ry2MmPsIdCGwK1ZPIvvX6o7g3620wY/l8bQb u1PzuN/U4K1eMMi4EtJml7YYC3EKHk4PZl/C8x+RIuWW22lKoBG3JHTsfJTFVamIDlZr8K whnQTSwXD0L4n7tl0WtHwH8199CUO5+0bhQQgJzabYMsY9YTcwz/CW9sqMt1l5lrb1twPX c3P9d/MuX8g0uyWNAt9u0kYSAJtYCAx5vF4J6FwndsSc/kbVic2q92D7KA5THA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDKZV4Z7Hzn57 for ; Sun, 15 Feb 2026 08:58:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1a06a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 15 Feb 2026 08:58:42 +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: f207a5cf0226 - stable/14 - 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/14 X-Git-Reftype: branch X-Git-Commit: f207a5cf02264545d8a9a22ef85bb471aef99911 Auto-Submitted: auto-generated Date: Sun, 15 Feb 2026 08:58:42 +0000 Message-Id: <69918ac2.1a06a.40c18323@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=f207a5cf02264545d8a9a22ef85bb471aef99911 commit f207a5cf02264545d8a9a22ef85bb471aef99911 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-07 18:16:17 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-15 08:58:33 +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 | 4 + 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, 299 insertions(+), 89 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index d2bf38c1647d..fcde02df0b6d 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,10 @@ # 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 + # 20251218: Remove old MLINK to apmconf(8) OLD_FILES+=usr/share/man/man8/apmconf.8.gz diff --git a/usr.bin/m4/tests/Makefile b/usr.bin/m4/tests/Makefile index cb3ca6b72652..c5c0fdba7985 100644 --- a/usr.bin/m4/tests/Makefile +++ b/usr.bin/m4/tests/Makefile @@ -1,7 +1,7 @@ PACKAGE= tests -TAP_TESTS_SH= legacy_test +ATF_TESTS_SH= m4_test ${PACKAGE}FILES+= args.m4 ${PACKAGE}FILES+= args2.m4 @@ -21,6 +21,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 @@ -32,19 +36,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()