diff options
Diffstat (limited to 't/000-report-versions-tiny.t')
-rw-r--r-- | t/000-report-versions-tiny.t | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/t/000-report-versions-tiny.t b/t/000-report-versions-tiny.t new file mode 100644 index 0000000..e25334d --- /dev/null +++ b/t/000-report-versions-tiny.t @@ -0,0 +1,86 @@ +use strict; +use warnings; +use Test::More 0.88; +# This is a relatively nice way to avoid Test::NoWarnings breaking our +# expectations by adding extra tests, without using no_plan. It also helps +# avoid any other test module that feels introducing random tests, or even +# test plans, is a nice idea. +our $success = 0; +END { $success && done_testing; } + +# List our own version used to generate this +my $v = "\nGenerated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10\n"; + +eval { # no excuses! + # report our Perl details + my $want = '5.006'; + $v .= "perl: $] (wanted $want) on $^O from $^X\n\n"; +}; +defined($@) and diag("$@"); + +# Now, our module version dependencies: +sub pmver { + my ($module, $wanted) = @_; + $wanted = " (want $wanted)"; + my $pmver; + eval "require $module;"; + if ($@) { + if ($@ =~ m/Can't locate .* in \@INC/) { + $pmver = 'module not found.'; + } else { + diag("${module}: $@"); + $pmver = 'died during require.'; + } + } else { + my $version; + eval { $version = $module->VERSION; }; + if ($@) { + diag("${module}: $@"); + $pmver = 'died during VERSION check.'; + } elsif (defined $version) { + $pmver = "$version"; + } else { + $pmver = '<undef>'; + } + } + + # So, we should be good, right? + return sprintf('%-45s => %-10s%-15s%s', $module, $pmver, $wanted, "\n"); +} + +eval { $v .= pmver('Carp','any version') }; +eval { $v .= pmver('Compress::Zlib','1.20') }; +eval { $v .= pmver('ExtUtils::MakeMaker','any version') }; +eval { $v .= pmver('File::Basename','any version') }; +eval { $v .= pmver('File::Copy','any version') }; +eval { $v .= pmver('File::Find','any version') }; +eval { $v .= pmver('File::HomeDir','0.57') }; +eval { $v .= pmver('File::Path','2.04') }; +eval { $v .= pmver('File::Spec','any version') }; +eval { $v .= pmver('File::Temp','any version') }; +eval { $v .= pmver('Getopt::Long','any version') }; +eval { $v .= pmver('LWP::UserAgent','5') }; +eval { $v .= pmver('Pod::Usage','1.00') }; +eval { $v .= pmver('Test::More','0.96') }; +eval { $v .= pmver('URI','1') }; +eval { $v .= pmver('strict','any version') }; +eval { $v .= pmver('warnings','any version') }; + + +# All done. +$v .= <<'EOT'; + +Thanks for using my code. I hope it works for you. +If not, please try and include this output in the bug report. +That will help me reproduce the issue and solve your problem. + +EOT + +diag($v); +ok(1, "we really didn't test anything, just reporting data"); +$success = 1; + +# Work around another nasty module on CPAN. :/ +no warnings 'once'; +$Template::Test::NO_FLUSH = 1; +exit 0; |