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>
|
2008-03-06 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
Minor documentation fix.
|
Minor documentation fix.
|
||||||
|
@ -18,6 +18,37 @@ AT_BANNER([Autotest.])
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# 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],
|
# AT_CHECK_AT(TITLE, SUITE-CODE, [XFAIL-CONDITION], [STATUS = 0],
|
||||||
# [STDOUT := ignore], STDERR, [POST-TEST-CODE])
|
# [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
|
# used, but it is reserved for future use. Run POST-TEST-CODE
|
||||||
# at the top level after the micro-suite has been run.
|
# at the top level after the micro-suite has been run.
|
||||||
m4_define([AT_CHECK_AT],
|
m4_define([AT_CHECK_AT],
|
||||||
[
|
[AT_SETUP([$1])
|
||||||
AT_SETUP([$1])
|
|
||||||
AT_KEYWORDS([autotest])
|
|
||||||
AT_CAPTURE_FILE([micro-suite.log])
|
|
||||||
AT_XFAIL_IF([$3])
|
AT_XFAIL_IF([$3])
|
||||||
|
AT_CHECK_AT_PREP([micro-suite], [$2])
|
||||||
|
|
||||||
AT_DATA([package.m4],[[
|
AT_CHECK([$CONFIG_SHELL ./micro-suite], m4_default([$4], 0),
|
||||||
m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
[ignore], [$6])
|
||||||
m4_define([AT_PACKAGE_TARNAME], [nonsense])
|
AT_CHECK([$CONFIG_SHELL ./micro-suite -v -x], m4_default([$4], 0),
|
||||||
m4_define([AT_PACKAGE_VERSION], [1.0])
|
[ignore], [$6])
|
||||||
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])
|
|
||||||
$7
|
$7
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
])# AT_CHECK_AT
|
])# AT_CHECK_AT
|
||||||
@ -470,12 +487,9 @@ AT_CHECK([$CONFIG_SHELL ./micro-suite -C nonesuch --help], [0], [ignore], [])
|
|||||||
## Banners. ##
|
## Banners. ##
|
||||||
## -------- ##
|
## -------- ##
|
||||||
AT_SETUP([Banners])
|
AT_SETUP([Banners])
|
||||||
AT_KEYWORDS([autotest])
|
|
||||||
|
|
||||||
AT_DATA([b.at],
|
AT_CHECK_AT_PREP([b],
|
||||||
[[m4_define([AT_PACKAGE_STRING],[b])
|
[[AT_INIT
|
||||||
m4_define([AT_PACKAGE_BUGREPORT],[devnull])
|
|
||||||
AT_INIT
|
|
||||||
AT_SETUP(zero)# 1
|
AT_SETUP(zero)# 1
|
||||||
AT_CHECK(:)
|
AT_CHECK(:)
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
@ -488,7 +502,6 @@ AT_SETUP(one b)# 3
|
|||||||
AT_CHECK(:)
|
AT_CHECK(:)
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
|
||||||
|
|
||||||
AT_BANNER()
|
AT_BANNER()
|
||||||
AT_SETUP(two)# 4
|
AT_SETUP(two)# 4
|
||||||
AT_CHECK(:)
|
AT_CHECK(:)
|
||||||
@ -502,7 +515,6 @@ AT_SETUP(three b)# 6
|
|||||||
AT_CHECK(:)
|
AT_CHECK(:)
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
]])
|
]])
|
||||||
AT_CHECK_AUTOM4TE([--language=autotest -o b b.at])
|
|
||||||
|
|
||||||
# AT_CHECK_BANNERS(TESTSUITE-OPTIONS, PATTERN1, COUNT1, PATTERN2, COUNT2)
|
# AT_CHECK_BANNERS(TESTSUITE-OPTIONS, PATTERN1, COUNT1, PATTERN2, COUNT2)
|
||||||
m4_define([AT_CHECK_BANNERS],
|
m4_define([AT_CHECK_BANNERS],
|
||||||
@ -536,12 +548,9 @@ AT_CLEANUP
|
|||||||
## Keywords. ##
|
## Keywords. ##
|
||||||
## --------- ##
|
## --------- ##
|
||||||
AT_SETUP([Keywords and ranges])
|
AT_SETUP([Keywords and ranges])
|
||||||
AT_KEYWORDS([autotest])
|
|
||||||
|
|
||||||
AT_DATA([k.at],
|
AT_CHECK_AT_PREP([k],
|
||||||
[[m4_define([AT_PACKAGE_STRING],[k])
|
[[AT_INIT
|
||||||
m4_define([AT_PACKAGE_BUGREPORT],[devnull])
|
|
||||||
AT_INIT
|
|
||||||
AT_SETUP(none)
|
AT_SETUP(none)
|
||||||
AT_CHECK(:)
|
AT_CHECK(:)
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
@ -559,7 +568,6 @@ AT_KEYWORDS([key1])
|
|||||||
AT_CHECK(:)
|
AT_CHECK(:)
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
]])
|
]])
|
||||||
AT_CHECK_AUTOM4TE([--language=autotest -o k k.at])
|
|
||||||
dnl check that AT_KEYWORDS does not duplicate words
|
dnl check that AT_KEYWORDS does not duplicate words
|
||||||
AT_CHECK([grep 'key1.*key1' k], [1])
|
AT_CHECK([grep 'key1.*key1' k], [1])
|
||||||
dnl check that -k requires an argument
|
dnl check that -k requires an argument
|
||||||
@ -623,8 +631,6 @@ AT_CLEANUP
|
|||||||
## ------------------- ##
|
## ------------------- ##
|
||||||
|
|
||||||
AT_SETUP([srcdir propagation])
|
AT_SETUP([srcdir propagation])
|
||||||
AT_KEYWORDS([autotest])
|
|
||||||
AT_CAPTURE_FILE([suite.log])
|
|
||||||
|
|
||||||
mkdir pkg vpath-outside vpath-abs
|
mkdir pkg vpath-outside vpath-abs
|
||||||
mkdir pkg/t pkg/vpath-inside
|
mkdir pkg/t pkg/vpath-inside
|
||||||
@ -641,20 +647,12 @@ cd pkg
|
|||||||
AT_CHECK_AUTOCONF
|
AT_CHECK_AUTOCONF
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
AT_DATA([pkg/t/suite.at],
|
AT_CHECK_AT_PREP([suite],
|
||||||
[[m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
[[AT_INIT([suite to check srcdir])
|
||||||
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_SETUP([my only test])
|
AT_SETUP([my only test])
|
||||||
AT_CHECK([test -f "$top_srcdir"/a && test -f "$srcdir"/b])
|
AT_CHECK([test -f "$top_srcdir"/a && test -f "$srcdir"/b])
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
]])
|
]], [], [], [], [pkg/t])
|
||||||
cd pkg/t
|
|
||||||
AT_CHECK_AUTOM4TE([--language=autotest -o suite suite.at])
|
|
||||||
cd ../..
|
|
||||||
|
|
||||||
# Build directory totally outside source directory.
|
# Build directory totally outside source directory.
|
||||||
cd vpath-outside
|
cd vpath-outside
|
||||||
@ -699,7 +697,6 @@ AT_CLEANUP
|
|||||||
## ------------------------------ ##
|
## ------------------------------ ##
|
||||||
|
|
||||||
AT_SETUP([whitespace in absolute testdir])
|
AT_SETUP([whitespace in absolute testdir])
|
||||||
AT_KEYWORDS([autotest])
|
|
||||||
|
|
||||||
dir='dir with whitespace'
|
dir='dir with whitespace'
|
||||||
mkdir "$dir"
|
mkdir "$dir"
|
||||||
@ -707,18 +704,12 @@ cd "$dir"
|
|||||||
wd=`pwd`
|
wd=`pwd`
|
||||||
|
|
||||||
AT_DATA([a])
|
AT_DATA([a])
|
||||||
AT_DATA([suite.at],
|
AT_CHECK_AT_PREP([suite],
|
||||||
[[m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
[[AT_INIT([suite to check srcdir])
|
||||||
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_SETUP([my only test])
|
AT_SETUP([my only test])
|
||||||
AT_CHECK([test -f "$top_srcdir"/a])
|
AT_CHECK([test -f "$top_srcdir"/a])
|
||||||
AT_CLEANUP
|
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], [0], [ignore])
|
||||||
AT_CHECK([top_srcdir=$wd ./suite -d], [0], [ignore])
|
AT_CHECK([top_srcdir=$wd ./suite -d], [0], [ignore])
|
||||||
AT_CHECK([cd suite.dir/1 && ./run top_srcdir="$wd"], [0], [ignore], [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_SETUP([unusual file names])
|
||||||
AT_KEYWORDS([autotest])
|
|
||||||
|
|
||||||
AT_DATA_M4SUGAR([d@&t@nl.at],
|
AT_DATA_M4SUGAR([d@&t@nl.at],
|
||||||
[[AT_SETUP([test one])
|
[[AT_SETUP([test one])
|
||||||
@ -746,16 +736,10 @@ AT_CHECK([test "]m4_dquote(AT_LINE)[" = "two spaces.at:2"])
|
|||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
]])
|
]])
|
||||||
|
|
||||||
AT_DATA([suite.at],
|
AT_CHECK_AT_PREP([suite],
|
||||||
[[m4_define([AT_PACKAGE_NAME], [GNU Nonsense])
|
[[AT_INIT([suite to check included file names])
|
||||||
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])
|
|
||||||
m4@&t@_include([d][nl.at])
|
m4@&t@_include([d][nl.at])
|
||||||
m4@&t@_include([sub/two spaces.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_CHECK([$CONFIG_SHELL ./suite], [0], [ignore])
|
||||||
AT_CLEANUP
|
AT_CLEANUP
|
||||||
|
Loading…
Reference in New Issue
Block a user