Ben Elliston wrote:
On Wed, Nov 21, 2018 at 10:33:04PM -0600, Jacob Bachmeyer wrote:
As part of the ongoing efforts to improve Automake integration, [...]
Can you please elaborate on what you mean by Automake integration in
this context? To my mind, the Dejagnu Makefile and testsuite should
use the standard Automake hooks for DejaGnu testsuites as much as
possible. Looking at Makefile.am, it doesn't seem like there's a lot
of bad hacks there?
This is the ongoing issue of site.exp. (That there are both local and
global "site.exp" files adds confusion.) Automake generates a site.exp
that sets srcdir to @srcdir@ and the DejaGnu testsuite overrides that in
RUNTESTDEFAULTFLAGS. Needing to specify RUNTESTDEFAULTFLAGS is the
hack, since it reveals a mismatch between Automake's $srcdir and
DejaGnu's $srcdir, but those variables should have the same meaning as I
thought had been confirmed in
<URL:http://lists.gnu.org/archive/html/bug-dejagnu/2018-11/msg00007.html>.
Do I misunderstand?
The problem is that overriding srcdir on the command line has
limitations if site.exp also sets srcdir. In particular, there is an
interval between loading site.exp and parsing the command line for the
second time. During this time, DejaGnu loads the various configuration
files (and its own libraries) using values from configuration files
before restoring settings from the command line.
Automake sets @srcdir@ to the directory containing testsuite/ which is
the "tool's source directory". The DejaGnu testsuite overrides
RUNTESTDEFAULTFLAGS to add "--srcdir $(srcdir)/testsuite" which caused
problems with locating the tool init files and is ugly. Interestingly,
if DejaGnu used recursive make and I understand the Automake manual
correctly, the value of @srcdir@ would include testsuite/, if DejaGnu
were to be run in @objdir@/testsuite. However, the DejaGnu makefiles
are simpler than that and the DejaGnu testsuite is run at top-level in
the build tree, so @srcdir@ is the top-level source directory when the
testsuite is run.
Once this is fixed and DejaGnu uses Automake's value of $srcdir, there
will no longer be a need to specify RUNTEST on the runtest command line
either: it can default to ${srcdir}/runtest in
testsuite/lib/runtest.exp. (And I will need to add documenting the two
primary options for running DejaGnu -- at top-level or in the top
testsuite/ directory -- to my local TODO list. There is a third option,
of course: specify all of srcdir, objdir, and outdir, either on the
command line or in ./site.exp (or, more precisely, "the local init
file") in whatever directory DejaGnu is started.)
-- Jacob
_______________________________________________
DejaGnu mailing list
DejaGnu@gnu.org
https://lists.gnu.org/mailman/listinfo/dejagnu