* doc/autoconf.texi (Particular Programs, Limitations of Usual Tools):
[autoconf/tsuna.git] / tests / tools.at
blobc4a141be3af5007ed2cfb64b898ac517cde65240
1 #                                                       -*- Autotest -*-
3 AT_BANNER([Executables (autoheader, autoupdate...).])
5 # Copyright (C) 2000, 2001, 2003, 2004, 2006 Free Software Foundation, Inc.
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 2, or (at your option)
10 # any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with this program; if not, write to the Free Software
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 # 02110-1301, USA.
23 ## ----------------------------- ##
24 ## Syntax of the shell scripts.  ##
25 ## ----------------------------- ##
27 # We use `/bin/sh -n script' to check that there are no syntax errors
28 # in the scripts.  Although incredible, there are /bin/sh that go into
29 # endless loops with `-n', e.g., SunOS's:
31 #   $ uname -a
32 #   SunOS ondine 4.1.3 2 sun4m unknown
33 #   $ cat endless.sh
34 #   while false
35 #   do
36 #     :
37 #   done
38 #   exit 0
39 #   $ time sh endless.sh
40 #   sh endless.sh  0,02s user 0,03s system 78% cpu 0,064 total
41 #   $ time sh -nx endless.sh
42 #   ^Csh -nx endless.sh  3,67s user 0,03s system 63% cpu 5,868 total
44 # So before using `/bin/sh -n' to check our scripts, we first check
45 # that `/bin/sh -n' is not broken to death.
47 AT_SETUP([Syntax of the shell scripts])
49 AT_CHECK([test "$ac_cv_sh_n_works" = yes || exit 77])
51 # Specify the absolute name of the tool, as some shells don't honor PATH when
52 # running `sh PROG'.
54 AT_CHECK_SHELL_SYNTAX([$abs_top_builddir/bin/autoconf])
55 AT_CHECK_SHELL_SYNTAX([$abs_top_builddir/tests/autoconf])
56 AT_CHECK_SHELL_SYNTAX([$abs_top_builddir/tests/testsuite])
58 # These are not built, they are in the src tree.
59 AT_CHECK_SHELL_SYNTAX([$abs_top_srcdir/config/install-sh])
60 AT_CHECK_SHELL_SYNTAX([$abs_top_srcdir/config/mkinstalldirs])
61 AT_CHECK_SHELL_SYNTAX([$abs_top_srcdir/config/missing])
63 AT_CLEANUP
68 ## ---------------------------- ##
69 ## Syntax of the Perl scripts.  ##
70 ## ---------------------------- ##
72 AT_SETUP([Syntax of the Perl scripts])
74 AT_CHECK_PERL_SYNTAX([autoheader])
75 AT_CHECK_PERL_SYNTAX([autom4te])
76 AT_CHECK_PERL_SYNTAX([autoreconf])
77 AT_CHECK_PERL_SYNTAX([autoscan])
78 AT_CHECK_PERL_SYNTAX([autoupdate])
79 AT_CHECK_PERL_SYNTAX([ifnames])
81 AT_CLEANUP
86 ## ------------------ ##
87 ## autom4te's cache.  ##
88 ## ------------------ ##
90 AT_SETUP([autom4te cache])
92 AT_DATA_M4SUGAR([[script.4s]],
93 [[m4_include([foo])
94 ]])
96 # Everything is OK.
97 touch foo
98 AT_CHECK_M4SUGAR
100 # We moved a file: it should fail
101 mkdir sub
102 mv foo sub
103 AT_CHECK_M4SUGAR([], [1], [],
104 [m4: script.4s: 1: Cannot open foo: No such file or directory
105 autom4te: m4 failed with exit status: 1
108 # But if we change the main file, then we should no longer complain of
109 # missing files.
110 AT_DATA_M4SUGAR([[script.4s]],
111 [[m4_include([sub/foo])
113 AT_CHECK_M4SUGAR
115 AT_CLEANUP
120 ## ------------------ ##
121 ## autoconf --trace.  ##
122 ## ------------------ ##
125 # autoconf --trace: user macros
126 # -----------------------------
127 AT_SETUP([autoconf --trace: user macros])
129 AT_DATA([configure.ac],
130 [[m4_define([active], [ACTIVE])
131 m4_define([TRACE1], [TRACE2(m4_shift($@))])
132 m4_define([TRACE2], [[$2], $1])
134 # No arguments.
135 TRACE1
136 TRACE2
138 # With arguments, single line.
139 TRACE1(foo, @bar, @baz)
140 TRACE1(foo, TRACE1(bar, baz))
141 TRACE1(foo, active, baz)
142 TRACE1(foo, [active], TRACE1(active, [active]))
144 # With arguments, multiple lines.
145 TRACE1(foo
146 bar,
148 foo)
151 # Several --traces.
152 AT_CHECK_AUTOCONF([-t TRACE1 -t TRACE2], 0,
153 [[configure.ac:6:TRACE1:
154 configure.ac:6:TRACE2:
155 configure.ac:7:TRACE2:
156 configure.ac:10:TRACE1:foo:@bar:@baz
157 configure.ac:10:TRACE2:@bar:@baz
158 configure.ac:11:TRACE1:bar:baz
159 configure.ac:11:TRACE2:baz
160 configure.ac:11:TRACE1:foo::baz
161 configure.ac:11:TRACE2::baz
162 configure.ac:12:TRACE1:foo:ACTIVE:baz
163 configure.ac:12:TRACE2:ACTIVE:baz
164 configure.ac:13:TRACE1:ACTIVE:active
165 configure.ac:13:TRACE2:active
166 configure.ac:13:TRACE1:foo:active::ACTIVE
167 configure.ac:13:TRACE2:active::ACTIVE
168 configure.ac:19:TRACE1:foo bar:bar foo
169 configure.ac:19:TRACE2:bar foo
172 # Several line requests.
173 AT_CHECK_AUTOCONF([[-t TRACE1:'
174 [$1], [$2], [$3].']], 0,
176 [], [], [].
178 [foo], [@bar], [@baz].
180 [bar], [baz], [].
182 [foo], [], [baz].
184 [foo], [ACTIVE], [baz].
186 [ACTIVE], [active], [].
188 [foo], [active], [].
190 [foo
191 bar], [bar
192 foo], [].
195 # ${sep}@.
196 AT_CHECK_AUTOCONF([-t TRACE2:'${)===(}@'], 0,
197 [[[]
199 [@bar])===([@baz]
200 [baz]
201 [])===([baz]
202 [ACTIVE])===([baz]
203 [active]
204 [active])===([])===([ACTIVE]
205 [bar
206 foo]
209 AT_CLEANUP
212 # autoconf --trace: builtins
213 # --------------------------
214 AT_SETUP([autoconf --trace: builtins])
216 AT_DATA([configure.ac],
217 [[define([active], [ACTIVE])
220 AT_CHECK_AUTOCONF([[-t define | sed -n '$p']],
221          0,
222 [[configure.ac:1:define:active:ACTIVE
225 # FIXME: Without `$1' the following test dies.  Groumphf, once again to
226 # dive into obscure feature interaction...
227 # Note that using `-i' means we need the *.m4 files, not the *.m4f files,
228 # hence we need srcdir, not builddir.
229 AT_CHECK_AUTOCONF([[-t define:'$1' -i| sed -n '$p']],
230          0,
231 [[active
234 AT_CLEANUP
238 ## ---------------------------- ##
239 ## autoconf: forbidden tokens.  ##
240 ## ---------------------------- ##
243 # autoconf: forbidden tokens, basic
244 # ---------------------------------
245 AT_SETUP([autoconf: forbidden tokens, basic])
247 AT_DATA_M4SH([configure.ac],
248 [[AS_INIT
249 m4_foo
250 _m4_bar
251 AS_FOO
252 _AS_BAR
253 [dnl]
256 AT_DATA_M4SH([experr],
257 [[configure.ac:2: error: possibly undefined macro: m4_foo
258       If this token and others are legitimate, please use m4_pattern_allow.
259       See the Autoconf documentation.
260 configure.ac:3: error: possibly undefined macro: _m4_bar
261 configure.ac:4: error: possibly undefined macro: AS_FOO
262 configure.ac:5: error: possibly undefined macro: _AS_BAR
263 configure.ac:6: error: possibly undefined macro: dnl
266 AT_CHECK_AUTOCONF([], 1, [], experr)
268 AT_CLEANUP
271 # autoconf: forbidden tokens, exceptions
272 # --------------------------------------
273 AT_SETUP([autoconf: forbidden tokens, exceptions])
275 AT_DATA_M4SH([configure.ac],
276 [[AS_INIT
278 # This is allowed in spite of the name.
279 # It is on purpose that we check the case where there are several
280 # tokens on the same line.
281 m4_pattern_allow([^AS_ALLOWED$])
282 NOT_AS_ALLOWED AS_ALLOWED AS_ALLOWED_NOT
284 # Test forbidding.
285 m4_pattern_forbid([^FORBIDDEN$])
286 NOT_FORBIDDEN FORBIDDEN FORBIDDEN_NOT
288 # Test Autoconf's patterns.
289 AS_THIS_IS_INVALID and _AS_THIS_IS_INVALID_TOO
290 BUT_AZ_THIS_IS_NOT ALTHOUGH_AS_THIS_IS
291 # This is legal, although there is `AS_DEFINE' in there.
292 BAS_DEFINE
293 # AS_THIS_IS_A_COMMENT so just shut up.
294 It would be very bad if Autoconf forgot to expand [AS_]INIT!
297 AT_DATA_M4SH([experr],
298 [[configure.ac:1: error: possibly undefined macro: AS_INIT
299       If this token and others are legitimate, please use m4_pattern_allow.
300       See the Autoconf documentation.
301 configure.ac:7: error: possibly undefined macro: AS_ALLOWED_NOT
302 configure.ac:10: error: possibly undefined macro: FORBIDDEN
303 configure.ac:14: error: possibly undefined macro: AS_THIS_IS_INVALID
304 configure.ac:14: error: possibly undefined macro: _AS_THIS_IS_INVALID_TOO
307 AT_CHECK_AUTOCONF([], 1, [], [experr])
309 AT_CLEANUP
312 # autoconf: automatically allowed tokens
313 # --------------------------------------
314 AT_SETUP([autoconf: automatically alowed tokens])
316 AT_DATA_M4SH([configure.ac],
317 [[AC_INIT
318 m4_pattern_forbid([^FB_])
319 AC_DEFINE([FB_ONE])
320 AC_SUBST([FB_TWO])
321 AC_OUTPUT
324 AT_CHECK_AUTOCONF
326 AT_CLEANUP
329 # autoconf: subdirectories
330 # --------------------------------------
331 AT_SETUP([autoconf: subdirectories])
333 AT_DATA([configure.ac],
334 [[AC_INIT
335 AC_PROG_MKDIR_P
336 AC_CONFIG_FILES(sub/foo)
337 AC_OUTPUT
340 mkdir sub
342 AT_DATA([sub/foo.in],
343 [[@MKDIR_P@
346 AT_DATA([install-sh])
348 AT_CHECK_AUTOCONF
349 AT_CHECK_CONFIGURE
350 AT_CHECK([[grep '^[^/].*/mkdir -p' sub/foo]], 1)
352 AT_CLEANUP
358 ## --------- ##
359 ## ifnames.  ##
360 ## --------- ##
362 AT_SETUP([ifnames])
364 AT_DATA([iftest1.c],
365 [[#ifdef DEF1
366 #ifndef DEF2
367 #if ! defined DEF3 && defined DEF4 /* but not defined DEF5 */
368     # if SPACES
369         #       if      TABS
370 /* #if C_COMMENTS */
371 // #if CXX_COMMENTS
372 #if LINE1 = \
373 LINE2
374 #if (VAL1*VAL2)==VAL3+VAL4 /* Not VAL5 !!! */
377 AT_DATA([iftest2.c],
378 [[#ifdef IFTEST2
379 #if VAL1
382 AT_CHECK([ifnames iftest1.c iftest2.c], 0,
383 [DEF1 iftest1.c
384 DEF2 iftest1.c
385 DEF3 iftest1.c
386 DEF4 iftest1.c
387 IFTEST2 iftest2.c
388 LINE1 iftest1.c
389 LINE2 iftest1.c
390 SPACES iftest1.c
391 TABS iftest1.c
392 VAL1 iftest1.c iftest2.c
393 VAL2 iftest1.c
394 VAL3 iftest1.c
395 VAL4 iftest1.c
396 ], [])
398 AT_CLEANUP
402 ## ------------ ##
403 ## autoheader.  ##
404 ## ------------ ##
406 # autoheader is intensively used in its modern form throughout this
407 # test suite.  But we also have to check that acconfig.h still works.
408 # autoheader uses autoconf --trace, so traces first.
410 AT_SETUP([autoheader])
412 AT_DATA([acconfig.h],
413 [[/* Define this to whatever you want. */
414 #undef this
418 # 1. Check that `acconfig.h' is still honored.
419 AT_DATA([configure.ac],
420 [[AC_INIT
421 AC_CONFIG_HEADERS(config.h:config.hin)
422 AC_DEFINE(this, "whatever you want.")
425 AT_CHECK_AUTOHEADER([], [], [], [ignore])
426 AT_CHECK([cat config.hin], 0,
427 [[/* config.hin.  Generated from configure.ac by autoheader.  */
428 /* Define this to whatever you want. */
429 #undef this
431 /* Define to the address where bug reports for this package should be sent. */
432 #undef PACKAGE_BUGREPORT
434 /* Define to the full name of this package. */
435 #undef PACKAGE_NAME
437 /* Define to the full name and version of this package. */
438 #undef PACKAGE_STRING
440 /* Define to the one symbol short name of this package. */
441 #undef PACKAGE_TARNAME
443 /* Define to the version of this package. */
444 #undef PACKAGE_VERSION
448 # 2. Check that missing templates are a fatal error.
449 AT_DATA([configure.ac],
450 [[AC_INIT
451 AC_CONFIG_HEADERS(config.h:config.hin)
452 AC_DEFINE(that, "whatever you want.")
455 # The test suite goes too fast for the cache time stamps...
456 # Pass --force.
457 AT_CHECK_AUTOHEADER([--force], [1], [], [ignore])
460 # 3. Check TOP and BOTTOM.
461 AT_DATA([acconfig.h],
462 [[/* Top from acconfig.h. */
463 @TOP@
464 /* Middle from acconfig.h. */
465 @BOTTOM@
466 /* Bottom from acconfig.h. */
469 AT_DATA([configure.ac],
470 [[AC_INIT
471 AC_CONFIG_HEADERS(config.h:config.hin)
472 AH_TOP([Top1 from configure.ac.])
473 AH_TOP([Top2 from configure.ac.])
474 AH_TOP([The Cat in a h@t.])
475 AH_VERBATIM([Middle], [Middle from configure.ac.])
476 AH_VERBATIM([Mouse],  [The Mouse in a h@t.])
477 AH_BOTTOM([Bottom1 from configure.ac.])
478 AH_BOTTOM([Bottom2 from configure.ac.])
479 AH_BOTTOM([The Dog in a h@t.])
481 AC_DEFINE([ANT], [@], [The Ant in a h@t.])
485 # Yes, that's right: the `middle' part of `acconfig.h' is still before
486 # the AH_TOP part.  But so what, you're not supposed to use the two
487 # together.
488 # Ignore STDERR which is the longuish complaint against autoheader junk
489 # files.
490 AT_CHECK_AUTOHEADER([--force], [], [], [ignore])
491 AT_CHECK([cat config.hin], 0,
492 [[/* config.hin.  Generated from configure.ac by autoheader.  */
493 /* Top from acconfig.h. */
494 /* Middle from acconfig.h. */
496 Top1 from configure.ac.
498 Top2 from configure.ac.
500 The Cat in a h@t.
502 /* The Ant in a h@t. */
503 #undef ANT
505 Middle from configure.ac.
507 The Mouse in a h@t.
509 /* Define to the address where bug reports for this package should be sent. */
510 #undef PACKAGE_BUGREPORT
512 /* Define to the full name of this package. */
513 #undef PACKAGE_NAME
515 /* Define to the full name and version of this package. */
516 #undef PACKAGE_STRING
518 /* Define to the one symbol short name of this package. */
519 #undef PACKAGE_TARNAME
521 /* Define to the version of this package. */
522 #undef PACKAGE_VERSION
524 Bottom1 from configure.ac.
526 Bottom2 from configure.ac.
528 The Dog in a h@t.
529 /* Bottom from acconfig.h. */
532 AT_CLEANUP
537 ## ------------ ##
538 ## autoupdate.  ##
539 ## ------------ ##
541 # Check that AC_CANONICAL_SYSTEM and AC_OUTPUT are properly updated.
542 AT_SETUP([autoupdate])
544 AT_DATA([configure.ac],
545 [[AC_INIT(Test, 1.0)
546 AC_CANONICAL_SYSTEM
547 # The doc says 27 is a valid fubar.
548 fubar=27
549 AC_OUTPUT(Makefile, echo $fubar, fubar=$fubar)
552 AT_DATA([expout],
553 [[AC_INIT([Test],[1.0])
554 AC_CANONICAL_TARGET
555 # The doc says 27 is a valid fubar.
556 fubar=27
557 AC_CONFIG_FILES([Makefile])
558 AC_CONFIG_COMMANDS([default],[echo $fubar],[fubar=$fubar])
559 AC_OUTPUT
562 # Checking `autoupdate'.
563 AT_CHECK_AUTOUPDATE
564 AT_CHECK([cat configure.ac], 0, [expout])
565 # Checking that `autoupdate' is idempotent
566 AT_CHECK_AUTOUPDATE
567 AT_CHECK([cat configure.ac], 0, [expout])
569 AT_CLEANUP(configure.ac~)
572 # autoupdating AC_LINK_FILES
573 # --------------------------
574 AT_SETUP([autoupdating AC_LINK_FILES])
576 AT_DATA([configure.ac],
577 [[AC_INIT
578 AC_LINK_FILES(dst1 dst2, src1 src2)
579 AC_OUTPUT
582 AT_DATA([dst1], dst1
584 AT_DATA([dst2], dst2
587 # Checking `autoupdate'.
588 AT_CHECK_AUTOUPDATE([], 0, [], ignore)
589 AT_CHECK_AUTOCONF
590 AT_CHECK_CONFIGURE
591 AT_CHECK([cat src1], 0, [dst1
593 AT_CHECK([cat src2], 0, [dst2
596 AT_CLEANUP(src1 src2 configure.ac~)
599 # autoupdating AC_PREREQ
600 # ----------------------
601 AT_SETUP([autoupdating AC_PREREQ])
603 # Produce `AC_PREREQ(<AUTOUPDATE VERSION>)'.
604 AT_CHECK([autoupdate --version | sed 's/.*) //;q'], 0, [stdout])
605 autoupdate_version=`cat stdout`
606 echo "AC_PREREQ($autoupdate_version)" >expout
608 AT_CHECK([echo "AC_PREREQ(1.0)" | autoupdate -],
609          0, [expout], [])
611 AT_CHECK([echo "AC_PREREQ($autoupdate_version)" | autoupdate -],
612          0, [expout], [])
614 AT_CHECK([echo "AC_PREREQ(999.99)" | autoupdate -],
615          63, [], [ignore])
617 AT_CLEANUP
620 # autoupdating AU_ALIAS
621 # ---------------------
622 AT_SETUP([autoupdating AU_ALIAS])
624 AT_DATA([configure.ac],
625 [[AC_INIT
626 AC_DEFUN([FOO], [$#])
627 AU_ALIAS([BAZ],[FOO])
628 test "FOO:FOO():FOO(x) BAZ:BAZ():BAZ(x)" = "0:1:1 0:1:1" || exit 1
629 AC_PROG_CC
630 AC_STDC_HEADERS
631 AC_OUTPUT
634 # Checking `autoupdate'.
635 AT_CHECK_AUTOUPDATE
636 AT_CHECK_AUTOCONF
637 AT_CHECK_CONFIGURE
638 AT_CHECK([grep 'AC_HEADER_STDC(' configure.ac], 1, [ignore], [ignore])
639 AT_CHECK([grep 'AC_HEADER_STDC' configure.ac], 0, [ignore], [ignore])
641 AT_CLEANUP
644 # autoupdating OLD to NEW
645 # -----------------------
647 # The example taken from the code comments.
648 AT_SETUP([autoupdating OLD to NEW])
650 AT_DATA([aclocal.m4],
651 [[AU_DEFUN([OLD], [NEW([$1, $2], m4@&t@_eval([$1 + $2]))])
652 AC_DEFUN([NEW], [echo "sum($1) = $2"])
655 AT_DATA([configure.ac],
656 [[AC_INIT
657 OLD(1, 2)
658 NEW([0, 0], [0])
661 # Checking `autoupdate'.
662 AT_CHECK_AUTOUPDATE
663 AT_CHECK_AUTOCONF
664 AT_CHECK_CONFIGURE
665 AT_CHECK([[grep 'NEW(\[1, 2], *\[3])' configure.ac]], 0, [ignore], [ignore])
666 AT_CHECK([[grep 'NEW(\[0, 0], *\[0])' configure.ac]], 0, [ignore], [ignore])
668 AT_CLEANUP
671 # autoupdating AC_HELP_STRING
672 # ---------------------------
673 AT_SETUP([autoupdating AC_HELP_STRING])
675 AT_DATA([configure.ac],
676 [[AC_INIT
677 AC_ARG_ENABLE([foo], [AC_HELP_STRING([--enable-foo], [foo bar])], [:], [:])
680 # Checking `autoupdate'.
681 AT_CHECK_AUTOUPDATE([], [], [], [ignore])
682 AT_CHECK_AUTOCONF
683 AT_CHECK_CONFIGURE([], [], [], [ignore])
684 AT_CHECK([[grep '\[--enable-foo], *\[foo bar]' configure.ac]], 0, [ignore], [ignore])
686 AT_CLEANUP
689 # autoupdating with m4sugar
690 # -------------------------
691 AT_SETUP([autoupdating with m4sugar])
693 AT_DATA([aclocal.m4],
694 [[AU_DEFUN([OLD],
695 [m4@&t@_pushdef([foo], [bar])dn@&t@l
696 echo "foo $1 foo"
697 m4@&t@_popdef([foo])dn@&t@l
701 touch foo.in
703 AT_DATA([configure.ac],
704 [[AC_PREREQ(2.54)
705 m4_define([gnumeric_version_epoch], [1])
706 AC_INIT
707 OLD([ bla  bla ])
708 AC_FOREACH([name], [n1 n2],
709            [echo name
711 AC_CHECKING([for feature])
712 AC_MSG_RESULT_UNQUOTED([`echo done`])
714 AC_OUTPUT([foo])
717 # Checking `autoupdate'.
718 AT_CHECK_AUTOUPDATE([], [], [], [ignore])
719 AT_CHECK_AUTOCONF
720 AT_CHECK_CONFIGURE([], [], [], [ignore])
722 AT_CLEANUP
725 # autoupdating AC_LANG_SAVE
726 # -------------------------
727 AT_SETUP([autoupdating AC_LANG_SAVE])
729 AT_DATA([configure.ac],
730 [[AC_INIT
731 AC_LANG_SAVE
732 AC_LANG_RESTORE
733 AC_LANG_SAVE
734 AC_LANG_RESTORE
737 # Checking `autoupdate'.
738 AT_CHECK_AUTOUPDATE([], [], [], [ignore])
739 AT_CHECK_AUTOCONF
740 AT_CHECK_CONFIGURE([], [], [], [ignore])
742 AT_CLEANUP
745 # autoupdating AC_FOREACH
746 # -----------------------
747 AT_SETUP([autoupdating AC_FOREACH])
749 AT_DATA([aclocal.m4],
750 [[AU_DEFUN([OLD], [AC_FOREACH([myvar], [4 5 6], [' myvar'])])
753 AT_DATA([configure.ac],
754 [[AC_INIT
755 echo AC_FOREACH([myvar], [1 2 3], [' myvar'])OLD
758 # Checking `autoupdate'.
759 AT_CHECK_AUTOUPDATE
760 AT_CHECK([[grep 'echo 1 2 3 4 5 6' configure.ac]], 1, [ignore], [ignore])
761 AT_CHECK([[grep 'm4@&t@_foreach_w' configure.ac]], 0, [ignore], [ignore])
762 AT_CHECK_AUTOCONF
763 AT_CHECK_CONFIGURE([], [0], [stdout])
764 AT_CHECK([[grep ' 1 2 3 4 5 6' stdout]], 0, [ignore], [ignore])
766 AT_CLEANUP
769 # autoupdating with aclocal and m4_include
770 # ----------------------------------------
771 AT_SETUP([autoupdating with aclocal and m4@&t@_include])
773 # We use aclocal.
774 AT_CHECK([aclocal --version || exit 77], [], [ignore], [ignore])
776 mkdir m4 aclocal
777 AT_DATA([configure.in],
778 [[AC_INIT(x,0)
779 AC_UNCHANGED_MACRO
780 AC_OLD_MACRO
781 AC_OUTPUT
783 AT_DATA([m4/stuff.m4],
784 [[AU_ALIAS([AC_OLD_MACRO], [AC_NEW_MACRO])
785 AC_DEFUN([AC_NEW_MACRO], [echo hi])
786 AC_DEFUN([AC_UNCHANGED_MACRO], [echo one])
788 cp m4/stuff.m4 aclocal/stuff.m4
789 AT_CHECK([aclocal -I aclocal], [0], [ignore], [ignore])
790 # Checking `autoupdate'.
791 AT_CHECK_AUTOUPDATE
792 AT_CHECK([aclocal -I m4], [0], [ignore], [ignore])
793 AT_CHECK_AUTOUPDATE
795 AT_CLEANUP