1use strict;
2use warnings;
3use Test::More 0.88;
4# This is a relatively nice way to avoid Test::NoWarnings breaking our
5# expectations by adding extra tests, without using no_plan.  It also helps
6# avoid any other test module that feels introducing random tests, or even
7# test plans, is a nice idea.
8our $success = 0;
9END { $success && done_testing; }
10
11# List our own version used to generate this
12my $v = "\nGenerated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10\n";
13
14eval {                     # no excuses!
15    # report our Perl details
16    my $want = "any version";
17    $v .= "perl: $] (wanted $want) on $^O from $^X\n\n";
18};
19defined($@) and diag("$@");
20
21# Now, our module version dependencies:
22sub pmver {
23    my ($module, $wanted) = @_;
24    $wanted = " (want $wanted)";
25    my $pmver;
26    eval "require $module;";
27    if ($@) {
28        if ($@ =~ m/Can't locate .* in \@INC/) {
29            $pmver = 'module not found.';
30        } else {
31            diag("${module}: $@");
32            $pmver = 'died during require.';
33        }
34    } else {
35        my $version;
36        eval { $version = $module->VERSION; };
37        if ($@) {
38            diag("${module}: $@");
39            $pmver = 'died during VERSION check.';
40        } elsif (defined $version) {
41            $pmver = "$version";
42        } else {
43            $pmver = '<undef>';
44        }
45    }
46
47    # So, we should be good, right?
48    return sprintf('%-45s => %-10s%-15s%s', $module, $pmver, $wanted, "\n");
49}
50
51eval { $v .= pmver('Config::INI::Reader','any version') };
52eval { $v .= pmver('Config::MVP','2') };
53eval { $v .= pmver('Config::MVP::Reader','any version') };
54eval { $v .= pmver('Config::MVP::Reader::Findable::ByExtension','any version') };
55eval { $v .= pmver('ExtUtils::MakeMaker','6.30') };
56eval { $v .= pmver('Moose','any version') };
57eval { $v .= pmver('Test::More','0.96') };
58eval { $v .= pmver('lib','any version') };
59eval { $v .= pmver('parent','any version') };
60eval { $v .= pmver('strict','any version') };
61eval { $v .= pmver('warnings','any version') };
62
63
64# All done.
65$v .= <<'EOT';
66
67Thanks for using my code.  I hope it works for you.
68If not, please try and include this output in the bug report.
69That will help me reproduce the issue and solve your problem.
70
71EOT
72
73diag($v);
74ok(1, "we really didn't test anything, just reporting data");
75$success = 1;
76
77# Work around another nasty module on CPAN. :/
78no warnings 'once';
79$Template::Test::NO_FLUSH = 1;
80exit 0;
81