automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Automake testsuite misuses DejaGnu [PATCH v0]


From: Jacob Bachmeyer
Subject: Re: Automake testsuite misuses DejaGnu [PATCH v0]
Date: Mon, 12 Jul 2021 23:31:40 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.22) Gecko/20090807 MultiZilla/1.8.3.4e SeaMonkey/1.1.17 Mnenhy/0.7.6.0

Jim Meyering wrote:
[...]
Even a sample fix for one of the currently-failing tests would be helpful.

This is the first draft; this patch breaks 1.6.1 because versions of DejaGnu prior to 1.6.3 require srcdir to point exactly to the testsuite, while 1.6.3 allows the testsuite to be in ${srcdir}/testsuite.

8<------
diff -urN -x '*~' automake-1.16.3-original/t/check12.sh 
automake-1.16.3/t/check12.sh
--- automake-1.16.3-original/t/check12.sh       2020-11-18 19:21:03.000000000 
-0600
+++ automake-1.16.3/t/check12.sh        2021-06-29 01:47:21.669276386 -0500
@@ -60,8 +60,8 @@
DEJATOOL = hammer spanner
AM_RUNTESTFLAGS = HAMMER=$(srcdir)/hammer SPANNER=$(srcdir)/spanner
EXTRA_DIST += $(DEJATOOL)
-EXTRA_DIST += hammer.test/hammer.exp
-EXTRA_DIST += spanner.test/spanner.exp
+EXTRA_DIST += testsuite/hammer.test/hammer.exp
+EXTRA_DIST += testsuite/spanner.test/spanner.exp
END

cat > hammer << 'END'
@@ -77,9 +77,10 @@
END
chmod +x hammer spanner

-mkdir hammer.test spanner.test
+mkdir testsuite
+mkdir testsuite/hammer.test testsuite/spanner.test

-cat > hammer.test/hammer.exp << 'END'
+cat > testsuite/hammer.test/hammer.exp << 'END'
set test test_hammer
spawn $HAMMER
expect {
@@ -88,7 +89,7 @@
}
END

