[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Creating autotest testsuite gets stuck if package.m4.in contains unr
From: |
Ralf Wildenhues |
Subject: |
Re: Creating autotest testsuite gets stuck if package.m4.in contains unresolved substitutions |
Date: |
Wed, 24 Feb 2010 20:30:30 +0100 |
User-agent: |
Mutt/1.5.20 (2009-10-28) |
Hello Niels,
* Niels Lohmann wrote on Tue, Feb 09, 2010 at 08:19:31AM CET:
> > The @ inside the address should not cause any problems.
>
> indeed, it's not. When I use m4_define for the bug address, then I get
> the same error for AT_PACKAGE_STRING.
>
> > Please check
> > again and provide us with something reproducible, or at least cut and
> > pasted commands+output that show that this is problematic.
>
> Here is the output I get when I execute "make testsuite" for the attached
> tarball:
>
> -------------------------------------------------------------------------------
> /bin/sh /Users/niels/test/missing --run autom4te --language=autotest -I '.'
> -o testsuite.tmp testsuite.at
> testsuite.at:1: error: : AT_PACKAGE_BUGREPORT is missing, consider writing
> package.m4
> testsuite.at:1: the top level
> autom4te: /opt/local/bin/gm4 failed with exit status: 1
> -------------------------------------------------------------------------------
>
> testsuite.at:1 is just "AT_INIT".
Your example needed some adaptation, but you're completely right about
the issue. autoconf/lib/autotest/general.m4:AT_INIT has
[m4_ifndef([AT_PACKAGE_BUGREPORT], [m4_fatal(
[$1: AT_PACKAGE_BUGREPORT is missing, consider writing package.m4])])]
[m4_define([AT_TESTSUITE_NAME],
m4_defn([AT_PACKAGE_STRING])[ test suite]m4_ifval([$1],
[m4_expand([: $1])]))]
which requires both AT_PACKAGE_STRING and AT_PACKAGE_BUGREPORT to be
defined as macros, not as shell variables. Sorry about the wrong
advice there. The manual documents this requirement, too:
-- Macro: AT_INIT ([NAME])
Initialize Autotest. Giving a NAME to the test suite is
encouraged if your package includes several test suites. Before
this macro is called, `AT_PACKAGE_STRING' and
`AT_PACKAGE_BUGREPORT' must be defined, which are used to display
information about the testsuite to the user. Typically, these
macros are provided by a file `package.m4' built by `make' (*note
Making testsuite Scripts::), in order to inherit the package name,
version, and bug reporting address from `configure.ac'.
I'm not sure whether this can easily be relaxed to require either a
m4_define or a shell variable, but as it stands, the code matches the
documentation, regardless of my earlier babble. ;-)
Cheers,
Ralf
Re: Creating autotest testsuite gets stuck if package.m4.in contains unresolved substitutions, Eric Blake, 2010/02/06