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 'Dackup', # depends on running ssh
64 'Data-Collector', # depends on running ssh
65 'Date-Biorhythm', # Date::Business prompts in Makefile.PL
66 'helm', # depends on running ssh
67 'Net-SFTP-Foreign-Exceptional', # depends on running ssh
68 'POE-Component-OpenSSH', # depends on running ssh
69 'Test-SFTP', # Term::ReadPassword prompts in tests
70 'WWW-Hashdb', # test hangs, pegging cpu
71 'Zucchini', # File::Rsync prompts in Makefile.PL
75 'App-PipeFilter' => 'App::PipeFilter::Generic',
76 'Constructible' => 'Constructible::Maxima',
77 'DCOLLINS-ANN-Locals' => 'DCOLLINS::ANN::Robot',
78 'Dist-Zilla-Deb' => 'Dist::Zilla::Plugin::Deb::VersionFromChangelog',
79 'Dist-Zilla-Plugin-TemplateFile' => 'Dist::Zilla::Plugin::TemplateFiles',
80 'Dist-Zilla-Plugins-CJM' => 'Dist::Zilla::Plugin::TemplateCJM',
81 'OWL-Simple' => 'OWL::Simple::Class',
82 'Patterns-ChainOfResponsibility' => 'Patterns::ChainOfResponsibility::Application',
83 'Role-Identifiable' => 'Role::Identifiable::HasIdent',
84 'X11-XCB' => 'X11::XCB::Connection',
85 'XML-Ant-BuildFile' => 'XML::Ant::BuildFile::Project',
87 'marc-moose' => 'MARC::Moose',
88 'mobirc' => 'App::Mobirc',
89 'smokebrew' => 'App::SmokeBrew',
92 my @modules = map { exists $name_fix{$_} ? $name_fix{$_} : $_ }
95 grep { my $dist = $_; !any { $dist =~ /^$_-/ } @skip_prefix }
96 map { $_->{fields}{distribution} }
97 @{ $res->{hits}{hits} };
99 plan tests => scalar @modules;
100 Test::DependentModules::_make_logs();
101 for my $module (@modules) {
103 if ($todo{$module}) {
104 my $reason = $todo_reasons{$module};
105 $reason = '???' unless defined $reason;
106 local $Test::DependentModules::TODO = $reason;
107 local $TODO = $reason;
108 eval { test_module($module); 1 }
109 or fail("Died when testing $module: $@");
112 eval { test_module($module); 1 }
113 or fail("Died when testing $module: $@");
119 Black-Board # not found on cpan because of mxd
120 Hopkins # not found on cpan (?)
121 PostScript-Barcode # not found on cpan (?)
122 VirtualBox-Manage # not found on cpan because of mxd
125 AI-ExpertSystem-Advanced
129 Catalyst-Authentication-Credential-Facebook-OAuth2
130 Catalyst-Authentication-Store-Fey-ORM
131 Catalyst-Controller-MovableType
132 Catalyst-Model-MenuGrinder
134 Data-SearchEngine-ElasticSearch
135 Dist-Zilla-Plugin-DualLife
136 Dist-Zilla-Plugin-GitFlow
137 Dist-Zilla-Plugin-MetaResourcesFromGit
138 Dist-Zilla-Plugin-Rsync
139 Dist-Zilla-PluginBundle-ARODLAND
140 Dist-Zilla-PluginBundle-Author-OLIVER
141 Dist-Zilla-PluginBundle-NUFFIN
144 LWP-UserAgent-OfflineCache
147 Pod-Weaver-Section-Encoding
148 POE-Component-Server-MySQL
154 WebService-CloudFlare-Host
157 # failing for a reason
158 Algorithm-KernelKMeans # mx-types-common changes broke it
159 Alien-ActiveMQ # can't install activemq
160 AnyEvent-Inotify-Simple # ??? (maybe issue with test::sweet)
161 AnyEvent-JSONRPC # tests require recommended deps
162 AnyEvent-Retry # mx-types-common changes broke it
163 AnyEvent-ZeroMQ # requires zeromq installation
164 App-CPAN2Pkg # Tk doesn't compile
165 App-Dataninja # bad M::I install in inc/
166 App-ForExample # getopt::chain is broken
167 App-Fotagger # Imager doesn't compile
168 App-HistHub # missing dep on JSON.pm
169 App-Magpie # deps on URPM which doesn't exist
170 App-PgCryobit # requires postgres installation
171 App-TemplateServer # broken use of types
172 App-TemplateServer-Provider-HTML-Template # dep on app-templateserver
173 App-TemplateServer-Provider-Mason # dep on app-templateserver
174 App-TemplateServer-Provider-TD # dep on app-templateserver
175 App-TimeTracker # git::repository is broken
176 App-USBKeyCopyCon # gtk tests are graphical
177 Archive-RPM # requires cpio
178 Bio-MAGETAB # datetime-format-datemanip is broken
179 Bot-Backbone # broken deps
180 Business-UPS-Tracking # broken
181 Cache-Profile # broken
182 Catalyst-Authentication-Store-LDAP-AD-Class # pod coverage fail
183 Catalyst-Controller-Resources # broken
184 Catalyst-Engine-Stomp # requires alien::activemq
185 Catalyst-Model-Search-ElasticSearch # requires elasticsearch
186 Catalyst-Model-Sedna # deps on Alien-Sedna which doesn't exist
187 Catalyst-Plugin-Continuation # undeclared dep
188 Catalyst-Plugin-ErrorCatcher-ActiveMQ-Stomp # pod coverage fail
189 Catalyst-Plugin-SwiffUploaderCookieHack # undeclared dep
190 Catalyst-TraitFor-Component-ConfigPerSite # undeclared dep
191 Catalyst-TraitFor-Controller-jQuery-jqGrid # bad test (missing files)
192 CatalystX-MooseComponent # broken
193 CatalystX-Restarter-GTK # gtk tests are graphical
194 CatalystX-RoleApplicator # broken
195 CatalystX-SimpleAPI # depends on ::RoleApplicator
196 CatalystX-SimpleLogin # broken
197 CatalystX-Usul # proc::processtable doesn't load
198 Cave-Wrapper # requires cave to be installed
199 Cheater # parse::randgen is broken
200 CHI-Driver-Redis # requires redis server
201 Class-OWL # uses CMOP::Class without loading cmop
202 CM-Permutation # OpenGL uses graphics in Makefile.PL
203 Cogwheel # uses ancient moose apis
204 Constructible # GD::SVG is a broken dist
205 Coro-Amazon-SimpleDB # amazon::simpledb::client doesn't exist
206 CPAN-Digger # requires DBD::SQLite
207 CPAN-Mini-Webserver # undeclared dep on lingua-stopwords
208 CPAN-Patches-Plugin-Debian # configure time failures
209 Dackup # depends on running ssh
210 Data-Apache-mod_status # invalid characters in type name
211 Data-Collector # depends on running ssh
212 Data-PackageName # broken
213 Data-Pipeline # uses ancient moose apis
214 Date-Biorhythm # Date::Business prompts in Makefile.PL
215 DayDayUp # MojoX-Fixup-XHTML doesn't exist
216 DBICx-Modeler-Generator # broken (weirdly)
217 DBIx-PgLink # requires postgres installation
218 DBIx-SchemaChecksum # broken
219 Debian-Apt-PM # configure time failures
220 Devel-Events # broken (role conflict)
221 Dist-Zilla-Plugin-ProgCriticTests # broken
222 Dist-Zilla-Plugin-SVK # requires svn bindings
223 DustyDB # uses old moose apis
224 ELF-Extract-Sections # uses stash entries with ::
225 ETLp # uses stash entries with ::
226 Fedora-App-MaintainerTools # requires rpm to be installed
227 Fedora-App-ReviewTool # requires koji to be installed
228 FFmpeg-Thumbnail # undeclared dep
229 File-DataClass # XML::DTD is a broken dist
230 Finance-Bank-SentinelBenefits-Csv401kConverter # uses stash entries with ::
231 Forest-Tree-Viewer-Gtk2 # gtk tests are graphical
232 Form-Factory # uses old moose apis
234 Games-Pandemic # tk doesn't build
235 Games-RailRoad # tk doesn't build
236 Games-Risk # tk doesn't build
237 Games-Tetris-Complete # requires threads
238 Getopt-Chain # p::d::builder changed dists
239 GOBO # coerce with no coercion
240 Google-Spreadsheet-Agent # pod::coverage fail
241 helm # depends on running ssh
242 Hobocamp # configure_requires needs EU::CChecker
243 Horris # App::Horris isn't on cpan
244 HTML-TreeBuilderX-ASP_NET # broken
245 IM-Engine-Plugin-Dispatcher # p::d::declarative changed dists
246 JavaScript-Framework-jQuery # coerce with no coercion
248 Kamaitachi # pod::coverage fail
249 KiokuDB-Backend-Files # broken
250 Lingua-TreeTagger # requires treetagger to be installed
251 Locale-MO-File # broken
252 Log-Dispatch-Gtk2-Notify # gtk tests are graphical
253 Mail-Summary-Tools # DT::Format::DateManip is broken
254 MediaWiki-USERINFO # broken
255 Mildew # regexp::grammars needs class::accessor
256 mobirc # http::engine broken
257 MooseX-Attribute-Prototype # uses old moose apis
258 MooseX-DBIC-Scaffold # needs unreleased sql-translator
259 MooseX-Documenter # broken
260 MooseX-DOM # "no Moose" unimports confess
261 MooseX-Error-Exception-Class # metaclass compat breakage
262 MooseX-Meta-Attribute-Index # old moose apis
263 MooseX-Meta-Attribute-Lvalue # old moose apis
264 MooseX-Struct # ancient moose apis
265 MooseX-TrackDirty-Attributes # old moose apis
266 MSWord-ToHTML # requires abiword to be installed
267 namespace-alias # won't compile
270 Net-Fluidinfo # broken
271 NetHack-Item # NH::Monster::Spoiler is broken
272 NetHack-Monster-Spoiler # broken (MX::CA issues)
273 Net-HTTP-Factual # broken
275 Net-Parliament # broken
277 Net-StackExchange # broken
278 Nginx-Control # requires nginx to be installed
279 ODG-Record # Test::Benchmark broken
280 Paludis-UseCleaner # needs cave::wrapper
281 Parse-FixedRecord # broken
282 Perlanet # HTML::Tidy requires tidyp
283 Perlbal-Control # proc::processtable doesn't load
284 Perl-Dist-Strawberry-BuildPerl-5123 # windows only
285 Perl-Dist-WiX-BuildPerl-5123 # windows only
286 Perl-Dist-WiX # windows only
287 Pg-BulkCopy # hardcodes /usr/bin/perl
288 POE-Component-CPAN-Mirror-Multiplexer # broken
289 POE-Component-DirWatch-Object # broken
290 POE-Component-OpenSSH # depends on running ssh
291 POE-Component-ResourcePool # broken
292 POE-Component-Server-PSGI # broken deps
293 POE-Component-Server-SimpleHTTP-PreFork # broken deps
294 POEx-ProxySession # broken deps
295 POEx-PubSub # broken deps
296 POEx-WorkerPool # broken deps
298 RDF-Server # "no Moose" unimports confess
299 Reaction # signatures is broken
300 Reflexive-Role-Collective # broken (reflex::role changes?)
301 Reflexive-Role-DataMover # broken (reflex::role changes?)
302 Reflexive-Role-TCPServer # broken (reflex::role changes?)
304 Scene-Graph # has '+attr' in roles
305 Server-Control # proc::processtable doesn't load
306 SilkiX-Converter-Kwiki # file::mimeinfo expects (?-xism:
307 SimpleDB-Class # requires memcached
308 SRS-EPP-Proxy # depends on xml::epp
309 String-Blender # broken
311 Tail-Tool # Getopt::Alt doesn't exist
312 Tapper-Installer # sys::info::driver::linux is broken
313 Tapper-MCP-MessageReceiver # sys::info::driver::linux is broken
314 Tapper-MCP # sys::info::driver::linux is broken
315 Tapper-Reports-API # sys::info::driver::linux is broken
316 Tapper-Testplan # sys::info::driver::linux is broken
317 Telephone-Mnemonic-US # rpm-build-perl is broken
319 Test-Daily # configure errors
320 Test-SFTP # Term::ReadPassword prompts in tests
321 Thorium # requires Hobocamp
322 Tk-Role-Dialog # tk won't compile
323 TryCatch-Error # broken
324 Verby # requires poe::component::resourcepool
325 Weaving-Tablet # tk doesn't compile
326 WebService-SlimTimer # weird mxms error
327 WebService-Yes24 # broken
329 WWW-Alltop # XML::SimpleObject configure fail
330 WWW-Fandango # bad dist
332 WWW-Hashdb # test hangs, pegging cpu
333 WWW-Metalgate # Cache is broken
334 WWW-Scramble # pod::coverage fail
335 WWW-StaticBlog # time::sofar is broken
336 WWW-Yahoo-Lyrics-JP # broken
337 XIRCD # undeclared deps
338 XML-EPP # coerce without coercion
339 XML-LibXSLT-Easy # missing dep on mx-getopt
340 Yukki # git::repository is broken
341 Zucchini # File::Rsync prompts in Makefile.PL