Coder Social home page Coder Social logo

test-strict's Introduction

This is the README file for Test::Strict, for
testing strictness in a distribution, by Pierre Denis <[email protected]>.

* Installation

Test::Strict uses the standard perl module install process:

perl Makefile.PL
make
make test
make install

test-strict's People

Contributors

szabgab avatar manwar avatar arc avatar robrwo avatar tomhukins avatar athos-ribeiro avatar haarg avatar contyk avatar bor avatar shlomif avatar cpansprout avatar

Stargazers

mjames avatar  avatar

Watchers

mjames avatar James Cloos avatar  avatar

test-strict's Issues

Test::Strict: t/01all.t fails on perl-5.37.3

A change in Perl 5 blead has begun to cause a test failure in this distribution's test suite. The failure looks like this:

$ bleadprove -vb t/01all.t 
t/01all.t .. 
1..59
...
not ok 54 - Syntax check /tmp/4ja1UjrJvU/AWX5AatGfR.pl

#   Failed test 'Syntax check /tmp/4ja1UjrJvU/AWX5AatGfR.pl'
#   at /usr/home/jkeenan/.cpan/build/Test-Strict-0.52-0/blib/lib/Test/Strict.pm line 435.
# 
# This is perl 5, version 37, subversion 4 (v5.37.4 (v5.37.2-418-g8975221916)) built for amd64-freebsd-thread-multi
# 
# Copyright 1987-2022, Larry Wall
# 
# Perl may be copied only under the terms of either the Artistic License or the
# GNU General Public License, which may be found in the Perl 5 source kit.
# 
# Complete documentation for Perl, including FAQ lists, should be found on
# this system using "man perl" or "perldoc perl".  If you have access to the
# Internet, point your browser at https://www.perl.org/, the Perl Home Page.
# 

This problem was first reported to Perl 5's issue tracker as Perl/perl5#20252. Preliminary discussion suggests need to modify t/01all.t .

Can you investigate?

Thank you very much.
Jim Keenan

Huge dependency tree when installing on perl 5.10 ?

I've just tried to install Test::Strict on perl 5.10 using cpan and it started to install all kinds of strange modules such as Template::Toolkit and Moo. I wonder if is a bug in the old cpan client or if there is some dependency that brings those. It would be nice if this did not happen.

Bug in Test::Strict (with patch)

Issue raised by email directly ([email protected]):

Actually 2 (and a bit). First the weird one.

I wanted to use Test::Strict to test that a particular module was
included. Maybe there are better ways to do this but Test::Strict was
already there. This meant I ended up parsing the same file twice, although
I'm suspicious that that's a red herring. The flip flop operator in
_strict_ok retained its state between the first and second run through the
file and in the second go around assumed it was in a pod block from the
beginning. The patch replaces the flip-flop operator with an explicit
state variable.

In addition, pod directives can't begin with whitespace (on either side of
the =) so I removed that from the regex.

The 'bit' is that this will be treated by _strict_ok as a pod block, but
not by perl:

 -----
 $x 
 =42;

 print "still perl - $x\n";
 -----

I don't know how to deal with that except by being perl, so I didn't.
People who write code like that are on their own.