-cat > spanner.test/spanner.exp << 'END'
+cat > testsuite/spanner.test/spanner.exp << 'END'
set test test_spanner
spawn $SPANNER
expect {
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu3.sh 
automake-1.16.3/t/dejagnu3.sh
--- automake-1.16.3-original/t/dejagnu3.sh      2020-11-18 19:21:03.000000000 
-0600
+++ automake-1.16.3/t/dejagnu3.sh       2021-06-29 01:19:19.161147525 -0500
@@ -34,12 +34,13 @@
AUTOMAKE_OPTIONS = dejagnu
DEJATOOL = hammer
AM_RUNTESTFLAGS = HAMMER=$(srcdir)/hammer
-EXTRA_DIST = hammer hammer.test/hammer.exp
+EXTRA_DIST = hammer testsuite/hammer.test/hammer.exp
END

-mkdir hammer.test
+mkdir testsuite
+mkdir testsuite/hammer.test

-cat > hammer.test/hammer.exp << 'END'
+cat > testsuite/hammer.test/hammer.exp << 'END'
set test test
spawn $HAMMER
expect {
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu4.sh 
automake-1.16.3/t/dejagnu4.sh
--- automake-1.16.3-original/t/dejagnu4.sh      2020-11-18 19:21:03.000000000 
-0600
+++ automake-1.16.3/t/dejagnu4.sh       2021-06-29 01:25:08.309780437 -0500
@@ -49,13 +49,14 @@

AM_RUNTESTFLAGS = HAMMER=$(srcdir)/hammer SPANNER=$(srcdir)/spanner

-EXTRA_DIST  = hammer  hammer.test/hammer.exp
-EXTRA_DIST += spanner spanner.test/spanner.exp
+EXTRA_DIST  = hammer  testsuite/hammer.test/hammer.exp
+EXTRA_DIST += spanner testsuite/spanner.test/spanner.exp
END

-mkdir hammer.test spanner.test
+mkdir testsuite
+mkdir testsuite/hammer.test testsuite/spanner.test

-cat > hammer.test/hammer.exp << 'END'
+cat > testsuite/hammer.test/hammer.exp << 'END'
set test test
spawn $HAMMER
expect {
@@ -64,7 +65,7 @@
}
END

-cat > spanner.test/spanner.exp << 'END'
+cat > testsuite/spanner.test/spanner.exp << 'END'
set test test
spawn $SPANNER
expect {
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu5.sh 
automake-1.16.3/t/dejagnu5.sh
--- automake-1.16.3-original/t/dejagnu5.sh      2020-11-18 19:21:03.000000000 
-0600
+++ automake-1.16.3/t/dejagnu5.sh       2021-06-29 01:26:36.511645792 -0500
@@ -34,12 +34,13 @@

cat > Makefile.am << END
AUTOMAKE_OPTIONS = dejagnu
-EXTRA_DIST = $package $package.test/$package.exp
+EXTRA_DIST = $package testsuite/$package.test/$package.exp
AM_RUNTESTFLAGS = PACKAGE=\$(srcdir)/$package
END

-mkdir $package.test
-cat > $package.test/$package.exp << 'END'
+mkdir testsuite
+mkdir testsuite/$package.test
+cat > testsuite/$package.test/$package.exp << 'END'
set test "a_dejagnu_test"
spawn $PACKAGE
expect {
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu6.sh 
automake-1.16.3/t/dejagnu6.sh
--- automake-1.16.3-original/t/dejagnu6.sh      2020-11-18 19:21:03.000000000 
-0600
+++ automake-1.16.3/t/dejagnu6.sh       2021-06-29 01:28:07.151396859 -0500
@@ -35,8 +35,9 @@
AM_RUNTESTFLAGS = FAILDEJA=$(srcdir)/faildeja
END

-mkdir faildeja.test
-cat > faildeja.test/faildeja.exp << 'END'
+mkdir testsuite
+mkdir testsuite/faildeja.test
+cat > testsuite/faildeja.test/faildeja.exp << 'END'
set test failing_deja_test
spawn $FAILDEJA
expect {
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu7.sh 
automake-1.16.3/t/dejagnu7.sh
--- automake-1.16.3-original/t/dejagnu7.sh      2020-11-18 19:21:03.000000000 
-0600
+++ automake-1.16.3/t/dejagnu7.sh       2021-06-29 01:29:38.877097021 -0500
@@ -39,8 +39,9 @@
AM_RUNTESTFLAGS = --status FAILTCL=$(srcdir)/failtcl
END

-mkdir failtcl.test
-cat > failtcl.test/failtcl.exp << 'END'
+mkdir testsuite
+mkdir testsuite/failtcl.test
+cat > testsuite/failtcl.test/failtcl.exp << 'END'
set test test
spawn $FAILTCL
expect {
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu-absolute-builddir.sh 
automake-1.16.3/t/dejagnu-absolute-builddir.sh
--- automake-1.16.3-original/t/dejagnu-absolute-builddir.sh     2020-11-18 
19:21:03.000000000 -0600
+++ automake-1.16.3/t/dejagnu-absolute-builddir.sh      2021-06-29 
01:36:15.647497570 -0500
@@ -27,12 +27,13 @@
cat > Makefile.am << 'END'
AUTOMAKE_OPTIONS = dejagnu
DEJATOOL = tcl env
-EXTRA_DIST = tcl.test/tcl.exp
+EXTRA_DIST = testsuite/tcl.test/tcl.exp
END

-mkdir tcl.test
+mkdir testsuite
+mkdir testsuite/tcl.test

-cat > tcl.test/tcl.exp << 'END'
+cat > testsuite/tcl.test/tcl.exp << 'END'
send_user "tcl_objdir: $objdir\n"
if { [ regexp "^/" $objdir ] } {
    pass "test_tcl_objdir"
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu-relative-srcdir.sh 
automake-1.16.3/t/dejagnu-relative-srcdir.sh
--- automake-1.16.3-original/t/dejagnu-relative-srcdir.sh       2020-11-18 
19:21:03.000000000 -0600
+++ automake-1.16.3/t/dejagnu-relative-srcdir.sh        2021-06-29 
01:38:43.275577188 -0500
@@ -27,20 +27,22 @@
cat > Makefile.am << 'END'
AUTOMAKE_OPTIONS = dejagnu
DEJATOOL = tcl env
-EXTRA_DIST = env.test/env.exp tcl.test/tcl.exp lib/tcl.exp
+EXTRA_DIST  = testsuite/env.test/env.exp testsuite/tcl.test/tcl.exp
+EXTRA_DIST += testsuite/lib/tcl.exp
END

-mkdir env.test tcl.test lib
+mkdir testsuite
+mkdir testsuite/env.test testsuite/tcl.test testsuite/lib

# DejaGnu can change $srcdir behind our backs, so we have to
# save its original value.  Thanks to Ian Lance Taylor for the
# suggestion.
-cat > lib/tcl.exp << 'END'
+cat > testsuite/lib/tcl.exp << 'END'
send_user "tcl_lib_srcdir: $srcdir\n"
set orig_srcdir $srcdir
END

-cat > env.test/env.exp << 'END'
+cat > testsuite/env.test/env.exp << 'END'
set env_srcdir $env(srcdir)
send_user "env_srcdir: $env_srcdir\n"
if { [ regexp "^\.(\./\.\.)?$" $env_srcdir ] } {
@@ -50,7 +52,7 @@
}
END

-cat > tcl.test/tcl.exp << 'END'
+cat > testsuite/tcl.test/tcl.exp << 'END'
send_user "tcl_srcdir: $srcdir\n"
if { [ regexp "^\.(\./\.\.)?$" $srcdir ] } {
    pass "test_tcl_src"
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu-siteexp-extend.sh 
automake-1.16.3/t/dejagnu-siteexp-extend.sh
--- automake-1.16.3-original/t/dejagnu-siteexp-extend.sh        2020-11-18 
19:21:03.000000000 -0600
+++ automake-1.16.3/t/dejagnu-siteexp-extend.sh 2021-06-29 01:43:25.922327525 
-0500
@@ -40,7 +40,7 @@
AUTOMAKE_OPTIONS = dejagnu
DEJATOOL = tool

-EXTRA_DIST = tool.test/tool.exp
+EXTRA_DIST = testsuite/tool.test/tool.exp

EXTRA_DEJAGNU_SITE_CONFIG = foo.exp
EXTRA_DIST += foo.exp
@@ -48,9 +48,10 @@

echo 'set foo "/foo/"' > foo.exp

-mkdir tool.test
-write_check_for foo > tool.test/tool.exp
-cat tool.test/tool.exp
+mkdir testsuite
+mkdir testsuite/tool.test
+write_check_for foo > testsuite/tool.test/tool.exp
+cat testsuite/tool.test/tool.exp

$ACLOCAL
$AUTOCONF
@@ -63,9 +64,9 @@
cat site.exp
grep 'PASS: test_foo' tool.sum

-write_check_for bar >> tool.test/tool.exp
-write_check_for baz >> tool.test/tool.exp
-cat tool.test/tool.exp
+write_check_for bar >> testsuite/tool.test/tool.exp
+write_check_for baz >> testsuite/tool.test/tool.exp
+cat testsuite/tool.test/tool.exp

# Ensure that foo.exp will be newer than site.exp, which will
# thus have to be remade.
@@ -118,8 +119,8 @@

# Check that the user can edit the site.exp file, and that his edits
# are retained.
-write_check_for zardoz >> tool.test/tool.exp
-cat tool.test/tool.exp
+write_check_for zardoz >> testsuite/tool.test/tool.exp
+cat testsuite/tool.test/tool.exp
echo 'set zardoz "/zardoz/"' >> site.exp

$MAKE check
diff -urN -x '*~' automake-1.16.3-original/t/dejagnu-siteexp-useredit.sh 
automake-1.16.3/t/dejagnu-siteexp-useredit.sh
--- automake-1.16.3-original/t/dejagnu-siteexp-useredit.sh      2020-11-18 
19:21:03.000000000 -0600
+++ automake-1.16.3/t/dejagnu-siteexp-useredit.sh       2021-06-29 
01:44:58.285997782 -0500
@@ -30,8 +30,9 @@

# Deliberately select a variable defined automatically by
# the Makefile-generated site.exp.
-mkdir foo.test
-cat > foo.test/foo.exp << 'END'
+mkdir testsuite
+mkdir testsuite/foo.test
+cat > testsuite/foo.test/foo.exp << 'END'
send_user "objdir: $objdir\n"
set pipe "|"
if { $objdir == "${pipe}objdir${pipe}" } {
8<------


-- Jacob



reply via email to

[Prev in Thread] Current Thread [Next in Thread]