Blame t/000-report-versions-tiny.t

Packit 1c5632
use strict;
Packit 1c5632
use warnings;
Packit 1c5632
use Test::More 0.88;
Packit 1c5632
# This is a relatively nice way to avoid Test::NoWarnings breaking our
Packit 1c5632
# expectations by adding extra tests, without using no_plan.  It also helps
Packit 1c5632
# avoid any other test module that feels introducing random tests, or even
Packit 1c5632
# test plans, is a nice idea.
Packit 1c5632
our $success = 0;
Packit 1c5632
END { $success && done_testing; }
Packit 1c5632
Packit 1c5632
# List our own version used to generate this
Packit 1c5632
my $v = "\nGenerated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10\n";
Packit 1c5632
Packit 1c5632
eval {                     # no excuses!
Packit 1c5632
    # report our Perl details
Packit 1c5632
    my $want = "any version";
Packit 1c5632
    $v .= "perl: $] (wanted $want) on $^O from $^X\n\n";
Packit 1c5632
};
Packit 1c5632
defined($@) and diag("$@");
Packit 1c5632
Packit 1c5632
# Now, our module version dependencies:
Packit 1c5632
sub pmver {
Packit 1c5632
    my ($module, $wanted) = @_;
Packit 1c5632
    $wanted = " (want $wanted)";
Packit 1c5632
    my $pmver;
Packit 1c5632
    eval "require $module;";
Packit 1c5632
    if ($@) {
Packit 1c5632
        if ($@ =~ m/Can't locate .* in \@INC/) {
Packit 1c5632
            $pmver = 'module not found.';
Packit 1c5632
        } else {
Packit 1c5632
            diag("${module}: $@");
Packit 1c5632
            $pmver = 'died during require.';
Packit 1c5632
        }
Packit 1c5632
    } else {
Packit 1c5632
        my $version;
Packit 1c5632
        eval { $version = $module->VERSION; };
Packit 1c5632
        if ($@) {
Packit 1c5632
            diag("${module}: $@");
Packit 1c5632
            $pmver = 'died during VERSION check.';
Packit 1c5632
        } elsif (defined $version) {
Packit 1c5632
            $pmver = "$version";
Packit 1c5632
        } else {
Packit 1c5632
            $pmver = '<undef>';
Packit 1c5632
        }
Packit 1c5632
    }
Packit 1c5632
Packit 1c5632
    # So, we should be good, right?
Packit 1c5632
    return sprintf('%-45s => %-10s%-15s%s', $module, $pmver, $wanted, "\n");
Packit 1c5632
}
Packit 1c5632
Packit 1c5632
eval { $v .= pmver('B','any version') };
Packit 1c5632
eval { $v .= pmver('Carp','any version') };
Packit 1c5632
eval { $v .= pmver('ExtUtils::MakeMaker','6.30') };
Packit 1c5632
eval { $v .= pmver('Scalar::Util','any version') };
Packit 1c5632
eval { $v .= pmver('Test::More','0.96') };
Packit 1c5632
eval { $v .= pmver('strict','any version') };
Packit 1c5632
eval { $v .= pmver('warnings','any version') };
Packit 1c5632
Packit 1c5632
Packit 1c5632
# All done.
Packit 1c5632
$v .= <<'EOT';
Packit 1c5632
Packit 1c5632
Thanks for using my code.  I hope it works for you.
Packit 1c5632
If not, please try and include this output in the bug report.
Packit 1c5632
That will help me reproduce the issue and solve your problem.
Packit 1c5632
Packit 1c5632
EOT
Packit 1c5632
Packit 1c5632
diag($v);
Packit 1c5632
ok(1, "we really didn't test anything, just reporting data");
Packit 1c5632
$success = 1;
Packit 1c5632
Packit 1c5632
# Work around another nasty module on CPAN. :/
Packit 1c5632
no warnings 'once';
Packit 1c5632
$Template::Test::NO_FLUSH = 1;
Packit 1c5632
exit 0;