1use strict;
2use warnings;
3
4use Cwd qw( abs_path );
5use Test::More;
6
7BEGIN {
8    my $help = <<'EOF';
9This test will not run unless you set MOOSE_TEST_MD to a true value.
10
11  Valid values are:
12
13     all                  Test every dist which depends on Moose except those
14                          that we know cannot be tested. This is a lot of
15                          distros (thousands).
16
17     Dist::1,Dist::2,...  Test the individual dists listed.
18
19     MooseX               Test all Moose extension distros
20                          (MooseX modules plus a few others).
21
22     1                    Run the default tests. We pick 200 random dists and
23                          test them.
24
25EOF
26
27    plan skip_all => $help
28        unless $ENV{MOOSE_TEST_MD};
29}
30
31use Test::Requires {
32    'Archive::Zip' => 0,    # or else .zip dists won't be able to be installed
33    'Test::DependentModules' => '0.13',
34    'MetaCPAN::API'          => '0.33',
35};
36
37use Test::DependentModules qw( test_module );
38
39use DateTime;
40use List::Util 1.33 qw(any);
41use Moose ();
42
43diag(     'Test run performed at: '
44        . DateTime->now
45        . ' with Moose '
46        . (Moose->VERSION || 'git repo') );
47
48$ENV{PERL_TEST_DM_LOG_DIR} = abs_path('.');
49delete @ENV{ qw( AUTHOR_TESTING RELEASE_TESTING SMOKE_TESTING ) };
50
51$ENV{ANY_MOOSE} = 'Moose';
52
53my $mcpan = MetaCPAN::API->new;
54my $res = $mcpan->post(
55    '/release/_search' => {
56        query  => { match_all => {} },
57        size   => 5000,
58        filter => { and => [
59            { or => [
60                { term => { 'release.dependency.module' => 'Moose' } },
61                { term => { 'release.dependency.module' => 'Moose::Role' } },
62                { term => { 'release.dependency.module' => 'Moose::Exporter' } },
63                { term => { 'release.dependency.module' => 'Class::MOP' } },
64                { term => { 'release.dependency.module' => 'MooseX::Role::Parameterized' } },
65                { term => { 'release.dependency.module' => 'Any::Moose' } },
66            ] },
67            { term => { 'release.status'   => 'latest' } },
68            { term => { 'release.maturity' => 'released' } },
69        ] },
70        fields => 'distribution'
71    }
72);
73
74my @skip_prefix = qw(Acme Task Bundle);
75my %skip;
76my %todo;
77
78my $hash;
79for my $line (<DATA>) {
80    chomp $line;
81    next unless $line =~ /\S/;
82    if ( $line =~ /^# (\w+)/ ) {
83        die "Invalid action in DATA section ($1)"
84            unless $1 eq 'SKIP' || $1 eq 'TODO';
85        $hash = $1 eq 'SKIP' ? \%skip : \%todo;
86    }
87
88    my ( $dist, $reason ) = $line =~ /^(\S*)\s*(?:#\s*(.*)\s*)?$/;
89    next unless defined $dist && length $dist;
90
91    $hash->{$dist} = $reason;
92}
93
94my %name_fix = (
95    'AI-Classifier'                  => 'AI::Classifier::Text',
96    'Algorithm-DependencySolver'     => 'Algorithm::DependencySolver::Solver',
97    'Alice'                          => 'Alice::HTTP::WebSocket',
98    'App-Foca'                       => 'App::Foca::Server',
99    'App-passmanager'                => 'App::PassManager',
100    'App-PipeFilter'                 => 'App::PipeFilter::Generic',
101    'Bio_AssemblyImprovement'        => 'Bio::AssemblyImprovement',
102    'Business-PaperlessTrans'        => 'Business::PaperlessTrans::Client',
103    'BuzzSaw'                        => 'App::BuzzSaw',
104    'Constructible'                  => 'Constructible::Maxima',
105    'CTKlib'                         => 'CTK',
106    'DCOLLINS-ANN-Locals'            => 'DCOLLINS::ANN::Robot',
107    'Dist-Zilla-Deb'                 => 'Dist::Zilla::Plugin::Deb::VersionFromChangelog',
108    'Dist-Zilla-Plugins-CJM'         => 'Dist::Zilla::Plugin::TemplateCJM',
109    'Dist-Zilla-Plugin-TemplateFile' => 'Dist::Zilla::Plugin::TemplateFiles',
110    'DSL-Tiny'                       => 'DSL::Tiny::Role',
111    'Google-Directions'              => 'Google::Directions::Client',
112    'GoogleMapsHeatmap'              => 'Geo::Heatmap',
113    'helm'                           => 'Helm',
114    'HTML-Untemplate'                => 'HTML::Linear',
115    'marc-moose'                     => 'MARC::Moose',
116    'mobirc'                         => 'App::Mobirc',
117    'Net-Amazon-EMR'                 => 'Net::Amazon::EMR::AddInstanceGroupsResult',
118    'OWL-Simple'                     => 'OWL::Simple::Class',
119    'Patterns-ChainOfResponsibility' => 'Patterns::ChainOfResponsibility::Application',
120    'PkgForge'                       => 'PkgForge::App',
121    'PkgForge-Server'                => 'PkgForge::Builder',
122    'Pod-Elemental-Transfomer-VimHTML' => 'Pod::Elemental::Transformer::VimHTML',
123    'Role-Identifiable'              => 'Role::Identifiable::HasIdent',
124    'smokebrew'                      => 'App::SmokeBrew',
125    'Treex-Parser-MSTperl'           => 'Treex::Tool::Parser::MSTperl',
126    'v6-alpha'                       => 'v6',
127    'WebService-LOC-CongRec'         => 'WebService::LOC::CongRec::Crawler',
128    'X11-XCB'                        => 'X11::XCB::Connection',
129    'XML-Ant-BuildFile'              => 'XML::Ant::BuildFile::Project',
130);
131
132my @dists = sort
133            grep { !$skip{$_} }
134            grep { my $dist = $_; !any { $dist =~ /^$_-/ } @skip_prefix }
135            map  { $_->{fields}{distribution} }
136            @{ $res->{hits}{hits} };
137
138if ( $ENV{MOOSE_TEST_MD} eq 'MooseX' ) {
139    @dists = grep {
140        /^(?:MooseX-|(?:Fey-ORM|KiokuDB|Bread-Board|Catalyst-Runtime|Reflex)$)/
141    } @dists;
142}
143elsif ( $ENV{MOOSE_TEST_MD} eq '1' ) {
144    diag(
145        <<'EOF'
146  Picking 200 random dependents to test. Set MOOSE_TEST_MD=all to test all
147  dependents or MOOSE_TEST_MD=MooseX to test extension modules only.
148EOF
149    );
150
151    my %indexes;
152    while ( keys %indexes < 200 ) {
153        $indexes{ int rand( scalar @dists ) } = 1;
154    }
155
156    @dists = @dists[ sort keys %indexes ];
157}
158elsif ( $ENV{MOOSE_TEST_MD} ne 'all' ) {
159    my @chosen = split /,/, $ENV{MOOSE_TEST_MD};
160    my %dists = map { $_ => 1 } @dists;
161    if (my @unknown = grep { !$dists{$_} } @chosen) {
162        die "Unknown dists: @unknown";
163    }
164    @dists = @chosen;
165}
166
167plan tests => scalar @dists;
168for my $dist (@dists) {
169    note($dist);
170    my $module = $dist;
171    $module = $name_fix{$module} if exists $name_fix{$module};
172    if ($todo{$dist}) {
173        my $reason = $todo{$dist};
174        $reason = '???' unless defined $reason;
175        local $TODO = $reason;
176        eval { test_module($module); 1 }
177            or fail("Died when testing $module: $@");
178    }
179    else {
180        eval { test_module($module); 1 }
181            or fail("Died when testing $module: $@");
182    }
183}
184
185__DATA__
186# SKIP: doesn't install deps properly (test::dm bugs?)
187App-Benchmark-Accessors                # Mojo::Base isn't installed
188Bot-BasicBot-Pluggable                 # Crypt::SaltedHash isn't installed
189Chart-Clicker                          # Layout::Manager::Compass isn't installed
190Chart-Weather-Forecast                 # Layout::Manager::Compass isn't installed
191Code-Statistics                        # MooseX::HasDefaults::RO isn't installed
192Connector                              # Config::Versioned isn't installed
193Context-Set                            # Lingua::EN::Words2Nums isn't installed
194DBIx-Class-DeploymentHandler           # Lingua::EN::Words2Nums isn't installed
195DBIx-Class-Migration                   # Lingua::EN::Words2Nums isn't installed
196DBIx-Class-Migration-RunScript-Trait-AuthenPassphrase  # Lingua::EN::Words2Nums isn't installed
197DBIx-Class-Schema-Loader               # Lingua::EN::Words2Nums isn't installed
198DBIx-ObjectMapper                      # Class::Accessor::Chained::Fast isn't installed
199Dependencies-Searcher                  # ack binary isn't installed, because test::dm doesn't set up $PATH
200Dist-Zilla-PluginBundle-AJGB           # Dist::Zilla::Plugin::KwaliteeTests isn't installed
201Dist-Zilla-PluginBundle-Author-BBYRD   # Dist::Zilla::Plugin::ReportPhase isn't installed
202Dist-Zilla-PluginBundle-JQUELIN        # Dist::Zilla::Plugin::CompileTests isn't installed
203Dist-Zilla-PluginBundle-MITHALDU       # List::AllUtils isn't installed
204Dist-Zilla-PluginBundle-NIGELM         # Dist::Zilla::Plugin::KwaliteeTests isn't installed
205Dist-Zilla-PluginBundle-PDONELAN       # Dist::Zilla::Plugin::CompileTests isn't installed
206Dist-Zilla-Util-FileGenerator          # MooseX::HasDefaults::RO isn't installed
207EBI-FGPT-FuzzyRecogniser               # GO::Parser isn't installed
208Erlang-Parser                          # Parse::Yapp::Driver isn't installed
209Foorum                                 # Sphinx::Search isn't installed
210Grimlock                               # DBIx::Class::EncodedColumn isn't installed
211Locale-Handle-Pluggable                # MooseX::Types::VariantTable::Declare isn't installed
212Message-Passing-STOMP                  # Message::Passing isn't installed
213mobirc                                 # HTTP::Session::State::GUID isn't installed
214Net-Bamboo                             # XML::Tidy isn't installed
215OpenERP-OOM                            # OpenERP::XMLRPC::Client isn't installed
216Tatsumaki-Template-Markapl             # Tatsumaki::Template isn't installed
217Text-Tradition                         # Bio::Phylo::IO isn't installed
218Text-Tradition-Analysis                # Bio::Phylo::IO isn't installed
219WebService-Strava                      # Any::URI::Escape isn't installed
220
221# SKIP: index issues (test::dm bugs?)
222Hopkins                                # can't find on cpan
223PostScript-Barcode                     # can't find on cpan
224
225# SKIP: no tests
226AI-ExpertSystem-Advanced               # no tests
227API-Assembla                           # no tests
228App-mkfeyorm                           # no tests
229App-passmanager                        # no tests
230App-Scrobble                           # no tests
231Bot-Applebot                           # no tests
232Catalyst-Authentication-Credential-Facebook-OAuth2 # no tests
233Catalyst-Authentication-Store-Fey-ORM  # no tests
234Catalyst-Controller-MovableType        # no tests
235Catalyst-Model-MenuGrinder             # no tests
236Chef                                   # no tests
237Data-SearchEngine-ElasticSearch        # no tests
238Dist-Zilla-MintingProfile-Author-ARODLAND # no tests
239Dist-Zilla-PluginBundle-ARODLAND       # no tests
240Dist-Zilla-PluginBundle-Author-OLIVER  # no tests
241Dist-Zilla-PluginBundle-NUFFIN         # no tests
242Dist-Zilla-Plugin-DualLife             # no tests
243Dist-Zilla-Plugin-Git-Describe         # no tests
244Dist-Zilla-Plugin-GitFlow              # no tests
245Dist-Zilla-Plugin-GitFmtChanges        # no tests
246Dist-Zilla-Plugin-MetaResourcesFromGit # no tests
247Dist-Zilla-Plugin-ModuleBuild-OptionalXS # no tests
248Dist-Zilla-Plugin-Rsync                # no tests
249Dist-Zilla-Plugin-TemplateFile         # no tests
250Dist-Zilla-Plugin-UploadToDuckPAN      # no tests
251Finance-Bank-SuomenVerkkomaksut        # no tests
252Games-HotPotato                        # no tests
253IO-Storm                               # no tests
254JIRA-Client-REST                       # no tests
255Kafka-Client                           # no tests
256LWP-UserAgent-OfflineCache             # no tests
257Markdown-Pod                           # no tests
258meon-Web                               # no tests
259MooseX-Types-DateTimeX                 # no tests
260MooseX-Types-DateTime-MoreCoercions    # no tests unless DateTime::Format::DateManip is installed
261Net-Azure-BlobService                  # no tests
262Net-Dropbox                            # no tests
263Net-Flowdock                           # no tests
264Net-OpenStack-Attack                   # no tests
265Net-Ostrich                            # no tests
266Net-Recurly                            # no tests
267OpenDocument-Template                  # no tests
268Pod-Weaver-Section-Consumes            # no tests
269Pod-Weaver-Section-Encoding            # no tests
270Pod-Weaver-Section-Extends             # no tests
271P50Tools                               # no tests
272POE-Component-Server-MySQL             # no tests
273Prophet-Devel                          # no tests
274Random-Quantum                         # no tests
275SchemaEvolution                        # no tests
276STD                                    # no tests
277Test-System                            # no tests
278Test-WWW-Mechanize-Dancer              # no tests
279WebService-Buxfer                      # no tests
280WebService-CloudFlare-Host             # no tests
281WWW-MenuGrinder                        # no tests
282WWW-UsePerl-Server                     # no tests
283WWW-WuFoo                              # no tests
284
285# SKIP: external dependencies
286Alien-Ditaa                            # runs java code
287Ambrosia                               # required mod_perl
288AnyEvent-MSN                           # requires Net::SSLeay (which requires libssl)
289AnyEvent-Multilog                      # requires multilog
290AnyEvent-Net-Curl-Queued               # requires libcurl
291AnyEvent-ZeroMQ                        # requires zeromq installation
292AnyMQ-ZeroMQ                           # requires zeromq installation
293Apache2-HttpEquiv                      # requires apache (for mod_perl)
294App-Fotagger                           # requires sdl
295App-Mimosa                             # requires fastacmd
296App-PgCryobit                          # requires postgres installation
297App-SimplenoteSync                     # requires File::ExtAttr which requires libattr
298App-WIoZ                               # requires cairo
299Archive-RPM                            # requires cpio
300Bio-MLST-Check                         # requires makeblastdb, etc
301Bio-Pipeline-Comparison                # requires bgzip, tabix, etc
302Bot-Jabbot                             # requires libidn
303Catalyst-Authentication-Store-CouchDB  # requires couchdb
304Catalyst-Engine-Stomp                  # depends on alien::activemq
305Catalyst-Plugin-Session-Store-Memcached # requires memcached
306Catalyst-View-SVG-TT-Graph             # requires librsvg
307Catalyst-View-Template-PHP             # requires php
308Cave-Wrapper                           # requires cave to be installed
309CHI-Driver-Redis                       # requires redis server
310Crypt-Random-Source-Strong-Win32       # windows only
311Curses-Toolkit                         # requires Curses which requires ncurses library
312Dackup                                 # requires ssh
313Dancer2-Plugin-Queue-MongoDB           # requires mongo
314Data-Collector                         # requires ssh
315Data-Riak                              # requires riak
316Database-Migrator-mysql                # requires mysql installation
317DBIx-MySQL-Replication-Slave           # requires mysql installation
318DBIx-PgLink                            # requires postgres installation
319Device-SMBus                           # requires libi2c
320Device-ZyXEL-IES                       # SNMP requires net-snmp
321Dist-Zilla-Plugin-ChangelogFromGit-Debian-Sequential  # requires dpkg
322Dist-Zilla-Plugin-Subversion           # requires svn bindings
323Dist-Zilla-Plugin-SVK                  # requires svn bindings
324Dist-Zilla-Plugin-SvnObtain            # requires svn bindings
325Dist-Zilla-Plugin-Upload-SCP           # requires ssh
326Fedora-App-MaintainerTools             # requires rpm to be installed
327Fedora-App-ReviewTool                  # requires koji to be installed
328Fuse-Template                          # requires libfuse
329Games-HotPotato                        # requires sdl
330Games-Tetris-Complete                  # requires threads
331Gapp                                   # requires gtk2
332GappX-NoticeBox                        # requires gtk2
333GnuPG-Interface                        # requires gpg
334GoogleMapsHeatmap                      # requires imagemagick
335Graphics-DZI                           # requires imagemagick
336Graphics-Primitive-Driver-Cairo        # requires cairo
337Graphics-Primitive-Driver-CairoPango   # requires cairo
338helm                                   # requires ssh
339HTML-Barcode-QRCode                    # requires libqrencode
340Hypatia-Chart-Clicker                  # requires cairo
341Hypatia-GraphViz2                      # requires graphviz
342Image-Placeholder                      # requires gd
343Image-TextMode                         # requires gd
344IRC-RemoteControl                      # requires libssh2
345JavaScript-Sprockets                   # requires sprocketize
346JavaScript-V8x-TestMoreish             # requires v8
347Koha-Contrib-Tamil                     # requires yaz
348K                                      # requires kx
349Lighttpd-Control                       # requires lighttpd
350Lingua-TreeTagger                      # requires treetagger to be installed
351Lorem                                  # requires cairo
352Math-Lsoda                             # requires f77
353Message-Passing-PSGI                   # requires zeromq installation
354Message-Passing-ZeroMQ                 # requires zeromq installation
355MongoDBI                               # requires mongo
356MongoDB                                # requires mongo
357MongoDB-Async                          # requires mongo
358MSWord-ToHTML                          # requires abiword to be installed
359MySQL-Slurp                            # requires mysql
360Net-DBus-Skype                         # requires dbus
361Net-Route                              # requires route
362Net-SFTP-Foreign-Exceptional           # depends on running ssh
363Net-UpYun                              # requires curl
364Net-ZooTool                            # requires curl
365Nginx-Control                          # requires nginx to be installed
366NLP-Service                            # requires javac
367Padre-Plugin-Cookbook                  # requires Wx
368Padre-Plugin-Moose                     # requires threaded perl
369Padre-Plugin-PDL                       # requires threaded perl
370Padre-Plugin-Snippet                   # requires threaded perl
371Paludis-UseCleaner                     # depends on cave::wrapper
372Pantry                                 # requires ssh
373Perlanet                               # HTML::Tidy requires tidyp
374Perl-Dist-Strawberry-BuildPerl-5123    # windows only
375Perl-Dist-Strawberry-BuildPerl-5123    # windows only
376Perl-Dist-WiX-BuildPerl-5123           # windows only
377Perl-Dist-WiX                          # windows only
378Perl-Dist-WiX                          # windows only
379Physics-UEMColumn                      # requires gsl
380PkgForge                               # requires rpm
381PkgForge-Registry                      # requires rpm
382PkgForge-Server                        # requires rpm
383Plack-App-FakeApache                   # requires mod_perl
384POE-Component-OpenSSH                  # requires ssh
385PulseAudio                             # requires pulseaudio
386RDF-TrineX-RuleEngine-Jena             # requires Jena
387Reflexive-ZmqSocket                    # requires zmq
388SDLx-Betweener                         # requires sdl
389SDLx-GUI                               # requires sdl
390Siebel-COM                             # windows only
391SimpleDB-Class                         # requires memcached
392SVN-Simple-Hook                        # requires svn
393SVN-Tree                               # requires svn
394Tapper-Cmd                             # requires ssh
395Tapper-MCP                             # depends on everything under the sun - some of which is broken
396Template-JavaScript                    # requires v8
397Test-Approvals                         # windows only
398Test-DBIx-Class                        # requires mysql
399Test-Gearman                           # requires gearman
400TheSchwartz-Moosified                  # requires DBI::Pg ?
401UAV-Pilot                              # requires sdl
402WebService-SendGrid                    # requires curl
403WebService-Tesco-API                   # requires curl
404WWW-Contact                            # depends on curl
405WWW-Curl-Simple                        # requires curl
406ZeroMQ-PubSub                          # requires zmq
407ZMQ-Declare                            # requires zmq
408ZMQx-Class                             # requires zmq
409
410# SKIP: flaky internet tests
411iTransact-Lite                         # tests rely on internet site
412Unicode-Emoji-E4U                      # tests rely on internet site
413WWW-eNom                               # tests rely on internet site
414WWW-Finances-Bovespa                   # tests rely on internet site
415WWW-Vimeo-Download                     # tests rely on internet site
416WWW-YouTube-Download-Channel           # tests rely on internet site
417
418# SKIP: graphical
419App-CPAN2Pkg                           # tk tests are graphical
420App-USBKeyCopyCon                      # gtk tests are graphical
421CatalystX-Restarter-GTK                # gtk tests are graphical
422Forest-Tree-Viewer-Gtk2                # gtk tests are graphical
423Games-Pandemic                         # tk tests are graphical
424Games-RailRoad                         # tk tests are graphical
425Games-Risk                             # tk tests are graphical
426Log-Dispatch-Gtk2-Notify               # gtk tests are graphical
427LPDS                                   # gtk tests are graphical
428Periscope                              # gtk tests are graphical
429Tk-Role-Dialog                         # tk tests are graphical
430Weaving-Tablet                         # tk tests are graphical
431
432# SKIP: prompts (or a dep prompts) or does something else dumb
433AI-Nerl                                # pdl has weird memory errors and hangs
434Bio-Tradis                             # Bio::DB::Sam prompts in Makefile.PL
435Bot-Backbone                           # poe-loop-ev prompts
436Cache-Ehcache                          # hangs if server exists on port 8080
437Cache-Memcached-Queue                  # Makefile.PL tries to auto-install deps manually
438CM-Permutation                         # OpenGL uses graphics in Makefile.PL
439Date-Biorhythm                         # Date::Business prompts in Makefile.PL
440DBIx-VersionedDDL                      # runs a script with /usr/bin/perl in the shbang line
441File-Tail-Scribe                       # tests hang
442Gearman-Driver                         # spews tar errors
443Gearman-SlotManager                    # tests hang
444IPC-AnyEvent-Gearman                   # tests hang
445Lingua-YALI                            # runs scripts with /usr/bin/env perl in the shbang line
446Net-SSH-Mechanize                      # the mock-ssh script it runs seems to spin endlessly
447POE-Component-Server-SimpleHTTP-PreFork # tests hang
448Test-SFTP                              # Term::ReadPassword prompts in tests
449WebService-FogBugz-XML                 # prompts
450WWW-Hashdb                             # test hangs, pegging cpu
451Zucchini                               # File::Rsync prompts in Makefile.PL
452
453# SKIP: broken configure
454Module-Install-ProvidesClass           # broken Makefile.PL
455Nagios-Interface                       # broken Makefile.PL
456TAP-Runner                             # Math::Cartesian::Product is broken
457
458# TODO: failing for a reason
459Algorithm-KernelKMeans                 # mx-types-common changes broke it
460Alien-BWIPP                            # given is experimental
461AnyEvent-BitTorrent                    # broken
462AnyEvent-Cron                          # intermittent failures
463AnyEvent-Inotify-Simple                # ??? (maybe issue with test::sweet)
464AnyEvent-JSONRPC                       # tests require recommended deps
465AnyEvent-Retry                         # mx-types-common changes broke it
466AnyMongo                               # doesn't compile
467App-ArchiveDevelCover                  # depends on nonexistent testdata::setup
468App-Dataninja                          # bad M::I install in inc/
469App-Foca                               # pod coverage fail
470App-HistHub                            # missing deps
471App-iTan                               # given is experimental
472App-Magpie                             # deps on URPM which doesn't exist
473App-MediaWiki2Git                      # git::repository is broken
474App-Munchies                           # depends on XML::DTD
475App-PM-Announce                        # deps on WWW::UsePerl::Journal::Post which doesn't exist
476App-Rssfilter                          # given is experimental
477App-Services                           # misnamed package
478App-TemplateServer                     # broken use of types
479App-TemplateServer-Provider-HTML-Template  # dep on app-templateserver
480App-TemplateServer-Provider-Mason      # dep on app-templateserver
481App-TemplateServer-Provider-TD         # dep on app-templateserver
482App-TimeTracker                        # missing dep on IO::Capture::Stdout
483App-Twimap                             # dep on Web::oEmbed::Common
484App-Twitch                             # given is experimental
485App-Validation-Automation              # dep on Switch
486App-Wubot                              # broken
487Archive-BagIt                          # pod coverage fail
488Argon                                  # missin dep on IO::Capture::Stderr
489Autocache                              # hash randomization
490Beagle                                 # depends on term::readline::perl
491Beam-Wire-Moose                        # broken
492Bio-MAGETAB                            # pod coverage fail and possibly hash randomization
493Bio_AssemblyImprovement                # broken
494BPM-Engine                             # incorrect deps
495Business-RO-CNP                        # broken
496Business-UPS-Tracking                  # given is experimental
497Cache-Profile                          # broken
498Catalyst-Action-Serialize-Data-Serializer  # looks like changes in opcode structure
499Catalyst-ActionRole-BuildDBICResult    # broken
500Catalyst-Authentication-Store-LDAP-AD-Class  # pod coverage fail
501Catalyst-Controller-AutoAssets         # broken
502Catalyst-Controller-Resources          # broken
503Catalyst-Controller-SOAP               # broken
504Catalyst-Engine-Embeddable             # broken
505Catalyst-Model-Akismet                 # broken (fake key no longer works)
506Catalyst-Model-FormFu                  # missing deps
507Catalyst-Model-Sedna                   # deps on Alien-Sedna which doesn't exist
508Catalyst-Plugin-Continuation           # undeclared dep
509Catalyst-Plugin-I18N-DBI               # pod coverage fail
510Catalyst-Plugin-Session-State-Cookie   # broken
511Catalyst-Plugin-Session-Store-TestMemcached # dep with corrupt archive
512Catalyst-Plugin-SwiffUploaderCookieHack  # undeclared dep
513Catalyst-TraitFor-Component-ConfigPerSite  # broken
514Catalyst-TraitFor-Request-PerLanguageDomains # dep on ::State::Cookie
515CatalystX-Declare                      # flaky tests (hash randomization?)
516CatalystX-ExtJS-Direct                 # broken
517CatalystX-ExtJS-REST                   # broken
518CatalystX-I18N                         # dep on ::State::Cookie
519CatalystX-MooseComponent               # broken
520CatalystX-OAuth2                       # deps on CatalystX::Test::MockContent, which doesn't exist
521CatalystX-SimpleLogin                  # broken
522CatalystX-Usul                         # proc::processtable doesn't load
523Chart-OFC2                             # coerce without a coercion
524Cheater                                # parse::randgen is broken
525CHI-Driver-SharedMem                   # hash randomization
526Class-OWL                              # uses CMOP::Class without loading cmop
527CloudApp-REST                          # pod coverage fail
528Cogwheel                               # uses ancient moose apis
529Config-Model                           # broken
530Config-Model-Backend-Augeas            # deps on Config::Model
531Config-Model-OpenSsh                   # deps on Config::Model
532Constructible                          # GD::SVG is a broken dist
533Constructible-Maxima                   # GD::SVG is a broken dist
534Coro-Amazon-SimpleDB                   # amazon::simpledb::client doesn't exist
535CPAN-Digger                            # requires DBD::SQLite
536CPAN-Source                            # missing deps
537Data-AMF                               # missing dep on YAML
538Data-Apache-mod_status                 # invalid characters in type name
539Data-Edit                              # dist is missing some modules
540Data-Feed                              # broken (only sometimes?)
541Data-Keys                              # hash randomization
542Data-PackageName                       # broken
543Data-Pensieve                          # missing deps
544Data-Pipeline                          # uses ancient moose apis
545Data-SCORM                             # pod coverage fail
546Data-Valve                             # for qw()
547DayDayUp                               # MojoX-Fixup-XHTML doesn't exist
548DBICx-Modeler-Generator                # broken (weirdly)
549DBIx-Class-FormTools                   # hash randomization
550DBIx-NoSQL-Store-Manager               # flaky tests (hash randomization?)
551DBIx-SchemaChecksum                    # broken
552Debian-Apt-PM                          # configure time failures
553Devel-Events                           # broken (role conflict)
554Dist-Zilla-Deb                         # pod coverage fail
555Dist-Zilla-Plugin-ChangelogFromGit-Debian # git::repository is broken
556Dist-Zilla-Plugin-CheckChangesHasContent  # broken
557Dist-Zilla-Plugin-Git                  # tests fail when run in a temp dir
558Dist-Zilla-Plugin-LaunchpadPPA         # depends on Dpkg::Changelog::Parse which doesn't exist
559Dist-Zilla-Plugin-PerlTidy             # expects to find dzil in the path
560Dist-Zilla-Plugin-Pinto-Add            # deps on Pinto::Common
561Dist-Zilla-Plugin-ProgCriticTests      # broken
562Dist-Zilla-Plugin-Test-ReportPrereqs   # broken
563DustyDB                                # uses old moose apis
564Dwimmer                                # broken
565ElasticSearchX-Model                   # hash randomization
566Facebook-Graph                         # broken
567FCGI-Engine                            # runs scripts without using $^X
568Fedora-Bugzilla                        # deps on nonexistent things
569Fey-Loader                             # broken
570FFmpeg-Thumbnail                       # undeclared dep
571File-Corresponding                     # broken
572File-DataClass                         # XML::DTD is a broken dist
573File-Stat-Moose                        # old moose apis
574File-Tail-Dir                          # intermittent fails (i think)
575FilmAffinity-UserRating                # hash randomization
576Finance-Bank-SentinelBenefits-Csv401kConverter  # hash randomization
577Form-Factory                           # uses old moose apis
578Form-Sensible                          # broken
579FormValidator-Nested                   # broken
580Frost                                  # broken
581Games-Dice-Loaded                      # flaky tests
582Geometry-Primitive                     # coerce with no coercion
583Gideon                                 # broken
584Git-PurePerl                           # for qw()
585Git-Release                            # undeclared dep on Mo
586Github-Score                           # broken tests
587Gitalist                               # broken
588GOBO                                   # coerce with no coercion
589Google-AJAX-Library                    # hash randomization
590Google-Chart                           # recreating type constraints
591Google-Spreadsheet-Agent               # pod::coverage fail
592Graph-Similarity                       # perlcritic fail
593Hailo                                  # given/when is experimental
594Hessian-Translator                     # perlcritic fail
595Hobocamp                               # configure_requires needs EU::CChecker
596Horris                                 # App::Horris isn't on cpan
597HPPPM-Demand-Management                # pod::coverage fail
598HTML-Element-Replacer                  # hash randomization
599HTML-FormFu-ExtJS                      # hash randomization
600HTML-FormHandlerX-Field-DateTimeNatural  # broken
601HTML-FormHandlerX-Field-URI-HTTP       # broken
602HTML-Grabber                           # pod::coverage fail
603HTML-TreeBuilderX-ASP_NET              # broken
604HTTP-Balancer                          # weird issue with proc::processtable
605HTTP-Engine                            # hash randomization
606HTTP-Engine-Middleware                 # missing dep on yaml
607Image-Robohash                         # Graphics::Magick doesn't exist
608JavaScript-Framework-jQuery            # coerce with no coercion
609Jenkins-NotificationListener           # missing dep on File::Read
610Jifty                                  # Test::WWW::Selenium needs devel::repl
611jQuery-Loader                          # for qw()
612JS-YUI-Loader                          # broken
613JSON-RPC-Common                        # for qw()
614JSORB                                  # broken
615Jungle                                 # broken
616Kamaitachi                             # pod::coverage fail
617KiokuDB-Backend-Files                  # broken
618KiokuDB-Backend-MongoDB                # pod fail
619LaTeX-TikZ                             # broken (with moose)
620LCFG-Build-PkgSpec                     # flaky tests (time zones?)
621Lingua-Diversity                       # pod fail
622marc-moose                             # broken (only sometimes?)
623Mac-iPhoto-Exif                        # smartmatch is experimental
624Magpie                                 # broken
625Mail-Summary-Tools                     # DT::Format::DateManip is broken
626MediaWiki-USERINFO                     # broken
627Metabase-Backend-MongoDB               # broken
628Metabase-Backend-SQL                   # broken (I think)
629Method-Signatures                      # doesn't like ANY_MOOSE=Moose
630Mildew                                 # Regexp::Grammars is broken on 5.18
631mobirc                                 # http::engine broken
632MooseX-App-Cmd-Command-BashComplete    # pod fail
633MooseX-Attribute-Prototype             # uses old moose apis
634MooseX-AttributeHelpers                # broken
635MooseX-Compile                         # broken
636MooseX-DBIC-Scaffold                   # needs unreleased sql-translator
637MooseX-Documenter                      # broken
638MooseX-DOM                             # "no Moose" unimports confess
639MooseX-Error-Exception-Class           # metaclass compat breakage
640MooseX-FSM                             # broken
641MooseX-Getopt-Usage                    # missing dep on Test::Class
642MooseX-GTIN                            # broken (under jenkins, at least)
643MooseX-InlineTypes                     # coerce without coercion
644MooseX-Meta-Attribute-Index            # old moose apis
645MooseX-Meta-Attribute-Lvalue           # old moose apis
646MooseX-Net-API                         # hash randomization
647MooseX-Q4MLog                          # Queue::Q4MLog is broken
648MooseX-Role-XMLRPC-Client              # requires LWP::Protocol::http which requires libssl
649MooseX-Scaffold                        # broken
650MooseX-Semantic                        # hash randomization
651MooseX-Struct                          # ancient moose apis
652MooseX-TrackDirty-Attributes           # broken
653MooseX-Types-Parameterizable           # broken
654MooseX-Types-Set-Object                # coerce without coercion
655MooseX-Validation-Doctypes             # _process_isa_option
656MooseX-WithCache                       # broken
657MouseX-Types                           # broken (with moose)
658MooseX-XSAccessor                      # coerce without coercion, etc
659MySQL-Util                             # pod-coverage fail
660Mvalve                                 # for qw()
661Nagios-Passive                         # broken
662Net-APNS                               # broken (with moose)
663Net-FluidDB                            # broken
664Net-Fluidinfo                          # broken
665Net-FreshBooks-API                     # broken
666Net-Google-Blogger                     # broken
667Net-Google-FederatedLogin              # broken
668Net-Google-PicasaWeb                   # broken
669NetHack-Item                           # NH::Monster::Spoiler is broken
670NetHack-Monster-Spoiler                # broken (MX::CA issues)
671Net-HTTP-API                           # hash randomization
672Net-HTTP-Factual                       # broken
673Net-ISC-DHCPd                          # hash randomization
674Net-Jabber-Bot                         # broken
675Net-Journyx                            # broken
676Net-Magrathea                          # pod fail
677Net-Mollom                             # broken
678Net-Parliament                         # broken
679Net-Plurk                              # broken
680Net-Rexster-Client                     # pod fail
681Net-SSLeay-OO                          # broken
682Net-StackExchange                      # broken
683Norma                                  # fails when trying to write to a read-only SQLite db file under jenkins, also fails when run manually
684NSMS-API                               # pod fail
685ODG-Record                             # Test::Benchmark broken
686OpenXML-Properties                     # incorrect deps
687Orochi                                 # for qw()
688Parallel-QueueWorker                   # flaky test (forking issues)
689Parse-CPAN-Perms                       # flaky tests (hash randomization?)
690PDF-TableX                             # for qw()
691Perlbal-Control                        # proc::processtable doesn't load
692Pg-BulkCopy                            # hardcodes /usr/bin/perl
693Pinto-Common                           # broken
694Pinto-Remove                           # deps on Pinto::Common
695Pinto-Server                           # deps on Pinto::Common
696Plack-Middleware-Image-Scale           # Image::Scale is broken
697Pod-Parser-I18N                        # missing dep on Data::Localize
698POE-Component-CPAN-Mirror-Multiplexer  # broken
699POE-Component-DirWatch                 # intermittent failures
700POE-Component-DirWatch-Object          # intermittent failures
701POE-Component-ResourcePool             # broken
702POE-Component-Server-PSGI              # broken deps
703POE-Component-Server-SimpleHTTP-PreFork  # broken deps
704Poet                                   # missing dep on Log::Any::Adapter::Log4perl
705POEx-ProxySession                      # broken deps
706POEx-PubSub                            # broken deps
707POEx-WorkerPool                        # broken deps
708PostScript-ScheduleGrid-XMLTV          # XMLTV doesn't exist
709PRANG                                  # broken
710Prophet                                # depends on term::readline::perl
711Queue-Leaky                            # broken
712Queue-Q4M                              # for qw()
713RackMan                                # kwalitee fail
714Railsish                               # dep on nonexistent dist
715RDF-Helper                             # for qw()
716RDF-Server                             # "no Moose" unimports confess
717Reaction                               # signatures is broken
718Reflexive-Role-DataMover               # broken (reflex::role changes?)
719Reflexive-Role-TCPServer               # broken (reflex::role changes?)
720Reflexive-Stream-Filtering             # broken
721RPC-Any                                # broken
722RPM-Spec                               # coerce with no coercion
723RT-ClientX-GrabBugs                    # scalar::does doesn't specify deps properly
724RTDevSys                               # pod fail
725Scene-Graph                            # has '+attr' in roles
726Scrappy                                # hash randomization
727Server-Control                         # proc::processtable doesn't load
728Shipment                               # locale::subcountry is broken
729Silki                                  # image::magick is broken
730SilkiX-Converter-Kwiki                 # file::mimeinfo expects (?-xism:
731SIOC                                   # for qw()
732Sloth                                  # rest::utils is broken
733Sque                                   # couldn't fork server for testing
734SRS-EPP-Proxy                          # depends on xml::epp
735String-Blender                         # broken
736Sys-RotateBackup                       # broken
737System-Wrapper                         # pod coverage fail
738TAEB                                   # broken
739TAP-Formatter-Bamboo                   # hash randomization
740TAP-Formatter-JUnit                    # hash randomization
741Tail-Tool                              # Getopt::Alt doesn't exist
742Tapper-Action                          # broken
743Tapper-CLI                             # sys::info::driver::linux is broken
744Tapper-Installer                       # sys::info::driver::linux is broken
745Tapper-MCP-MessageReceiver             # sys::info::driver::linux is broken
746Tapper-Reports-API                     # sys::info::driver::linux is broken
747Tapper-Reports-Receiver                # flaky tests (timeouts)
748Tapper-Testplan                        # sys::info::driver::linux is broken
749Telephone-Mnemonic-US                  # rpm-build-perl is broken
750Template-Plugin-Heritable              # weird dep issues (not test::dm related)
751Test-A8N                               # broken
752Test-Daily                             # configure errors
753Test-HTML-Spelling                     # broken
754Test-Moose-More                        # coerce without coercion
755Test-Pockito                           # broken
756Test-WWW-Selenium-More                 # Test::WWW::Selenium needs devel::repl
757Text-Clevery                           # broken
758Text-TEI-Collate                       # pod fail
759Text-Zilla                             # broken
760Thorium                                # depends on Hobocamp
761TPath                                  # regexp::grammars is broken on 5.18
762TPath-Forester-File                    # regexp::grammars is broken on 5.18
763TPath-Forester-Ref                     # regexp::grammars is broken on 5.18
764TryCatch-Error                         # broken
765UnRTF                                  # broken
766VCI                                    # for qw()
767Verby                                  # deps on poe::component::resourcepool
768W3C-SOAP                               # broken
769W3C-SOAP-WADL                          # broken
770Weather-TW                             # missing dep on Mojo::DOM
771Web-API-Mapper                         # broken
772WebNano-Controller-CRUD                # broken
773WebService-E4SE                        # pod coverage fail
774WebService-Embedly                     # broken
775Webservice-InterMine                   # hash randomization
776WebService-LOC-CongRec                 # broken
777WebService-Mirth                       # broken
778WebService-Uptrack                     # perlcritic fail
779WebService-Yes24                       # broken
780WiX3                                   # broken
781WSDL-Compile                           # flaky tests (hash randomization?)
782WWW-3Taps-API                          # pod fail
783WWW-Alltop                             # XML::SimpleObject configure fail
784WWW-Comix                              # uses ancient Moose::Policy stuff
785WWW-DataWiki                           # broken
786WWW-EFA                                # pod fail
787WWW-Fandango                           # bad dist
788WWW-FMyLife                            # broken
789WWW-Google-Moderator                   # hash randomization
790WWW-Google-Places                      # hash randomization
791WWW-Mechanize-Cached                   # tries to read from wrong build dir?
792WWW-Mechanize-Query                    # wrong deps (Mojo::DOM vs Mojo::Dom)
793WWW-Metalgate                          # Cache is broken
794WWW-Scramble                           # pod::coverage fail
795WWW-SearchWikipedia                    # hash randomization
796WWW-Sitemapper                         # broken
797WWW-StaticBlog                         # time::sofar is broken
798WWW-WebKit                             # missing configure_req on EU::PkgConfig
799WWW-Wookie                             # kwalitee fail
800WWW-Yahoo-Lyrics-JP                    # broken
801XIRCD                                  # undeclared deps
802XML-Compare                            # pod fail
803XML-EPP                                # coerce without coercion
804XML-SRS                                # deps on prang
805XML-Writer-Compiler                    # broken tests
806YellowBot-API                          # pod fail
807YUI-Loader                             # hash randomization
808Yukki                                  # git::repository is broken
809