Patch:

 --- /home/mking/perl5/lib/site_perl/5.26.0/Test/Strict.pm 2016-12-01 15:04:42.000000000 +0000
 +++ lib/Test/Strict.pm  2018-07-06 13:53:16.435049602 +0000
 @@ -225,9 +225,12 @@
 sub _strict_ok {
     my ($in) = @_;
     local $_;
 +    my $pod;
        while (<$in>) {
          next if (/^\s*#/); # Skip comments
 -        next if (/^\s*=.+/ .. /^\s*=(cut|back|end)/); # Skip pod
 +        $pod = 0, next if /^=(cut|back|end)/;
 +        $pod = 1, next if /^=\S+/;
 +        next if $pod; # Skip pod
           last if (/^\s*(__END__|__DATA__)/); # End of code
           foreach my $name (modules_enabling_strict()) {
             # TODO: improve this matching (e.g. see TODO test)

Cheers,

Matthew

Test::Strict: t/01all.t fails on perl-5.31.2 on FreeBSD-12

This failure was observed during CPAN-River-3000 testing of perl-5.31.2 on FreeBSD-12. Excerpt from cpanm build.log:

$ dumpjson MANWAR.Test-Strict-0.52.log.json | cat
{
  author => "MANWAR",
  dist => "Test-Strict",
  distname => "Test-Strict-0.52",
  distversion => 0.52,
  grade => "FAIL",
  prereqs => undef,
  test_output => [
    "Building and testing Test-Strict-0.52",
    "cp lib/Test/Strict.pm blib/lib/Test/Strict.pm",
    "PERL_DL_NONLAZY=1 \"/usr/home/jkeenan/var/tad/testing/perl-5.31.2/bin/perl\" \"-MExtUtils::Command::MM\" \"-MTest::Harness\" \"-e\" \"undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')\" t/*.t",
    "# Testing Test::Strict 0.52, Perl 5.031002, /usr/home/jkeenan/var/tad/testing/perl-5.31.2/bin/perl",
    "t/00-load.t ............ ok",
    "# First all_perl_files_ok starting",
    "# First all_perl_files_ok done",
    "# Start creating files in /tmp/7fOOfXVwe_",
    "# [",
    "#   '/tmp/u85ed_PSwD/0tHTevadfw.pl',",
    "#   '/tmp/u85ed_PSwD/2zU5rNOAIi.pl',",
    "#   '/tmp/u85ed_PSwD/yZiSKPM8CY.pl',",
    "#   '/tmp/u85ed_PSwD/09aseV8ICa.pl'",
    "# ]",
    "# File to skip: /tmp/u85ed_PSwD/2zU5rNOAIi.pl",
    "# Start all_perl_files_ok on /tmp/u85ed_PSwD (should be 2*3 = 6 tests)",
    "",
    "#   Failed test 'Syntax check /tmp/u85ed_PSwD/0tHTevadfw.pl'",
    "#   at /usr/home/jkeenan/var/tad/testing/perl-5.31.2/.cpanm/work/1563802822.70705/Test-Strict-0.52/blib/lib/Test/Strict.pm line 435.",
    "# ",
    "# This is perl 5, version 31, subversion 2 (v5.31.2) built for amd64-freebsd-thread-multi",
    "# ",
    "# Copyright 1987-2019, Larry Wall",
    "# ",
    "# Perl may be copied only under the terms of either the Artistic License or the",
    "# GNU General Public License, which may be found in the Perl 5 source kit.",
    "# ",
    "# Complete documentation for Perl, including FAQ lists, should be found on",
    "# this system using \"man perl\" or \"perldoc perl\".  If you have access to the",
    "# Internet, point your browser at http://www.perl.org/, the Perl Home Page.",
    "# ",
    "# Looks like you failed 1 test of 59.",
    "t/01all.t .............. ",
    "Dubious, test returned 1 (wstat 256, 0x100)",
    "Failed 1/59 subtests ",
    "t/02fail.t ............. ok",
    "t/03-test-perl-file.t .. ok",
    "t/04cover.t ............ skipped: Checking coverage only if the CHECK_COVERAGE environment variable is true",
    "t/90-pod.t ............. ok",
    "t/91-pod-coverage.t .... ok",
    "t/92-manifest.t ........ ok",
    "t/93-checkmanifest.t ... ok",
    "t/94-version.t ......... ok",
    "t/95-changes.t ......... ok",
    "",
    "Test Summary Report",
    "-------------------",
    "t/01all.t            (Wstat: 256 Tests: 59 Failed: 1)",
    "  Failed test:  48",
    "  Non-zero exit status: 1",
    "Files=11, Tests=92,  6 wallclock secs ( 0.02 usr  0.05 sys +  3.47 cusr  1.91 csys =  5.45 CPU)",
    "Result: FAIL",
  ],
  via => "App::cpanminus::reporter 0.17 (1.7044)",
}

Excerpt from output of prove:

ok 46 - file7
# Subtest: custom
    1..2
    ok 1 - file6
    ok 2 - file6
ok 47 - custom
# [
#   '/tmp/2q6jVR738_/8_ARN8urlS.pl',
#   '/tmp/2q6jVR738_/QzuOtc0gpf.pl',
#   '/tmp/2q6jVR738_/CSTQnYwNLz.pl',
#   '/tmp/2q6jVR738_/51Y7B7JFa_.pl'
# ]
# File to skip: /tmp/2q6jVR738_/QzuOtc0gpf.pl
# Start all_perl_files_ok on /tmp/2q6jVR738_ (should be 2*3 = 6 tests)
not ok 48 - Syntax check /tmp/2q6jVR738_/8_ARN8urlS.pl

#   Failed test 'Syntax check /tmp/2q6jVR738_/8_ARN8urlS.pl'
#   at /usr/home/jkeenan/var/tad/testing/perl-5.31.2/.cpanm/work/1563802822.70705/Test-Strict-0.52/blib/lib/Test/Strict.pm line 435.
# 
# This is perl 5, version 31, subversion 2 (v5.31.2) built for amd64-freebsd-thread-multi
# 
# Copyright 1987-2019, Larry Wall
# 
# Perl may be copied only under the terms of either the Artistic License or the
# GNU General Public License, which may be found in the Perl 5 source kit.
# 
# Complete documentation for Perl, including FAQ lists, should be found on
# this system using "man perl" or "perldoc perl".  If you have access to the
# Internet, point your browser at http://www.perl.org/, the Perl Home Page.
# 
ok 49 - use strict   /tmp/2q6jVR738_/8_ARN8urlS.pl
ok 50 - use warnings /tmp/2q6jVR738_/8_ARN8urlS.pl
ok 51 - Syntax check /tmp/2q6jVR738_/CSTQnYwNLz.pl
ok 52 - use strict   /tmp/2q6jVR738_/CSTQnYwNLz.pl
ok 53 - use warnings /tmp/2q6jVR738_/CSTQnYwNLz.pl
ok 54 - Syntax check /tmp/2q6jVR738_/51Y7B7JFa_.pl
ok 55 - use strict   /tmp/2q6jVR738_/51Y7B7JFa_.pl
ok 56 - use warnings /tmp/2q6jVR738_/51Y7B7JFa_.pl
# Subtest: perl5_12
    1..1
    ok 1 - use strict   /tmp/5lF43m1Hqg/perl5_12.pl
ok 57 - perl5_12
# Subtest: perl5_20
    1..1
    ok 1 - use strict   /tmp/5lF43m1Hqg/perl5_20.pl
ok 58 - perl5_20
# Subtest: perl_v5_12
    1..1
    ok 1 - use strict   /tmp/5lF43m1Hqg/perl_v5_12.pl
ok 59 - perl_v5_12
# Looks like you failed 1 test of 59.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/59 subtests 

Test Summary Report
-------------------
t/01all.t (Wstat: 256 Tests: 59 Failed: 1)
  Failed test:  48
  Non-zero exit status: 1
Files=1, Tests=59,  3 wallclock secs ( 0.03 usr  0.04 sys +  1.57 cusr  0.98 csys =  2.62 CPU)
Result: FAIL

Thank you very much.
Jim Keenan

t/04cover.t fails in 0.32 (re new t/00-load.t)

$ CHECK_COVERAGE=1 prove --blib --verbose t/04cover.t 
t/04cover.t .. 
ok 1 - Coverage captured from t/94-version.t
ok 2 - Coverage captured from t/02fail.t
ok 3 - Coverage captured from t/90-pod.t
ok 4 - Coverage captured from t/93-checkmanifest.t
"-T" is on the #! line, it must also be used on the command line at t/00-load.t line 1.
not ok 5 - Coverage captured from t/00-load.t

#   Failed test 'Coverage captured from t/00-load.t'
#   at t/04cover.t line 18.
ok 6 - Coverage captured from t/91-pod-coverage.t
ok 7 - Coverage captured from t/92-manifest.t
# First all_perl_files_ok starting
# First all_perl_files_ok done
# Start creating files in /tmp/nsdaRNMIqW
# [
#   '/tmp/wOBiIAJOiJ/XK1ddqFb0c.pl',
#   '/tmp/wOBiIAJOiJ/pWeZ1VDXay.pl',
#   '/tmp/wOBiIAJOiJ/rs_P9LLvzV.pl',
#   '/tmp/wOBiIAJOiJ/GqdeaiV93p.pl'
# ]
# File to skip: /tmp/wOBiIAJOiJ/pWeZ1VDXay.pl
# Start all_perl_files_ok on /tmp/wOBiIAJOiJ (should be 2*3 = 6 tests)
ok 8 - Coverage captured from t/01all.t
ok 9 - Got cover
ok 10 - coverage = 67.9% > 50%
ok 11
ok 12
1..12
# Looks like you failed 1 test of 12.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/12 subtests 

Test Summary Report
-------------------
t/04cover.t (Wstat: 256 Tests: 12 Failed: 1)
  Failed test:  5
  Non-zero exit status: 1
Files=1, Tests=12,  4 wallclock secs ( 0.04 usr  0.00 sys +  4.05 cusr  0.20 csys =  4.29 CPU)
Result: FAIL

Stop requireing Devel::Cover

I think most of the people who use Test::Critic don't need the functionality provided by Devel::Cover. IMHO Test::Strict should not depend on it and if the user invokes the all_cover_ok then it should be checked if Devel::Cover is installed.

Maybe use Exporter

Hi @manwar!

I think this module could use Exporter rather than always installing every available function into the caller's namespace. As it stands, I think perlimports will need to ignore this module (which is fine), but I'm wondering if there's a compelling reason for the current import logic.

sub import {
    my $self   = shift;
    my $caller = caller;
 
    {
        no strict 'refs';
        *{$caller.'::strict_ok'}         = \&strict_ok;
        *{$caller.'::warnings_ok'}       = \&warnings_ok;
        *{$caller.'::syntax_ok'}         = \&syntax_ok;
        *{$caller.'::all_perl_files_ok'} = \&all_perl_files_ok;
        *{$caller.'::all_cover_ok'}      = \&all_cover_ok;
    }
 
    $Test->exported_to($caller);
    $Test->plan(@_);
}

t/01all.t fails - planned 39 tests but ran 37

Test-Strict $ prove -l -v t/01all.t

t/01all.t .. 
1..39
# First all_perl_files_ok starting
ok 1 - Syntax check /home/bor/projects/Test-Strict/t/../Makefile.PL
ok 2 - use strict   /home/bor/projects/Test-Strict/t/../Makefile.PL
ok 3 - Syntax check /home/bor/projects/Test-Strict/t/../lib/Test/Strict.pm
ok 4 - use strict   /home/bor/projects/Test-Strict/t/../lib/Test/Strict.pm
ok 5 - Syntax check /home/bor/projects/Test-Strict/t/../t/02fail.t
ok 6 - use strict   /home/bor/projects/Test-Strict/t/../t/02fail.t
ok 7 - Syntax check /home/bor/projects/Test-Strict/t/../t/01all.t
ok 8 - use strict   /home/bor/projects/Test-Strict/t/../t/01all.t
ok 9 - Syntax check /home/bor/projects/Test-Strict/t/../t/05coverpod.t
ok 10 - use strict   /home/bor/projects/Test-Strict/t/../t/05coverpod.t
ok 11 - Syntax check /home/bor/projects/Test-Strict/t/../t/04cover.t
ok 12 - use strict   /home/bor/projects/Test-Strict/t/../t/04cover.t
ok 13 - Syntax check /home/bor/projects/Test-Strict/t/../t/03pod.t
ok 14 - use strict   /home/bor/projects/Test-Strict/t/../t/03pod.t
ok 15 - returned empty string??
ok 16 - got strict
# First all_perl_files_ok done
ok 17 - syntax
ok 18 - Syntax check Test::Strict
ok 19 - use strict   Test::Strict
ok 20 - use warnings t/01all.t
ok 21 - warn modern_perl1
ok 22 - strict modern_perl1
# Start creating files
# /tmp/pgdPDfi0qT/HcYGgCb19R.pL
# /tmp/G2wIOM0qtj/H8QRgKE9As
ok 23
ok 24
ok 25 - warn extensionless_file
ok 26 - strict extensionless_file
ok 27 - syntax extensionless_file
# File1: /tmp/EE09ulhWsT/n0FeAKa06S.pL
ok 28 - file1
ok 29 - file2
ok 30 - file4
ok 31 - file5
# File2: /tmp/WKpdSJYewp/pqHFBzZW8S.pL
# File4: /tmp/9Uwss5RbIn/LC8XK0fHEU.pm
# File5: /tmp/dYao5NYkoi/xyBKmKVjwt.pm
# [
#   '/tmp/cJFJeJBzGX/aX1jc5GM5f.pl',
#   '/tmp/cJFJeJBzGX/MLpcJHD7js.pl',
#   '/tmp/cJFJeJBzGX/rlYYCJJUtm.pl'
# ]
# File to skip: /tmp/cJFJeJBzGX/MLpcJHD7js.pl
ok 32 - Syntax check /tmp/cJFJeJBzGX/rlYYCJJUtm.pl
ok 33 - use strict   /tmp/cJFJeJBzGX/rlYYCJJUtm.pl
ok 34 - use warnings /tmp/cJFJeJBzGX/rlYYCJJUtm.pl
ok 35 - Syntax check /tmp/cJFJeJBzGX/aX1jc5GM5f.pl
ok 36 - use strict   /tmp/cJFJeJBzGX/aX1jc5GM5f.pl
ok 37 - use warnings /tmp/cJFJeJBzGX/aX1jc5GM5f.pl
# Looks like you planned 39 tests but ran 37.
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 2/39 subtests 

Test Summary Report
-------------------
t/01all.t (Wstat: 65280 Tests: 37 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 39 tests but ran 37.
Files=1, Tests=37,  1 wallclock secs ( 0.03 usr  0.00 sys +  0.40 cusr  0.05 csys =  0.48 CPU)
Result: FAIL

request to add option to run syntax_ok() with global warnings

Hi, I'm forwarding a request / wishlist bug received at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769970:

It would be nice if the syntax_ok() check could also enable (maybe
optionally) the perl global warnings, so that some of the problems
that only get detected with that, and not with «use warings» can be
spotted. Here's an example where this is relevant:

,--- compile-warn.pl ---

!/usr/bin/perl

use strict;
use warnings;
use POSIX qw(getcwd);
use Cwd;
my $cwd = getcwd();
1;
`---

,---
$ perl -c compile-warn.pl
compile-warn.pl syntax OK
$ perl -cw compile-warn.pl
Subroutine main::getcwd redefined at /usr/share/perl/5.20/Exporter.pm line 66.
at compile-warn.pl line 7.
compile-warn.pl syntax OK
`---

all_perl_files_ok should skip .git

Test::Strict::all_perl_files_ok contains hard-coded logic to exclude CVS and .svn directories, but doesn't skip .git directories. It does provide a way to pass in a list of files to skip, but that is applied as a filter to the list of individual files, so it cannot be used to skip directories.

This means that if there are Perl files in .git (which may be the case if one has used dgit from this checkout, since it makes its own private copy of the unpacked source package), they will be picked up and tested incorrectly by this module.

The quick fix is that .git should be added to the hard-coded skip list in the module. A better, complementary fix would be to move processing of $Test::Skip::TEST_SKIP into $want_sub in _all_files and use it to prune directories as well. I think it's safe to assume this is what the caller would want if they list a directory in TEST_SKIP.

t/01all.t fails if Modern::Perl is not installed

I came across this a few moments ago, while rebuilding a local dpan:

--> Working on Test::Strict
Fetching file:///.../authors/id/S/SZ/SZABGAB/Test-Strict-0.16.tar.gz
-> OK
Unpacking Test-Strict-0.16.tar.gz
Entering Test-Strict-0.16
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.64)
Configuring Test-Strict-0.16
Running Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Test::Strict
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.64)
Checking if you have Test::Builder 0.01 ... Yes (0.98)
Checking if you have FindBin 0.01 ... Yes (1.50)
Checking if you have File::Find 0.01 ... Yes (1.14)
Checking if you have File::Temp 0.01 ... Yes (0.22)
Checking if you have File::Spec 0.01 ... Yes (3.30)
Checking if you have Test::Simple 0.47 ... Yes (0.98)
Checking if you have Devel::Cover 0.43 ... Yes (0.98)
Building and testing Test-Strict-0.16
make[1]: Entering directory `/home/sandbox/.cpanm/work/1356710732.25506/Test-Strict-0.16'
cp lib/Test/Strict.pm blib/lib/Test/Strict.pm
make[1]: Leaving directory `/home/sandbox/.cpanm/work/1356710732.25506/Test-Strict-0.16'
make[1]: Entering directory `/home/sandbox/.cpanm/work/1356710732.25506/Test-Strict-0.16'
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# First all_perl_files_ok starting
# First all_perl_files_ok done
# Start creating files
# /tmp/14C_nuVmCH/4Lx_OijDiO.pL
# /tmp/Vu0IKm6PQe/NfZgeGcCHg

#   Failed test 'syntax extensionless_file'
#   at t/01all.t line 47.
# Can't locate Modern/Perl.pm in @INC (@INC contains: /home/sandbox/.cpanm/work/1356710732.25506/Test-Strict-0.16/blib/lib /home/sandbox/.cpanm/work/1356710732.25506/Test-Strict-0.16/blib/arch /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5 /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5 /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5 /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5 /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1/x86_64-linux-gnu-thread-multi /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl . /home/sandbox/.cpanm/work/1356710732.25506/Test-Strict-0.16/blib/lib /home/sandbox/.cpanm/work/1356710732.25506/Test-Strict-0.16/blib/arch /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5 /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5 /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/src/CE-four/extlib/lib/perl5 /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/sandbox/perl5/lib/perl5 /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /tmp/Vu0IKm6PQe/NfZgeGcCHg line 1.
# BEGIN failed--compilation aborted at /tmp/Vu0IKm6PQe/NfZgeGcCHg line 1.
# File1: /tmp/m32HsT2Rl0/7splEMd3P0.pL
# File2: /tmp/0KpdSt6FLM/oFjaO_cxuE.pL
# File3: /tmp/W0BnjRfdQu/3HHE0C7hEM.pm
# File4: /tmp/3t8G9lQoic/EHWsAEwwNx.pm
# File5: /tmp/nHMP37HXV8/AlGg2Fh7K3.pm
# [
#   '/tmp/GDTdrBX4Kv/2BnOD4QMmS.pm',
#   '/tmp/GDTdrBX4Kv/9I0T5KgEB_.pl',
#   '/tmp/GDTdrBX4Kv/Q8ezkgjsdQ.pl',
#   '/tmp/GDTdrBX4Kv/J3TTLnijkP.pl'
# ]
# File to skip: /tmp/GDTdrBX4Kv/Q8ezkgjsdQ.pl
# Looks like you failed 1 test of 41.
t/01all.t ....... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/41 subtests 
t/02fail.t ...... ok
t/03pod.t ....... ok
t/04cover.t ..... skipped: Checking coverage only if the CHECK_COVERAGE environment variable is true
t/05coverpod.t .. ok

Test Summary Report
-------------------
t/01all.t     (Wstat: 256 Tests: 41 Failed: 1)
  Failed test:  27
  Non-zero exit status: 1
Files=5, Tests=53,  1 wallclock secs ( 0.05 usr  0.01 sys +  1.09 cusr  0.11 csys =  1.26 CPU)
Result: FAIL
Failed 1/5 test programs. 1/53 subtests failed.

Looks like everything is OK -- so long as the user already has Modern::Perl installed :)

all_perl_files_ok tests emacs backup files

emacs will leave backup files with the suffix "~", e.g. lib/MyModule.pm~.

It should skip these automatically, or maybe have an option to use a regex for files to skip, or even check MANIFEST.SKIP.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.