Accepting request 903260 from home:Andreas_Schwab:Factory

- testsuite-legacy.patch: support deprecated legacy uses of dejagnu

OBS-URL: https://build.opensuse.org/request/show/903260
OBS-URL: https://build.opensuse.org/package/show/devel:tools/dejagnu?expand=0&rev=33
This commit is contained in:
Andreas Schwab 2021-06-30 15:24:13 +00:00 committed by Git OBS Bridge
parent 9b308c99d7
commit 05b4bb2ba1
3 changed files with 57 additions and 0 deletions

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Wed Jun 30 13:28:31 UTC 2021 - Andreas Schwab <schwab@suse.de>
- testsuite-legacy.patch: support deprecated legacy uses of dejagnu
-------------------------------------------------------------------
Mon Jun 21 08:10:02 UTC 2021 - Andreas Schwab <schwab@suse.de>

View File

@ -27,6 +27,7 @@ Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz.sig
Source2: https://savannah.gnu.org/project/release-gpgkeys.php?group=dejagnu&download=1#/%{name}.keyring
Source3: site.exp
Patch0: testsuite-legacy.patch
BuildRequires: expect
BuildRequires: fdupes
BuildRequires: gcc-c++
@ -65,6 +66,7 @@ suites themselves.
%prep
%setup -q
%patch0 -p1
%build
# 49078@debbugs.gnu.org: bug in Expect 5.45.4 triggers a testsuite failure

50
testsuite-legacy.patch Normal file
View File

@ -0,0 +1,50 @@
From: Jacob Bachmeyer <jcb62281@gmail.com>
Subject: bug#49250: dejagnu 1.6.3 breaks automake 1.16.3 testsuite
Date: Tue, 29 Jun 2021 23:49:09 -0500
The Automake tests are using a legacy layout that does not meet a
long-documented requirement.
The DejaGnu manual has for years (including all available revision
history) stated that a DejaGnu testsuite is required to be in a
directory tree named "testsuite" at its root. Previous versions of
DejaGnu did not actually care, but this led to an ambiguity that made
integrating DejaGnu with non-recursive Automake build systems very
difficult. This caused significant difficulties with DejaGnu's own
testsuite, and fixing it was needed to actually run the DejaGnu
testsuite properly.
The simple fix is to move the DejaGnu testsuites in the Automake test
cases into "testsuite" directories, but this causes the tests to fail
with older versions of DejaGnu. This broken legacy case is deprecated
in 1.6.3 but still supposed to be supported, even though the manual has
always said that DejaGnu testsuites are required to be in testsuite/
directories.
The code that detects this legacy case was written to match conditions
observed with DejaGnu's own testsuite, with an older version of Automake
in use at that time. As a result, that code branch fails to catch the
situations in the Automake 1.16.3 testsuite and DejaGnu falls back to a
"deep legacy" mode in which some features do not work. One of the
features that does not work in this mode is limiting testing to a single
tool at a time; this appears to cause most of the failures.
An experimental patch is attached.
-- Jacob
diff -urN -x '*~' dejagnu-1.6.3/runtest.exp dejagnu-1.6.3-patch/runtest.exp
--- dejagnu-1.6.3/runtest.exp 2021-06-16 21:15:25.000000000 -0500
+++ dejagnu-1.6.3-patch/runtest.exp 2021-06-29 21:41:28.735667904 -0500
@@ -741,7 +741,7 @@
set testsuitedir $base_dir
set testbuilddir $base_dir
} else {
- if { $testsuitedir eq "testsuite" && $srcdir eq "." && $objdir eq "." } {
+ if { $testsuitedir eq "testsuite" && $testbuilddir eq "testsuite" } {
# Broken legacy case -- testsuite not actually in testsuite/
# Produce a warning, but continue.
send_error "WARNING: testsuite is not in a testsuite/ directory.\n"