116e073dfSDag-Erling Smørgrav# 216e073dfSDag-Erling Smørgrav# Copyright (c) 2026 Klara, Inc. 316e073dfSDag-Erling Smørgrav# 416e073dfSDag-Erling Smørgrav# SPDX-License-Identifier: BSD-2-Clause 516e073dfSDag-Erling Smørgrav# 616e073dfSDag-Erling Smørgrav 716e073dfSDag-Erling Smørgravm4_test() 816e073dfSDag-Erling Smørgrav{ 916e073dfSDag-Erling Smørgrav local dir=$(atf_get_srcdir) 1016e073dfSDag-Erling Smørgrav local rc=0 1116e073dfSDag-Erling Smørgrav local args opt output script 1216e073dfSDag-Erling Smørgrav while getopts "1gP" opt ; do 1316e073dfSDag-Erling Smørgrav case ${opt} in 1416e073dfSDag-Erling Smørgrav 1) 1516e073dfSDag-Erling Smørgrav rc=1 1616e073dfSDag-Erling Smørgrav ;; 1716e073dfSDag-Erling Smørgrav *) 1816e073dfSDag-Erling Smørgrav args="${args% }-${opt}" 1916e073dfSDag-Erling Smørgrav ;; 2016e073dfSDag-Erling Smørgrav esac 2116e073dfSDag-Erling Smørgrav done 2216e073dfSDag-Erling Smørgrav shift $((OPTIND - 1)) 2316e073dfSDag-Erling Smørgrav script=$1 2416e073dfSDag-Erling Smørgrav output=$2 2516e073dfSDag-Erling Smørgrav if [ -z "${output}" ] ; then 2616e073dfSDag-Erling Smørgrav output="${script}" 2716e073dfSDag-Erling Smørgrav fi 2816e073dfSDag-Erling Smørgrav if [ -f "${dir}/regress.${output}.out" ] ; then 2916e073dfSDag-Erling Smørgrav ln -s "${dir}/regress.${output}.out" out 3016e073dfSDag-Erling Smørgrav else 3116e073dfSDag-Erling Smørgrav atf_fail "regress.${output}.out not found" 3216e073dfSDag-Erling Smørgrav fi 3316e073dfSDag-Erling Smørgrav if [ -f "${dir}/regress.${output}.err" ] ; then 3416e073dfSDag-Erling Smørgrav ln -s "${dir}/regress.${output}.err" err 3516e073dfSDag-Erling Smørgrav else 3616e073dfSDag-Erling Smørgrav touch err 3716e073dfSDag-Erling Smørgrav fi 3816e073dfSDag-Erling Smørgrav if [ -f "${dir}/${script}.m4.uu" ] ; then 3916e073dfSDag-Erling Smørgrav atf_check uudecode -o "${script}.m4" "${dir}/${script}.m4.uu" 4016e073dfSDag-Erling Smørgrav elif [ -f "${dir}/${script}.m4" ] ; then 4116e073dfSDag-Erling Smørgrav ln -s "${dir}/${script}.m4" "${script}.m4" 4216e073dfSDag-Erling Smørgrav else 4316e073dfSDag-Erling Smørgrav atf_fail "${script}.m4 not found" 4416e073dfSDag-Erling Smørgrav fi 4516e073dfSDag-Erling Smørgrav atf_check -s exit:${rc} -o file:out -e file:err \ 4616e073dfSDag-Erling Smørgrav m4 -I "${dir}" ${args} "${script}.m4" 4716e073dfSDag-Erling Smørgrav} 4816e073dfSDag-Erling Smørgrav 4916e073dfSDag-Erling Smørgravargs_head() 5016e073dfSDag-Erling Smørgrav{ 5116e073dfSDag-Erling Smørgrav} 5216e073dfSDag-Erling Smørgravargs_body() 5316e073dfSDag-Erling Smørgrav{ 5416e073dfSDag-Erling Smørgrav m4_test args 5516e073dfSDag-Erling Smørgrav} 5616e073dfSDag-Erling Smørgrav 5716e073dfSDag-Erling Smørgravargs2_head() 5816e073dfSDag-Erling Smørgrav{ 5916e073dfSDag-Erling Smørgrav} 6016e073dfSDag-Erling Smørgravargs2_body() 6116e073dfSDag-Erling Smørgrav{ 6216e073dfSDag-Erling Smørgrav m4_test args2 6316e073dfSDag-Erling Smørgrav} 6416e073dfSDag-Erling Smørgrav 6516e073dfSDag-Erling Smørgravcomments_head() 6616e073dfSDag-Erling Smørgrav{ 6716e073dfSDag-Erling Smørgrav} 6816e073dfSDag-Erling Smørgravcomments_body() 6916e073dfSDag-Erling Smørgrav{ 7016e073dfSDag-Erling Smørgrav m4_test comments 7116e073dfSDag-Erling Smørgrav} 7216e073dfSDag-Erling Smørgrav 73*25a8168fSDag-Erling Smørgravdefn_head() 74*25a8168fSDag-Erling Smørgrav{ 75*25a8168fSDag-Erling Smørgrav} 76*25a8168fSDag-Erling Smørgravdefn_body() 77*25a8168fSDag-Erling Smørgrav{ 78*25a8168fSDag-Erling Smørgrav m4_test defn 79*25a8168fSDag-Erling Smørgrav} 80*25a8168fSDag-Erling Smørgrav 8116e073dfSDag-Erling Smørgravesyscmd_head() 8216e073dfSDag-Erling Smørgrav{ 8316e073dfSDag-Erling Smørgrav} 8416e073dfSDag-Erling Smørgravesyscmd_body() 8516e073dfSDag-Erling Smørgrav{ 8616e073dfSDag-Erling Smørgrav m4_test esyscmd 8716e073dfSDag-Erling Smørgrav} 8816e073dfSDag-Erling Smørgrav 8916e073dfSDag-Erling Smørgraveval_head() 9016e073dfSDag-Erling Smørgrav{ 9116e073dfSDag-Erling Smørgrav} 9216e073dfSDag-Erling Smørgraveval_body() 9316e073dfSDag-Erling Smørgrav{ 9416e073dfSDag-Erling Smørgrav m4_test eval 9516e073dfSDag-Erling Smørgrav} 9616e073dfSDag-Erling Smørgrav 9716e073dfSDag-Erling Smørgravff_after_dnl_head() 9816e073dfSDag-Erling Smørgrav{ 9916e073dfSDag-Erling Smørgrav} 10016e073dfSDag-Erling Smørgravff_after_dnl_body() 10116e073dfSDag-Erling Smørgrav{ 10216e073dfSDag-Erling Smørgrav m4_test ff_after_dnl 10316e073dfSDag-Erling Smørgrav} 10416e073dfSDag-Erling Smørgrav 10516e073dfSDag-Erling Smørgravgnueval_head() 10616e073dfSDag-Erling Smørgrav{ 10716e073dfSDag-Erling Smørgrav} 10816e073dfSDag-Erling Smørgravgnueval_body() 10916e073dfSDag-Erling Smørgrav{ 11016e073dfSDag-Erling Smørgrav m4_test -g gnueval 11116e073dfSDag-Erling Smørgrav} 11216e073dfSDag-Erling Smørgrav 11316e073dfSDag-Erling Smørgravgnuformat_head() 11416e073dfSDag-Erling Smørgrav{ 11516e073dfSDag-Erling Smørgrav} 11616e073dfSDag-Erling Smørgravgnuformat_body() 11716e073dfSDag-Erling Smørgrav{ 11816e073dfSDag-Erling Smørgrav m4_test -g gnuformat 11916e073dfSDag-Erling Smørgrav} 12016e073dfSDag-Erling Smørgrav 12116e073dfSDag-Erling Smørgravgnupatterns_head() 12216e073dfSDag-Erling Smørgrav{ 12316e073dfSDag-Erling Smørgrav} 12416e073dfSDag-Erling Smørgravgnupatterns_body() 12516e073dfSDag-Erling Smørgrav{ 12616e073dfSDag-Erling Smørgrav m4_test -g gnupatterns 12716e073dfSDag-Erling Smørgrav} 12816e073dfSDag-Erling Smørgrav 12916e073dfSDag-Erling Smørgravgnupatterns2_head() 13016e073dfSDag-Erling Smørgrav{ 13116e073dfSDag-Erling Smørgrav} 13216e073dfSDag-Erling Smørgravgnupatterns2_body() 13316e073dfSDag-Erling Smørgrav{ 13416e073dfSDag-Erling Smørgrav m4_test -g gnupatterns2 13516e073dfSDag-Erling Smørgrav} 13616e073dfSDag-Erling Smørgrav 13716e073dfSDag-Erling Smørgravgnuprefix_head() 13816e073dfSDag-Erling Smørgrav{ 13916e073dfSDag-Erling Smørgrav} 14016e073dfSDag-Erling Smørgravgnuprefix_body() 14116e073dfSDag-Erling Smørgrav{ 14216e073dfSDag-Erling Smørgrav m4_test -P gnuprefix 14316e073dfSDag-Erling Smørgrav} 14416e073dfSDag-Erling Smørgrav 14516e073dfSDag-Erling Smørgravgnusofterror_head() 14616e073dfSDag-Erling Smørgrav{ 14716e073dfSDag-Erling Smørgrav} 14816e073dfSDag-Erling Smørgravgnusofterror_body() 14916e073dfSDag-Erling Smørgrav{ 15016e073dfSDag-Erling Smørgrav m4_test -1 -g gnusofterror 15116e073dfSDag-Erling Smørgrav} 15216e073dfSDag-Erling Smørgrav 15316e073dfSDag-Erling Smørgravgnutranslit2_head() 15416e073dfSDag-Erling Smørgrav{ 15516e073dfSDag-Erling Smørgrav} 15616e073dfSDag-Erling Smørgravgnutranslit2_body() 15716e073dfSDag-Erling Smørgrav{ 15816e073dfSDag-Erling Smørgrav m4_test -g translit2 gnutranslit2 15916e073dfSDag-Erling Smørgrav} 16016e073dfSDag-Erling Smørgrav 16116e073dfSDag-Erling Smørgravincludes_head() 16216e073dfSDag-Erling Smørgrav{ 16316e073dfSDag-Erling Smørgrav} 16416e073dfSDag-Erling Smørgravincludes_body() 16516e073dfSDag-Erling Smørgrav{ 16616e073dfSDag-Erling Smørgrav m4_test includes 16716e073dfSDag-Erling Smørgrav} 16816e073dfSDag-Erling Smørgrav 16916e073dfSDag-Erling Smørgravm4wrap3_head() 17016e073dfSDag-Erling Smørgrav{ 17116e073dfSDag-Erling Smørgrav} 17216e073dfSDag-Erling Smørgravm4wrap3_body() 17316e073dfSDag-Erling Smørgrav{ 17416e073dfSDag-Erling Smørgrav m4_test m4wrap3 17516e073dfSDag-Erling Smørgrav} 17616e073dfSDag-Erling Smørgrav 17716e073dfSDag-Erling Smørgravpatterns_head() 17816e073dfSDag-Erling Smørgrav{ 17916e073dfSDag-Erling Smørgrav} 18016e073dfSDag-Erling Smørgravpatterns_body() 18116e073dfSDag-Erling Smørgrav{ 18216e073dfSDag-Erling Smørgrav m4_test patterns 18316e073dfSDag-Erling Smørgrav} 18416e073dfSDag-Erling Smørgrav 18516e073dfSDag-Erling Smørgravquotes_head() 18616e073dfSDag-Erling Smørgrav{ 18716e073dfSDag-Erling Smørgrav} 18816e073dfSDag-Erling Smørgravquotes_body() 18916e073dfSDag-Erling Smørgrav{ 19016e073dfSDag-Erling Smørgrav m4_test -1 quotes 19116e073dfSDag-Erling Smørgrav} 19216e073dfSDag-Erling Smørgrav 19316e073dfSDag-Erling Smørgravredef_head() 19416e073dfSDag-Erling Smørgrav{ 19516e073dfSDag-Erling Smørgrav} 19616e073dfSDag-Erling Smørgravredef_body() 19716e073dfSDag-Erling Smørgrav{ 19816e073dfSDag-Erling Smørgrav m4_test redef 19916e073dfSDag-Erling Smørgrav} 20016e073dfSDag-Erling Smørgrav 20116e073dfSDag-Erling Smørgravstrangequotes_head() 20216e073dfSDag-Erling Smørgrav{ 20316e073dfSDag-Erling Smørgrav} 20416e073dfSDag-Erling Smørgravstrangequotes_body() 20516e073dfSDag-Erling Smørgrav{ 20616e073dfSDag-Erling Smørgrav m4_test strangequotes 20716e073dfSDag-Erling Smørgrav} 20816e073dfSDag-Erling Smørgrav 20916e073dfSDag-Erling Smørgravtranslit_head() 21016e073dfSDag-Erling Smørgrav{ 21116e073dfSDag-Erling Smørgrav} 21216e073dfSDag-Erling Smørgravtranslit_body() 21316e073dfSDag-Erling Smørgrav{ 21416e073dfSDag-Erling Smørgrav m4_test translit 21516e073dfSDag-Erling Smørgrav} 21616e073dfSDag-Erling Smørgrav 21716e073dfSDag-Erling Smørgravtranslit2_head() 21816e073dfSDag-Erling Smørgrav{ 21916e073dfSDag-Erling Smørgrav} 22016e073dfSDag-Erling Smørgravtranslit2_body() 22116e073dfSDag-Erling Smørgrav{ 22216e073dfSDag-Erling Smørgrav m4_test translit2 22316e073dfSDag-Erling Smørgrav} 22416e073dfSDag-Erling Smørgrav 22516e073dfSDag-Erling Smørgravatf_init_test_cases() 22616e073dfSDag-Erling Smørgrav{ 22716e073dfSDag-Erling Smørgrav atf_add_test_case args 22816e073dfSDag-Erling Smørgrav atf_add_test_case args2 22916e073dfSDag-Erling Smørgrav atf_add_test_case comments 230*25a8168fSDag-Erling Smørgrav atf_add_test_case defn 23116e073dfSDag-Erling Smørgrav atf_add_test_case esyscmd 23216e073dfSDag-Erling Smørgrav atf_add_test_case eval 23316e073dfSDag-Erling Smørgrav atf_add_test_case ff_after_dnl 23416e073dfSDag-Erling Smørgrav atf_add_test_case gnueval 23516e073dfSDag-Erling Smørgrav atf_add_test_case gnuformat 23616e073dfSDag-Erling Smørgrav atf_add_test_case gnupatterns 23716e073dfSDag-Erling Smørgrav atf_add_test_case gnupatterns2 23816e073dfSDag-Erling Smørgrav atf_add_test_case gnuprefix 23916e073dfSDag-Erling Smørgrav atf_add_test_case gnusofterror 24016e073dfSDag-Erling Smørgrav atf_add_test_case gnutranslit2 24116e073dfSDag-Erling Smørgrav atf_add_test_case includes 24216e073dfSDag-Erling Smørgrav atf_add_test_case m4wrap3 24316e073dfSDag-Erling Smørgrav atf_add_test_case patterns 24416e073dfSDag-Erling Smørgrav atf_add_test_case quotes 24516e073dfSDag-Erling Smørgrav atf_add_test_case redef 24616e073dfSDag-Erling Smørgrav atf_add_test_case strangequotes 24716e073dfSDag-Erling Smørgrav atf_add_test_case translit 24816e073dfSDag-Erling Smørgrav atf_add_test_case translit2 24916e073dfSDag-Erling Smørgrav} 250