Accepting request 1102467 from devel:languages:perl

- Add test-perl-5.38.patch: Don't simultaneously test -c and -v
  switches. Patch based on
https://patch-diff.githubusercontent.com/raw/manwar/Test-Strict/pull/33.patch.

OBS-URL: https://build.opensuse.org/request/show/1102467
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/perl-Test-Strict?expand=0&rev=10
This commit is contained in:
Dominique Leuenberger 2023-08-07 13:28:38 +00:00 committed by Git OBS Bridge
commit 0e52a514ee
4 changed files with 126 additions and 10 deletions

View File

@ -4,7 +4,8 @@
#sources:
# - source1
# - source2
#patches:
patches:
test-perl-5.38.patch: -p1 PATCH-FIX-UPSTREAM test-perl-5.38.patch gh#manwar/Test-Strict#33 -- Don't simultaneously test -c and -v switches
# foo.patch: -p1
# bar.patch:
#preamble: |-

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Thu Aug 3 12:57:32 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
- Add test-perl-5.38.patch: Don't simultaneously test -c and -v
switches. Patch based on
https://patch-diff.githubusercontent.com/raw/manwar/Test-Strict/pull/33.patch.
-------------------------------------------------------------------
Tue Jun 18 05:33:20 UTC 2019 - Stephan Kulow <coolo@please-enter-an-email-address>

View File

@ -1,7 +1,7 @@
#
# spec file for package perl-Test-Strict
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,20 +16,21 @@
#
%define cpan_name Test-Strict
Name: perl-Test-Strict
Version: 0.52
Release: 0
%define cpan_name Test-Strict
Summary: Check syntax, presence of use strict; and test coverage
License: Artistic-1.0 OR GPL-1.0-or-later
Group: Development/Libraries/Perl
Url: https://metacpan.org/release/%{cpan_name}
Summary: Check syntax, presence of use strict; and test coverage
URL: https://metacpan.org/release/%{cpan_name}
Source0: https://cpan.metacpan.org/authors/id/M/MA/MANWAR/%{cpan_name}-%{version}.tar.gz
Source1: cpanspec.yml
# PATCH-FIX-UPSTREAM test-perl-5.38.patch gh#manwar/Test-Strict#33 -- Don't simultaneously test -c and -v switches
Patch0: test-perl-5.38.patch
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(ExtUtils::MakeMaker) >= 6.64
BuildRequires: perl(IO::Scalar)
BuildRequires: perl(Test::More) >= 1.00
%{perl_requires}
@ -53,11 +54,11 @@ paths are untainted with the following pattern: 'qr|^([-+@\w./:\\]+)$|'
controlled by '$Test::Strict::UNTAINT_PATTERN'.
%prep
%setup -q -n %{cpan_name}-%{version}
%autosetup -n %{cpan_name}-%{version} -p1
%build
perl Makefile.PL INSTALLDIRS=vendor
make %{?_smp_mflags}
%make_build
%check
make test
@ -68,7 +69,6 @@ make test
%perl_gen_filelist
%files -f %{name}.files
%defattr(-,root,root,755)
%doc Changes README
%license LICENSE

108
test-perl-5.38.patch Normal file
View File

@ -0,0 +1,108 @@
From 8cc3a355b90db21b76374d3b563df3628b31d58c Mon Sep 17 00:00:00 2001
From: James E Keenan <jkeenan@cpan.org>
Date: Sat, 14 Jan 2023 22:42:22 +0000
Subject: [PATCH] Don't simultaneously test -c and -v switches
Up through perl-5.37.3, there was a bug in perl (see
https://github.com/Perl/perl5/issues/20252#issuecomment-1236880872)
which permitted simultaneous use of the '-c' and '-v' switches to the
perl interpreter. Once this bug was corrected, t/01all.t began to fail.
As Test::Strict has many CPAN distributions depending on it, this test
failure has had wide impact.
This pull request modifies tests appropriately and has been tested on
bleadperl (v5.37.7-134-g25948dfb24) and on perl-5.32.1, in both cases on
threaded builds on FreeBSD-12. Devel::Cover was not installed on
bleadperl, hence t/04cover.t was skipped on that build. Otherwise, all
tests are passing. In the course of testing, certain additions were
made to .gitignore and MANIFEST.SKIP to get metadata-oriented tests to
pass.
NOTE: In my git checkout I find the following file:
.git/hooksfsmonitor-watchman.sample
This is deemed by 'file' to be a Perl executable. As such, it is pushed
onto the list of files tested by 'all_perl_files_ok()' at the start of
t/01all.t. This in turn means that in my 'git checkout' the count of
tests is off by 2 and the test is reported to fail.
"Looks like you planned 59 tests but ran 61."
Because the files in .git/hooks/ should not be included in the tarball,
the count of tests is correct when run from the tarball. I leave to the
maintainer to determine how to square this circle. You should probably
check for the presence of a .git/ directory and exclude that directory
from the list of directories passed to all_perl_files_ok().
For https://github.com/manwar/Test-Strict/issues/32
---
.gitignore | 2 ++
MANIFEST.SKIP | 5 +++--
t/01all.t | 4 +---
t/02fail.t | 3 +--
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP
index 6dd7c05..03e0675 100644
--- a/MANIFEST.SKIP
+++ b/MANIFEST.SKIP
@@ -1,4 +1,5 @@
-^\.git
+\.gitignore
+\.git/
maint
^tags$
.last_cover_stats
@@ -8,7 +9,7 @@ Makefile$
^.*.bak
^.*.old
^t.*sessions
-^cover_db
+cover_db/
^.*\.log
^.*\.swp$
^.*~$
diff --git a/t/01all.t b/t/01all.t
index 6ff9f23..569354d 100644
--- a/t/01all.t
+++ b/t/01all.t
@@ -125,8 +125,6 @@ subtest perl_v5_12 => sub {
strict_ok($filename);
};
-exit;
-
{
my %data;
sub make_file {
@@ -172,7 +170,7 @@ sub make_warning_files {
my ($fh2, $filename2) = tempfile( DIR => $tmpdir, SUFFIX => '.pl' );
print $fh2 <<'DUMMY';
-#!/usr/bin/perl -vw
+#!/usr/bin/perl -w
use strict;
print "Hello world";
diff --git a/t/02fail.t b/t/02fail.t
index d4729cc..b0c8493 100644
--- a/t/02fail.t
+++ b/t/02fail.t
@@ -40,7 +40,6 @@ TODO: {
ok !Test::Strict::_strict_ok($fh1), 'use strict in print';
}
-exit;
sub test1 {
@@ -199,7 +198,7 @@ DUMMY
my ($fh2, $filename2) = tempfile( DIR => $tmpdir, SUFFIX => '.pl' );
print $fh2 <<'DUMMY';
-#!/usr/bin/perl -vw
+#!/usr/bin/perl -w
use strict;
print "Hello world";