use Test::More;
BEGIN {
- plan skip_all => <<'END_HELP' unless $ENV{MOO_TEST_MD};
+ plan skip_all => <<'END_HELP' unless $ENV{MOO_TEST_MD} || @ARGV;
This test will not run unless you set MOO_TEST_MD to a true value.
Valid values are:
my ( $dist, $reason ) = $line =~ /^(\S*)\s*(?:#\s*(.*?)\s*)?$/;
next unless defined $dist && length $dist;
- $hash->{$dist} = $reason || $sec_reason;
+ $hash->{$dist} = $reason ? "$sec_reason: $reason" : $reason;
}
my %todo_module;
}
@modules = sort @modules;
-if ( $ENV{MOO_TEST_MD} eq 'MooX' ) {
+my @args = grep { $_ ne '--show' } @ARGV;
+my $show = @args != @ARGV;
+my $pick = $ENV{MOO_TEST_MD} || shift @args || 'all';
+
+if ( $pick eq 'MooX' ) {
@modules = grep /^MooX(?:$|::)/, @modules;
}
-elsif ( $ENV{MOO_TEST_MD} eq '1' ) {
- diag(<<'EOF');
- Picking 200 random dependents to test. Set MOO_TEST_MD=all to test all
+elsif ( $pick =~ /^\d+$/ ) {
+ my $count = $pick == 1 ? 200 : $pick;
+ diag(<<"EOF");
+ Picking $count random dependents to test. Set MOO_TEST_MD=all to test all
dependents or MOO_TEST_MD=MooX to test extension modules only.
EOF
- @modules = (List::Util::shuffle(@modules))[0..199];
+ @modules = (List::Util::shuffle(@modules))[0 .. $count-1];
}
-elsif ( $ENV{MOO_TEST_MD} ne 'all' ) {
+elsif ( $pick ne 'all' ) {
my @chosen = split /,/, $ENV{MOO_TEST_MD};
my %modules = map { $_ => 1 } @modules;
if (my @unknown = grep { !$modules{$_} } @chosen) {
@modules = @chosen;
}
-if (grep { $_ eq '--show' } @ARGV) {
+if ($show) {
print "Dependents:\n";
print " $_\n" for @modules;
exit;
__DATA__
-# SKIP: no tests
-CPAN-Mirror-Finder
-Catmandu-AlephX
-Device-Hue
-Novel-Robot
-Novel-Robot-Browser
-Novel-Robot-Parser
-Thrift-API-HiveClient
-Tiezi-Robot-Parser
-
-# SKIP: broken
-App-Presto
-Catmandu-Store-Lucy
-Dancer2-Session-Sereal
-Data-Localize
-HTML-Zoom-Parser-HH5P
-Message-Passing-ZeroMQ
-Tak
-
-# SKIP: broken tests
-Template-Flute
-Uninets-Check-Modules-HTTP
-Uninets-Check-Modules-MongoDB
-Uninets-Check-Modules-Redis
-
-# SKIP: missing prereqs
-Catmandu-Z3950
-Tiezi-Robot
-
-# SKIP: bad prereq version listed
-Dancer2-Session-Cookie
-Dancer2-Session-JSON
-
-# TODO: broken, pending release
-Hg-Lib
-P9Y-ProcessTable
-GeoIP2
-
-# SKIP: OS specific
-Linux-AtaSmart
+# TODO: broken
+App-Presto # 0.009
+Dancer2-Session-Sereal # 0.001
+Mail-GcalReminder # 0.1
+DBIx-Class-IndexSearch-Dezi # 0.05
+Tak # 0.001003
+HTML-Zoom-Parser-HH5P # 0.002
+
+# TODO: broken prereqs
+Dancer-Plugin-FontSubset # 0.1.2 - Font::TTF::Scripts::Name
+
+# TODO: broken by perl 5.18
+App-DBCritic # 0.020 - smartmatch (GH #9)
+App-OS-Detect-MachineCores # 0.038 - smartmatch (rt#88855)
+Authen-HTTP-Signature # 0.02 - smartmatch (rt#88854)
+DBICx-Backend-Move # 1.000010 - smartmatch (rt#88853)
+Ruby-VersionManager # 0.004003 - smartmatch (rt#88852)
+Text-Keywords # 0.900 - smartmatch (rt#84339)
+Log-Message-Structured-Stringify-AsSereal # 0.10 - hash order (GH #1)
+WebService-HabitRPG # 0.21 - smartmatch (rt#88399)
+App-Rssfilter # 0.03 - smartmatch (GH #2)
+Net-Icecast2 # 0.005 - hash order via PHP::HTTPBuildQuery (rt#81570)
+POE-Component-ProcTerminator # 0.03 - hash order via Log::Fu (rt#88851)
+
+# TODO: broken by Regexp::Grammars (perl 5.18)
+Data-Sah # 0.15
+Language-Expr # 0.19
+Org-To-HTML # 0.07 - via Language::Expr
+Perinci-Access-Simple-Server # 0.12
+Perinci-CmdLine # 0.85 - via Data::Sah
+Perinci-To-Text # 0.22 - via Data::Sah
+Perinci-Sub-To-Text # 0.24 - via Data::Sah
+Finance-Bank-ID-BCA # 0.26 - via Perinci::CmdLine
+Software-Release-Watch # 0.01 - via Data::Sah, Perinci::CmdLine
+Software-Release-Watch-SW-wordpress # 0.01 - via Software::Release::Watch
+
+# SKIP: invalid prereqs
+Catmandu-Z3950 # 0.03 - ZOOM missing
+Dancer2-Session-JSON # 0.001 - Dancer2 bad version requirement
+
+# SKIP: misc
+GeoIP2 # 0.040000 - prereq Math::Int128 (requires gcc 4.4)
+Graphics-Potrace # 0.72 - external dependency
+GraphViz2 # 2.19 - external dependency
+Linux-AtaSmart # OS specific
+MaxMind-DB-Reader # 0.040003 - prereq Math::Int128 (requires gcc 4.4)
+MaxMind-DB-Common # 0.031002 - prereq Math::Int128 (requires gcc 4.4)
+Net-Works # 0.12 - prereq Math::Int128 (requires gcc 4.4)
+PortageXS # 0.3.1 - external dependency and broken prereq (Shell::EnvImporter)
+XML-GrammarBase # v0.2.2 - prereq XML::LibXSLT (hard to install)
+Forecast-IO # 0.21 - interactive tests
+Net-OpenVPN-Launcher # 0.1 - external dependency (and broken test)
+App-PerlWatcher-Level # 0.13 - depends on Linux::Inotify2
+Graph-Easy-Marpa # 2.00 - GraphVis2
+Net-OAuth-LP # 0.016 - relies on external service
+Message-Passing-ZeroMQ # 0.007 - external dependency
+Net-Docker # 0.002003 - external dependency
# TODO: broken by Moo change
Math-Rational-Approx # RT#84035
App-Services # RT#85255
+Hg-Lib # pending release