4 use Cwd qw( abs_path );
8 plan skip_all => 'This test will not run unless you set MOOSE_TEST_MD to a true value'
9 unless $ENV{MOOSE_TEST_MD};
13 'Archive::Zip' => 0, # or else .zip dists won't be able to be installed
14 'Test::DependentModules' => '0.09', # skip all if not installed
15 'MetaCPAN::API' => '0.33',
17 use Test::DependentModules qw( test_module );
20 use List::MoreUtils qw(any);
23 diag( 'Test run performed at: '
28 $ENV{PERL_TEST_DM_LOG_DIR} = abs_path('.');
29 delete @ENV{ qw( AUTHOR_TESTING RELEASE_TESTING SMOKE_TESTING ) };
31 $ENV{ANY_MOOSE} = 'Moose';
33 my $mcpan = MetaCPAN::API->new;
34 my $res = $mcpan->post(
35 '/release/_search' => {
36 query => { match_all => {} },
40 { term => { 'release.dependency.module' => 'Moose' } },
41 { term => { 'release.dependency.module' => 'Moose::Role' } },
42 { term => { 'release.dependency.module' => 'Moose::Exporter' } },
43 { term => { 'release.dependency.module' => 'Class::MOP' } },
44 { term => { 'release.dependency.module' => 'MooseX::Role::Parameterized' } },
45 { term => { 'release.dependency.module' => 'Any::Moose' } },
47 { term => { 'release.status' => 'latest' } },
48 { term => { 'release.maturity' => 'released' } },
50 fields => 'distribution'
54 my %todo_reasons = map {
56 /^(\S*)\s*(?:#\s*(.*)\s*)?$/;
57 defined($1) && length($1) ? ($1 => $2) : ()
59 my %todo = map { $_ => 1 } keys %todo_reasons;
61 my @skip_prefix = qw(Acme Task Bundle);
62 my %skip = map { $_ => 1 } (
63 'App-CPAN2Pkg', # tk tests are graphical
64 'App-USBKeyCopyCon', # gtk tests are graphical
65 'Bot-Backbone', # poe-loop-ev prompts
66 'CatalystX-Restarter-GTK', # gtk tests are graphical
67 'CM-Permutation', # OpenGL uses graphics in Makefile.PL
68 'Dackup', # depends on running ssh
69 'Data-Collector', # depends on running ssh
70 'Date-Biorhythm', # Date::Business prompts in Makefile.PL
71 'Forest-Tree-Viewer-Gtk2', # gtk tests are graphical
72 'Games-Pandemic', # tk tests are graphical
73 'Games-RailRoad', # tk tests are graphical
74 'Games-Risk', # tk tests are graphical
75 'Gearman-Driver', # spews tar errors
76 'helm', # depends on running ssh
77 'Log-Dispatch-Gtk2-Notify', # gtk tests are graphical
78 'LPDS', # gtk tests are graphical
79 'Net-SFTP-Foreign-Exceptional', # depends on running ssh
80 'Periscope', # gtk tests are graphical
81 'POE-Component-OpenSSH', # depends on running ssh
82 'RDF-TrineX-RuleEngine-Jena', # prompts in Makefile.PL
83 'Test-SFTP', # Term::ReadPassword prompts in tests
84 'Tk-Role-Dialog', # tk tests are graphical
85 'Weaving-Tablet', # tk tests are graphical
86 'WWW-Hashdb', # test hangs, pegging cpu
87 'Zucchini', # File::Rsync prompts in Makefile.PL
91 'App-passmanager' => 'App::PassManager',
92 'App-PipeFilter' => 'App::PipeFilter::Generic',
93 'Constructible' => 'Constructible::Maxima',
94 'DCOLLINS-ANN-Locals' => 'DCOLLINS::ANN::Robot',
95 'Dist-Zilla-Deb' => 'Dist::Zilla::Plugin::Deb::VersionFromChangelog',
96 'Dist-Zilla-Plugins-CJM' => 'Dist::Zilla::Plugin::TemplateCJM',
97 'Dist-Zilla-Plugin-TemplateFile' => 'Dist::Zilla::Plugin::TemplateFiles',
98 'Google-Directions' => 'Google::Directions::Client',
100 'HTML-Untemplate' => 'HTML::Linear',
101 'marc-moose' => 'MARC::Moose',
102 'mobirc' => 'App::Mobirc',
103 'OWL-Simple' => 'OWL::Simple::Class',
104 'Patterns-ChainOfResponsibility' => 'Patterns::ChainOfResponsibility::Application',
105 'Role-Identifiable' => 'Role::Identifiable::HasIdent',
106 'smokebrew' => 'App::SmokeBrew',
107 'Treex-Parser-MSTperl' => 'Treex::Tool::Parser::MSTperl',
109 'WebService-LOC-CongRec' => 'WebService::LOC::CongRec::Crawler',
110 'X11-XCB' => 'X11::XCB::Connection',
111 'XML-Ant-BuildFile' => 'XML::Ant::BuildFile::Project',
115 grep { my $dist = $_; !any { $dist =~ /^$_-/ } @skip_prefix }
116 map { $_->{fields}{distribution} }
117 @{ $res->{hits}{hits} };
119 plan tests => scalar @dists;
120 for my $dist (@dists) {
123 $module = $name_fix{$module} if exists $name_fix{$module};
125 my $reason = $todo_reasons{$dist};
126 $reason = '???' unless defined $reason;
127 local $TODO = $reason;
128 eval { test_module($module); 1 }
129 or fail("Died when testing $module: $@");
132 eval { test_module($module); 1 }
133 or fail("Died when testing $module: $@");
138 # indexing issues (test::dm bugs)
139 Hopkins # couldn't find on cpan
140 Pod-Elemental-Transformer-VimHTML # couldn't find on cpan
141 PostScript-Barcode # couldn't find on cpan
143 # weird errors (test::dm bugs)
144 Alice # can't resolve distribution
145 Config-Model-Backend-Augeas # deps on Config::Model
146 Config-Model # can't run tests
147 Config-Model-OpenSsh # deps on Config::Model
148 CPAN-Patches # can't run tests
149 CPAN-Patches-Plugin-Debian # can't run tests
150 KiokuDB-Backend-BDB # can't run tests
151 Net-Azure-BlobService # ???
152 Pod-Weaver-Section-Consumes # ???
153 Pod-Weaver-Section-Extends # ???
154 TryCatch # can't run tests
155 XML-Rabbit # can't run tests
157 # doesn't install deps properly (test::dm bugs)
158 App-Benchmark-Accessors # deps aren't installed correctly (???)
159 Bot-BasicBot-Pluggable # deps aren't installed correctly (???)
160 Code-Statistics # deps aren't installed correctly (???)
161 Dist-Zilla-PluginBundle-Author-MELO # deps aren't installed correctly (???)
162 Dist-Zilla-PluginBundle-MITHALDU # deps aren't installed correctly (???)
163 Dist-Zilla-Util-FileGenerator # deps aren't installed correctly (???)
164 EBI-FGPT-FuzzyRecogniser # deps aren't installed correctly (???)
165 Erlang-Parser # deps aren't installed correctly (???)
166 Foorum # deps aren't installed correctly (???)
167 Graphics-Primitive-Driver-CairoPango # deps aren't installed correctly (???)
168 Grimlock # deps aren't installed correctly (???)
169 IM-Engine-Plugin-Dispatcher # deps aren't installed correctly (???)
170 IMS-CP-Manifest # deps aren't installed correctly (???)
171 Locale-Handle-Pluggable # deps aren't installed correctly (???)
172 marc-moose # deps aren't installed correctly (???)
173 Method-Signatures # deps aren't installed correctly (???)
174 mobirc # deps aren't installed correctly (???)
175 MooseX-APIRole # deps aren't installed correctly (???)
176 MooseX-MultiObject # deps aren't installed correctly (???)
177 Net-Bamboo # deps aren't installed correctly (???)
178 Net-Stripe # deps aren't installed correctly (???)
179 Number-Phone-NANP-Vanity # deps aren't installed correctly (???)
180 Perl-Achievements # deps aren't installed correctly (???)
181 Tatsumaki-Template-Markapl # deps aren't installed correctly (???)
182 Text-TEI-Collate # deps aren't installed correctly (???)
183 Text-Tradition # deps aren't installed correctly (???)
184 WebService-SOS # deps aren't installed correctly (???)
185 WWW-Mechanize-Cached # deps aren't installed correctly (???)
186 XML-Ant-BuildFile # deps aren't installed correctly (???)
189 AI-ExpertSystem-Advanced # no tests
190 API-Assembla # no tests
191 App-mkfeyorm # no tests
192 Bot-Applebot # no tests
193 Catalyst-Authentication-Credential-Facebook-OAuth2 # no tests
194 Catalyst-Authentication-Store-Fey-ORM # no tests
195 Catalyst-Controller-MovableType # no tests
196 Catalyst-Model-MenuGrinder # no tests
198 Data-SearchEngine-ElasticSearch # no tests
199 Dist-Zilla-MintingProfile-Author-ARODLAND # no tests
200 Dist-Zilla-PluginBundle-ARODLAND # no tests
201 Dist-Zilla-PluginBundle-Author-OLIVER # no tests
202 Dist-Zilla-PluginBundle-NUFFIN # no tests
203 Dist-Zilla-Plugin-DualLife # no tests
204 Dist-Zilla-Plugin-GitFlow # no tests
205 Dist-Zilla-Plugin-GitFmtChanges # no tests
206 Dist-Zilla-Plugin-MetaResourcesFromGit # no tests
207 Dist-Zilla-Plugin-ModuleBuild-OptionalXS # no tests
208 Dist-Zilla-Plugin-Rsync # no tests
209 Dist-Zilla-Plugin-TemplateFile # no tests
210 Dist-Zilla-Plugin-UploadToDuckPAN # no tests
211 Finance-Bank-SuomenVerkkomaksut # no tests
212 Games-HotPotato # no tests
214 JIRA-Client-REST # no tests
215 Kafka-Client # no tests
216 LWP-UserAgent-OfflineCache # no tests
217 Markdown-Pod # no tests
218 MooseX-Types-DateTimeX # no tests
219 Net-Dropbox # no tests
220 Net-Flowdock # no tests
221 Net-OpenStack-Attack # no tests
222 Net-Ostrich # no tests
223 Net-Recurly # no tests
224 OpenDocument-Template # no tests
225 Pod-Weaver-Section-Encoding # no tests
226 POE-Component-Server-MySQL # no tests
227 Random-Quantum # no tests
228 SchemaEvolution # no tests
230 Test-System # no tests
231 Test-WWW-Mechanize-Dancer # no tests
232 WebService-Buxfer # no tests
233 WebService-CloudFlare-Host # no tests
234 WWW-MenuGrinder # no tests
237 # external dependencies
238 Alien-ActiveMQ # requires activemq
239 AnyEvent-ZeroMQ # requires zeromq installation
240 AnyMQ-ZeroMQ # requires zeromq installation
241 Apache2-HttpEquiv # requires apache (for mod_perl)
242 App-Mimosa # requires fastacmd
243 App-PgCryobit # requires postgres installation
244 Archive-RPM # requires cpio
245 Catalyst-Engine-Stomp # depends on alien::activemq
246 Catalyst-Plugin-Session-Store-Memcached # requires memcached
247 Cave-Wrapper # requires cave to be installed
248 CHI-Driver-Redis # requires redis server
249 Crypt-Random-Source-Strong-Win32 # windows only
250 Dackup # requires ssh
251 Data-Collector # requires ssh
252 DBIx-PgLink # requires postgres installation
253 Dist-Zilla-Plugin-Subversion # requires svn bindings
254 Dist-Zilla-Plugin-SVK # requires svn bindings
255 Dist-Zilla-Plugin-SvnObtain # requires svn bindings
256 Fedora-App-MaintainerTools # requires rpm to be installed
257 Fedora-App-ReviewTool # requires koji to be installed
258 Games-HotPotato # requires sdl
259 Games-Tetris-Complete # requires threads
261 HTML-Barcode-QRCode # requires libqrencode
262 JavaScript-Sprockets # requires sprocketize
263 JavaScript-V8x-TestMoreish # requires v8
264 Koha-Contrib-Tamil # requires yaz
266 Lighttpd-Control # requires lighttpd
267 Lingua-TreeTagger # requires treetagger to be installed
268 Math-Lsoda # requires f77
269 MongoDBI # requires mongo
270 MongoDB # requires mongo
271 MSWord-ToHTML # requires abiword to be installed
272 Net-Route # requires route
273 Nginx-Control # requires nginx to be installed
274 NLP-Service # requires javac
275 Padre-Plugin-Moose # requires threaded perl
276 Padre-Plugin-PDL # requires threaded perl
277 Padre-Plugin-Snippet # requires threaded perl
278 Paludis-UseCleaner # depends on cave::wrapper
279 Perlanet # HTML::Tidy requires tidyp
280 Perl-Dist-Strawberry-BuildPerl-5123 # windows only
281 Perl-Dist-Strawberry-BuildPerl-5123 # windows only
282 Perl-Dist-WiX-BuildPerl-5123 # windows only
283 Perl-Dist-WiX # windows only
284 Perl-Dist-WiX # windows only
285 POE-Component-OpenSSH # requires ssh
286 RDF-TrineX-RuleEngine-Jena # requires Jena
287 SimpleDB-Class # requires memcached
288 SVN-Simple-Hook # requires svn
289 SVN-Tree # requires svn
290 Template-JavaScript # requires v8
291 ZeroMQ-PubSub # requires zmq
292 ZMQ-Declare # requires zmq
295 App-CPAN2Pkg # tk tests are graphical
296 App-USBKeyCopyCon # gtk tests are graphical
297 CatalystX-Restarter-GTK # gtk tests are graphical
298 Forest-Tree-Viewer-Gtk2 # gtk tests are graphical
299 Games-Pandemic # tk tests are graphical
300 Games-RailRoad # tk tests are graphical
301 Games-Risk # tk tests are graphical
302 Log-Dispatch-Gtk2-Notify # gtk tests are graphical
303 LPDS # gtk tests are graphical
304 Periscope # gtk tests are graphical
305 Tk-Role-Dialog # tk tests are graphical
306 Weaving-Tablet # tk tests are graphical
308 # failing for a reason
309 Algorithm-KernelKMeans # mx-types-common changes broke it
310 AnyEvent-BitTorrent # broken
311 AnyEvent-Cron # intermittent failures
312 AnyEvent-Inotify-Simple # ??? (maybe issue with test::sweet)
313 AnyEvent-JSONRPC # tests require recommended deps
314 AnyEvent-Retry # mx-types-common changes broke it
315 AnyMongo # doesn't compile
316 App-ArchiveDevelCover # depends on nonexistent testdata::setup
317 App-Dataninja # bad M::I install in inc/
318 App-Fotagger # Imager doesn't compile
319 App-HistHub # missing dep on JSON.pm
320 App-Magpie # deps on URPM which doesn't exist
321 App-MediaWiki2Git # git::repository is broken
322 App-Munchies # depends on XML::DTD
323 App-TemplateServer # broken use of types
324 App-TemplateServer-Provider-HTML-Template # dep on app-templateserver
325 App-TemplateServer-Provider-Mason # dep on app-templateserver
326 App-TemplateServer-Provider-TD # dep on app-templateserver
327 App-TimeTracker # git::repository is broken
328 App-Twimap # dep on Web::oEmbed::Common
329 App-Validation-Automation # dep on Switch
331 Beagle # depends on term::readline::perl
332 Bio-MAGETAB # datetime-format-datemanip is broken
333 Bot-Backbone # poe-loop-ev prompts
334 Cache-Profile # broken
335 Catalyst-Authentication-Store-LDAP-AD-Class # pod coverage fail
336 Catalyst-Controller-Resources # broken
337 Catalyst-Controller-SOAP # broken
338 Catalyst-Model-Sedna # deps on Alien-Sedna which doesn't exist
339 Catalyst-Plugin-Continuation # undeclared dep
340 Catalyst-Plugin-ErrorCatcher-ActiveMQ-Stomp # pod coverage fail
341 Catalyst-Plugin-Session-State-Cookie # broken
342 Catalyst-Plugin-Session-Store-TestMemcached # dep with corrupt archive
343 Catalyst-Plugin-SwiffUploaderCookieHack # undeclared dep
344 Catalyst-TraitFor-Request-PerLanguageDomains # dep on ::State::Cookie
345 CatalystX-I18N # dep on ::State::Cookie
346 CatalystX-MooseComponent # broken
347 CatalystX-SimpleAPI # depends on mxms
348 CatalystX-SimpleLogin # broken
349 CatalystX-Usul # proc::processtable doesn't load
350 Cheater # parse::randgen is broken
351 Class-OWL # uses CMOP::Class without loading cmop
352 CM-Permutation # OpenGL uses graphics in Makefile.PL
353 Cogwheel # uses ancient moose apis
354 Constructible # GD::SVG is a broken dist
355 Constructible-Maxima # GD::SVG is a broken dist
356 Coro-Amazon-SimpleDB # amazon::simpledb::client doesn't exist
357 CPAN-Digger # requires DBD::SQLite
358 Data-AMF # missing dep on YAML
359 Data-Apache-mod_status # invalid characters in type name
360 Data-Edit # dist is missing some modules
361 Data-Feed # broken (only sometimes?)
362 Data-PackageName # broken
363 Data-Pipeline # uses ancient moose apis
364 Data-SCORM # pod coverage fail
365 Date-Biorhythm # Date::Business prompts in Makefile.PL
366 DayDayUp # MojoX-Fixup-XHTML doesn't exist
367 DBICx-Modeler-Generator # broken (weirdly)
368 DBIx-Class-Migration # missing dep on Log::Contextual
369 DBIx-SchemaChecksum # broken
370 Debian-Apt-PM # configure time failures
371 Devel-Events # broken (role conflict)
372 Dist-Zilla-Deb # pod coverage fail
373 Dist-Zilla-Plugin-ChangelogFromGit-Debian # git::repository is broken
374 Dist-Zilla-Plugin-ProgCriticTests # broken
375 DustyDB # uses old moose apis
377 ELF-Extract-Sections # depends on mxms
378 ETLp # depends on mxms
379 Facebook-Graph # broken
380 Fedora-Bugzilla # deps on nonexistent things
381 FFmpeg-Thumbnail # undeclared dep
382 File-DataClass # XML::DTD is a broken dist
383 File-Stat-Moose # old moose apis
384 Finance-Bank-SentinelBenefits-Csv401kConverter # depends on mxms
385 Form-Factory # uses old moose apis
386 FormValidator-Nested # broken
388 Gitalist # deps on mxms
389 Git-CPAN-Patch # system::command is broken
390 GOBO # coerce with no coercion
391 Google-Chart # recreating type constraints
392 Google-Spreadsheet-Agent # pod::coverage fail
393 Hobocamp # configure_requires needs EU::CChecker
394 Horris # App::Horris isn't on cpan
395 HTML-Grabber # pod::coverage fail
396 HTML-TreeBuilderX-ASP_NET # broken
397 HTTP-Engine-Middleware # missing dep on yaml
398 Image-Robohash # Graphics::Magick doesn't exist
399 JavaScript-Framework-jQuery # coerce with no coercion
400 Jifty # Test::WWW::Selenium needs devel::repl
403 Kamaitachi # pod::coverage fail
404 KiokuDB-Backend-Files # broken
405 LaTeX-TikZ # broken (with moose)
406 Mail-Summary-Tools # DT::Format::DateManip is broken
407 MediaWiki-USERINFO # broken
408 Mildew # depends on mxms
409 mobirc # http::engine broken
410 MooseX-Attribute-Prototype # uses old moose apis
411 MooseX-DBIC-Scaffold # needs unreleased sql-translator
412 MooseX-Documenter # broken
413 MooseX-DOM # "no Moose" unimports confess
414 MooseX-Error-Exception-Class # metaclass compat breakage
415 MooseX-Getopt-Usage # missing dep on Test::Class
416 MooseX-Meta-Attribute-Index # old moose apis
417 MooseX-Meta-Attribute-Lvalue # old moose apis
418 MooseX-Method-Signatures # broken
419 MooseX-Struct # ancient moose apis
420 MooseX-Types-Parameterizable # broken
421 MouseX-Types # broken (with moose)
422 MySQL-Util # pod-coverage fail
423 Nagios-Passive # broken
424 Net-APNS # broken (with moose)
426 Net-Fluidinfo # broken
427 Net-Google-Blogger # broken
428 Net-Google-FederatedLogin # broken
429 NetHack-Item # NH::Monster::Spoiler is broken
430 NetHack-Monster-Spoiler # broken (MX::CA issues)
431 Net-HTTP-Factual # broken
434 Net-Parliament # broken
436 Net-StackExchange # broken
437 ODG-Record # Test::Benchmark broken
438 Perlbal-Control # proc::processtable doesn't load
439 Pg-BulkCopy # hardcodes /usr/bin/perl
440 Pinto-Common # broken
441 Pinto-Server # deps on pinto::common
442 Plack-Middleware-Image-Scale # Image::Scale is broken
443 POE-Component-CPAN-Mirror-Multiplexer # broken
444 POE-Component-ResourcePool # broken
445 POE-Component-Server-PSGI # broken deps
446 POE-Component-Server-SimpleHTTP-PreFork # broken deps
447 POEx-ProxySession # broken deps
448 POEx-PubSub # broken deps
449 POEx-WorkerPool # broken deps
450 PostScript-ScheduleGrid-XMLTV # XMLTV doesn't exist
452 Prophet # depends on term::readline::perl
454 Railsish # dep on nonexistent dist
455 RDF-Server # "no Moose" unimports confess
456 Reaction # signatures is broken
457 Reflexive-Role-DataMover # broken (reflex::role changes?)
458 Reflexive-Role-TCPServer # broken (reflex::role changes?)
459 Reflexive-Stream-Filtering # broken
461 Scene-Graph # has '+attr' in roles
462 Server-Control # proc::processtable doesn't load
463 Silki # image::magick is broken
464 SilkiX-Converter-Kwiki # file::mimeinfo expects (?-xism:
465 Sloth # rest::utils is broken
466 SRS-EPP-Proxy # depends on xml::epp
467 String-Blender # broken
469 Tail-Tool # Getopt::Alt doesn't exist
470 Tapper-CLI # sys::info::driver::linux is broken
471 Tapper-Installer # sys::info::driver::linux is broken
472 Tapper-MCP-MessageReceiver # sys::info::driver::linux is broken
473 Tapper-MCP # sys::info::driver::linux is broken
474 Tapper-Reports-API # sys::info::driver::linux is broken
475 Tapper-Testplan # sys::info::driver::linux is broken
476 Telephone-Mnemonic-US # rpm-build-perl is broken
477 Template-Plugin-Heritable # weird dep issues (not test::dm related)
479 Test-BDD-Cucumber # clone::fast is broken
480 Test-Daily # configure errors
481 Test-Pockito # broken
482 Test-SFTP # Term::ReadPassword prompts in tests
483 Test-WWW-Selenium-More # Test::WWW::Selenium needs devel::repl
484 Text-Clevery # broken
485 Thorium # depends on Hobocamp
486 TryCatch-Error # broken
487 Verby # deps on poe::component::resourcepool
488 Weather-TW # missing dep on Mojo::DOM
489 Web-API-Mapper # broken
490 WebNano-Controller-CRUD # broken
491 WebService-SlimTimer # depends on mxms
492 WebService-Yes24 # broken
494 WWW-Alltop # XML::SimpleObject configure fail
495 WWW-DataWiki # depends on mxms
496 WWW-Fandango # bad dist
498 WWW-Hashdb # test hangs, pegging cpu
499 WWW-Metalgate # Cache is broken
500 WWW-Scramble # pod::coverage fail
501 WWW-Sitemapper # broken
502 WWW-StaticBlog # time::sofar is broken
503 WWW-WebKit # missing configure_req on EU::PkgConfig
504 WWW-Yahoo-Lyrics-JP # broken
505 XIRCD # undeclared deps
506 XML-EPP # coerce without coercion
507 XML-LibXSLT-Easy # missing dep on mx-getopt, deps on mxms
508 XML-SRS # deps on prang
509 Yukki # git::repository is broken
510 Zucchini # File::Rsync prompts in Makefile.PL