m4: Convert tests to ATF
MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55115
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 <bsd.test.mk>
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
SRCDIR="$(dirname "${0}")"; export SRCDIR
|
||||
|
||||
m4 "${SRCDIR}/../regress.m4" "${SRCDIR}/regress.sh" | 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
|
||||
}
|
||||
@@ -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'
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
m4: gnusofterror.m4 at line 2: include(hey I do not exit): No such file or directory
|
||||
@@ -1,2 +1 @@
|
||||
m4: gnusofterror.m4 at line 2: include(hey I do not exit): No such file or directory
|
||||
abc
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
m4: unclosed quote:
|
||||
quotes.m4 at line 54
|
||||
@@ -1,5 +1,3 @@
|
||||
m4: unclosed quote:
|
||||
quotes.m4 at line 54
|
||||
1: normal
|
||||
quoted string
|
||||
[quoted STRING]
|
||||
|
||||
@@ -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()
|
||||
Reference in New Issue
Block a user