3 plan skip_all => <<'END_HELP' unless $ENV{MOO_TEST_MD};
4 This test will not run unless you set MOO_TEST_MD to a true value.
8 all Test every dist which depends on Moose except those
9 that we know cannot be tested. This is a lot of
12 Dist::1,Dist::2,... Test the individual dists listed.
14 MooX Test all Moo extension distros.
16 1 Run the default tests. We pick 200 random dists and
21 use Test::DependentModules qw( test_modules );
25 # avoid any modules that depend on these
26 my @bad_prereqs = qw(Gtk2 Padre Wx);
28 my $mcpan = MetaCPAN::API->new;
29 my $res = $mcpan->post(
30 '/search/reverse_dependencies/Moo' => {
33 query => { "match_all" => {} },
36 { term => { 'release.status' => 'latest' } },
37 { term => { 'release.authorized' => \1 } },
38 { not => { filter => {
40 map { { term => { 'dependency.module' => $_ } } } @bad_prereqs,
48 fields => ['distribution', 'provides', 'metadata.provides'],
53 foreach my $line (<DATA>) {
55 if ($line =~ /^\s*(\S+)?\s*(#|$)/) {
60 die "Invalid entry in DATA section: $line";
64 my @modules = sort grep !/^(?:Task|Bundle|Acme)::/, map {
65 my $dist = $_->{fields}{distribution};
66 $bad_dist{$dist} ? () : (sort { length $a <=> length $b || $a cmp $b } do {
67 if (my $provides = $_->{fields}{provides}) {
68 ref $provides ? @$provides : ($provides);
70 elsif (my $provides = $_->{fields}{'metadata.provides'}) {
74 (my $module = $dist) =~ s/-/::/g;
78 } @{ $res->{hits}{hits} };
80 if ( $ENV{MOO_TEST_MD} eq 'MooX' ) {
81 @modules = grep /^MooX(?:$|::)/, @modules;
83 elsif ( $ENV{MOO_TEST_MD} eq '1' ) {
85 Picking 200 random dependents to test. Set MOO_TEST_MD=all to test all
86 dependents or MOO_TEST_MD=MooX to test extension modules only.
88 @modules = (List::Util::shuffle(@modules))[0..199];
90 elsif ( $ENV{MOO_TEST_MD} ne 'all' ) {
91 my @chosen = split /,/, $ENV{MOO_TEST_MD};
92 my %modules = map { $_ => 1 } @modules;
93 if (my @unknown = grep { !$modules{$_} } @chosen) {
94 die "Unknown modules: @unknown";
99 if (grep { $_ eq '--show' } @ARGV) {
100 print "Dependencies:\n";
101 print " $_\n" for @modules;
105 plan tests => scalar @modules;
106 test_modules(@modules);
116 Thrift-API-HiveClient
122 Dancer2-Session-Sereal
124 HTML-Zoom-Parser-HH5P
125 Message-Passing-ZeroMQ
130 Uninets-Check-Modules-HTTP
131 Uninets-Check-Modules-MongoDB
132 Uninets-Check-Modules-Redis
138 # bad prereq version listed
139 Dancer2-Session-Cookie
142 # broken, pending release
150 # broken by Moo change
151 Math-Rational-Approx # RT#84035
152 App-Services # RT#85255
153 GeoIP2 # https://github.com/maxmind/GeoIP2-perl/pull/1