mirror of
git://git.sv.gnu.org/autoconf
synced 2025-02-17 14:01:27 +08:00
Factor some autotest tests.
* tests/autotest.at (AT_CHECK_AT_PREP): New macro, to factor out common initialization. (AT_CHECK_AT, Banners, Keywords and ranges, srcdir propagation) (whitespace in absolute testdir, unusual file names): Use it. Signed-off-by: Eric Blake <ebb9@byu.net>
This commit is contained in:
parent
fd8b6f4727
commit
24093173fd
@ -1,3 +1,11 @@
|
||||
2008-03-10 Eric Blake <ebb9@byu.net>
|
||||
|
||||
Factor some autotest tests.
|
||||
* tests/autotest.at (AT_CHECK_AT_PREP): New macro, to factor out
|
||||
common initialization.
|
||||
(AT_CHECK_AT, Banners, Keywords and ranges, srcdir propagation)
|
||||
(whitespace in absolute testdir, unusual file names): Use it.
|
||||
|
||||
2008-03-06 Eric Blake <ebb9@byu.net>
|
||||
|
||||
Minor documentation fix.
|
||||
|
@ -18,6 +18,37 @@ AT_BANNER([Autotest.])
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# AT_CHECK_AT_PREP(NAME, SUITE-CODE, [STATUS = 0], [STDOUT], [STDERR],
|
||||
# [DIR = .])
|
||||
# --------------------------------------------------------------------
|
||||
# Create a new testsuite named NAME that runs a minimal Autotest test suite,
|
||||
# SUITE-CODE. Do not use `testsuite' for NAME, or the log file it generates
|
||||
# will overwrite the log that the Autoconf test produces when managing
|
||||
# this test case. STATUS, STDOUT, and STDERR pass directly to the AT_CHECK
|
||||
# that compiles the testsuite. DIR can specify a particular subdirectory
|
||||
# where the testsuite should live.
|
||||
m4_define([AT_CHECK_AT_PREP],
|
||||
[AT_KEYWORDS([autotest])dnl
|
||||
dnl overquote AT_dir, to make it easier to use
|
||||
m4_pushdef([AT_dir], m4_ifval([$6], [[[$6]]], [.]))dnl
|
||||
dnl
|
||||
AT_CAPTURE_FILE([$1.log])dnl
|
||||
dnl
|
||||
AT_DATA(AT_dir[/package.m4],
|
||||
[[m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
||||
m4_define([AT_PACKAGE_TARNAME], [nonsense])
|
||||
m4_define([AT_PACKAGE_VERSION], [1.0])
|
||||
m4_define([AT_PACKAGE_STRING], [GNU Nonsense 1.0])
|
||||
m4_define([AT_PACKAGE_BUGREPORT], [bug-autoconf@gnu.org])
|
||||
]])
|
||||
dnl
|
||||
AT_DATA(AT_dir[/$1.at], [$2])
|
||||
m4_ifval([$6], [(cd AT_dir])
|
||||
AT_CHECK_AUTOM4TE([--language=autotest -o $1 $1.at], [$3], [$4], [$5])
|
||||
m4_ifval([$6], [)])
|
||||
m4_popdef([AT_dir])dnl
|
||||
]) # AT_CHECK_AT_PREP
|
||||
|
||||
# AT_CHECK_AT(TITLE, SUITE-CODE, [XFAIL-CONDITION], [STATUS = 0],
|
||||
# [STDOUT := ignore], STDERR, [POST-TEST-CODE])
|
||||
# ---------------------------------------------------------------
|
||||
@ -27,28 +58,14 @@ AT_BANNER([Autotest.])
|
||||
# used, but it is reserved for future use. Run POST-TEST-CODE
|
||||
# at the top level after the micro-suite has been run.
|
||||
m4_define([AT_CHECK_AT],
|
||||
[
|
||||
AT_SETUP([$1])
|
||||
AT_KEYWORDS([autotest])
|
||||
AT_CAPTURE_FILE([micro-suite.log])
|
||||
[AT_SETUP([$1])
|
||||
AT_XFAIL_IF([$3])
|
||||
AT_CHECK_AT_PREP([micro-suite], [$2])
|
||||
|
||||
AT_DATA([package.m4],[[
|
||||
m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
||||
m4_define([AT_PACKAGE_TARNAME], [nonsense])
|
||||
m4_define([AT_PACKAGE_VERSION], [1.0])
|
||||
m4_define([AT_PACKAGE_STRING], [GNU Nonsense 1.0])
|
||||
m4_define([AT_PACKAGE_BUGREPORT], [bug-autoconf@gnu.org])
|
||||
]])
|
||||
|
||||
AT_DATA([mysuite.at], [$2])
|
||||
|
||||
# Do not use `testsuite' as the name of the small test suite, or the
|
||||
# log file it generates will overwrite the log that the Autoconf test
|
||||
# suite produces for this test case.
|
||||
AT_CHECK_AUTOM4TE([--language=autotest -o micro-suite mysuite.at])
|
||||
AT_CHECK([$CONFIG_SHELL ./micro-suite], m4_default([$4], 0), [ignore], [$6])
|
||||
AT_CHECK([$CONFIG_SHELL ./micro-suite -v -x], m4_default([$4], 0), [ignore], [$6])
|
||||
AT_CHECK([$CONFIG_SHELL ./micro-suite], m4_default([$4], 0),
|
||||
[ignore], [$6])
|
||||
AT_CHECK([$CONFIG_SHELL ./micro-suite -v -x], m4_default([$4], 0),
|
||||
[ignore], [$6])
|
||||
$7
|
||||
AT_CLEANUP
|
||||
])# AT_CHECK_AT
|
||||
@ -470,12 +487,9 @@ AT_CHECK([$CONFIG_SHELL ./micro-suite -C nonesuch --help], [0], [ignore], [])
|
||||
## Banners. ##
|
||||
## -------- ##
|
||||
AT_SETUP([Banners])
|
||||
AT_KEYWORDS([autotest])
|
||||
|
||||
AT_DATA([b.at],
|
||||
[[m4_define([AT_PACKAGE_STRING],[b])
|
||||
m4_define([AT_PACKAGE_BUGREPORT],[devnull])
|
||||
AT_INIT
|
||||
AT_CHECK_AT_PREP([b],
|
||||
[[AT_INIT
|
||||
AT_SETUP(zero)# 1
|
||||
AT_CHECK(:)
|
||||
AT_CLEANUP
|
||||
@ -488,7 +502,6 @@ AT_SETUP(one b)# 3
|
||||
AT_CHECK(:)
|
||||
AT_CLEANUP
|
||||
|
||||
|
||||
AT_BANNER()
|
||||
AT_SETUP(two)# 4
|
||||
AT_CHECK(:)
|
||||
@ -502,7 +515,6 @@ AT_SETUP(three b)# 6
|
||||
AT_CHECK(:)
|
||||
AT_CLEANUP
|
||||
]])
|
||||
AT_CHECK_AUTOM4TE([--language=autotest -o b b.at])
|
||||
|
||||
# AT_CHECK_BANNERS(TESTSUITE-OPTIONS, PATTERN1, COUNT1, PATTERN2, COUNT2)
|
||||
m4_define([AT_CHECK_BANNERS],
|
||||
@ -536,12 +548,9 @@ AT_CLEANUP
|
||||
## Keywords. ##
|
||||
## --------- ##
|
||||
AT_SETUP([Keywords and ranges])
|
||||
AT_KEYWORDS([autotest])
|
||||
|
||||
AT_DATA([k.at],
|
||||
[[m4_define([AT_PACKAGE_STRING],[k])
|
||||
m4_define([AT_PACKAGE_BUGREPORT],[devnull])
|
||||
AT_INIT
|
||||
AT_CHECK_AT_PREP([k],
|
||||
[[AT_INIT
|
||||
AT_SETUP(none)
|
||||
AT_CHECK(:)
|
||||
AT_CLEANUP
|
||||
@ -559,7 +568,6 @@ AT_KEYWORDS([key1])
|
||||
AT_CHECK(:)
|
||||
AT_CLEANUP
|
||||
]])
|
||||
AT_CHECK_AUTOM4TE([--language=autotest -o k k.at])
|
||||
dnl check that AT_KEYWORDS does not duplicate words
|
||||
AT_CHECK([grep 'key1.*key1' k], [1])
|
||||
dnl check that -k requires an argument
|
||||
@ -623,8 +631,6 @@ AT_CLEANUP
|
||||
## ------------------- ##
|
||||
|
||||
AT_SETUP([srcdir propagation])
|
||||
AT_KEYWORDS([autotest])
|
||||
AT_CAPTURE_FILE([suite.log])
|
||||
|
||||
mkdir pkg vpath-outside vpath-abs
|
||||
mkdir pkg/t pkg/vpath-inside
|
||||
@ -641,20 +647,12 @@ cd pkg
|
||||
AT_CHECK_AUTOCONF
|
||||
cd ..
|
||||
|
||||
AT_DATA([pkg/t/suite.at],
|
||||
[[m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
||||
m4_define([AT_PACKAGE_TARNAME], [nonsense])
|
||||
m4_define([AT_PACKAGE_VERSION], [1.0])
|
||||
m4_define([AT_PACKAGE_STRING], [GNU Nonsense 1.0])
|
||||
m4_define([AT_PACKAGE_BUGREPORT], [bug-autoconf@gnu.org])
|
||||
AT_INIT([suite to check srcdir])
|
||||
AT_CHECK_AT_PREP([suite],
|
||||
[[AT_INIT([suite to check srcdir])
|
||||
AT_SETUP([my only test])
|
||||
AT_CHECK([test -f "$top_srcdir"/a && test -f "$srcdir"/b])
|
||||
AT_CLEANUP
|
||||
]])
|
||||
cd pkg/t
|
||||
AT_CHECK_AUTOM4TE([--language=autotest -o suite suite.at])
|
||||
cd ../..
|
||||
]], [], [], [], [pkg/t])
|
||||
|
||||
# Build directory totally outside source directory.
|
||||
cd vpath-outside
|
||||
@ -699,7 +697,6 @@ AT_CLEANUP
|
||||
## ------------------------------ ##
|
||||
|
||||
AT_SETUP([whitespace in absolute testdir])
|
||||
AT_KEYWORDS([autotest])
|
||||
|
||||
dir='dir with whitespace'
|
||||
mkdir "$dir"
|
||||
@ -707,18 +704,12 @@ cd "$dir"
|
||||
wd=`pwd`
|
||||
|
||||
AT_DATA([a])
|
||||
AT_DATA([suite.at],
|
||||
[[m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
||||
m4_define([AT_PACKAGE_TARNAME], [nonsense])
|
||||
m4_define([AT_PACKAGE_VERSION], [1.0])
|
||||
m4_define([AT_PACKAGE_STRING], [GNU Nonsense 1.0])
|
||||
m4_define([AT_PACKAGE_BUGREPORT], [bug-autoconf@gnu.org])
|
||||
AT_INIT([suite to check srcdir])
|
||||
AT_CHECK_AT_PREP([suite],
|
||||
[[AT_INIT([suite to check srcdir])
|
||||
AT_SETUP([my only test])
|
||||
AT_CHECK([test -f "$top_srcdir"/a])
|
||||
AT_CLEANUP
|
||||
]])
|
||||
AT_CHECK_AUTOM4TE([--language=autotest -o suite suite.at])
|
||||
AT_CHECK([top_srcdir=$wd ./suite], [0], [ignore])
|
||||
AT_CHECK([top_srcdir=$wd ./suite -d], [0], [ignore])
|
||||
AT_CHECK([cd suite.dir/1 && ./run top_srcdir="$wd"], [0], [ignore], [ignore])
|
||||
@ -730,7 +721,6 @@ AT_CLEANUP
|
||||
## ------------------ ##
|
||||
|
||||
AT_SETUP([unusual file names])
|
||||
AT_KEYWORDS([autotest])
|
||||
|
||||
AT_DATA_M4SUGAR([d@&t@nl.at],
|
||||
[[AT_SETUP([test one])
|
||||
@ -746,16 +736,10 @@ AT_CHECK([test "]m4_dquote(AT_LINE)[" = "two spaces.at:2"])
|
||||
AT_CLEANUP
|
||||
]])
|
||||
|
||||
AT_DATA([suite.at],
|
||||
[[m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
||||
m4_define([AT_PACKAGE_TARNAME], [nonsense])
|
||||
m4_define([AT_PACKAGE_VERSION], [1.0])
|
||||
m4_define([AT_PACKAGE_STRING], [GNU Nonsense 1.0])
|
||||
m4_define([AT_PACKAGE_BUGREPORT], [bug-autoconf@gnu.org])
|
||||
AT_INIT([suite to check included file names])
|
||||
AT_CHECK_AT_PREP([suite],
|
||||
[[AT_INIT([suite to check included file names])
|
||||
m4@&t@_include([d][nl.at])
|
||||
m4@&t@_include([sub/two spaces.at])
|
||||
]])
|
||||
AT_CHECK_AUTOM4TE([--language=autotest -o suite suite.at])
|
||||
AT_CHECK([$CONFIG_SHELL ./suite], [0], [ignore])
|
||||
AT_CLEANUP
|
||||
|
Loading…
Reference in New Issue
Block a user