forked from pool/perl-Test-Strict
22169f1a80
- 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/1102308 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-Test-Strict?expand=0&rev=34
109 lines
3.1 KiB
Diff
109 lines
3.1 KiB
Diff
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";
|
|
|