Commit | Line | Data |
f81522ba |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use Cwd qw( abs_path ); |
5 | use Test::More; |
6 | |
52c21688 |
7 | BEGIN { |
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}; |
10 | } |
f81522ba |
11 | |
4d438a84 |
12 | use Test::Requires { |
f578f218 |
13 | 'Archive::Zip' => 0, # or else .zip dists won't be able to be installed |
03fd72d0 |
14 | 'Test::DependentModules' => '0.09', # skip all if not installed |
479647ca |
15 | 'MetaCPAN::API' => '0.33', |
4d438a84 |
16 | }; |
3bf21566 |
17 | use Test::DependentModules qw( test_module ); |
f81522ba |
18 | |
7028866a |
19 | use DateTime; |
479647ca |
20 | use List::MoreUtils qw(any); |
7028866a |
21 | use Moose (); |
7028866a |
22 | |
41a0b2a9 |
23 | diag( 'Test run performed at: ' |
24 | . DateTime->now |
479647ca |
25 | . ' with Moose ' |
41a0b2a9 |
26 | . Moose->VERSION ); |
7028866a |
27 | |
f81522ba |
28 | $ENV{PERL_TEST_DM_LOG_DIR} = abs_path('.'); |
e2f01bb9 |
29 | delete @ENV{ qw( AUTHOR_TESTING RELEASE_TESTING SMOKE_TESTING ) }; |
f81522ba |
30 | |
28885fe7 |
31 | $ENV{ANY_MOOSE} = 'Moose'; |
32 | |
479647ca |
33 | my $mcpan = MetaCPAN::API->new; |
34 | my $res = $mcpan->post( |
35 | '/release/_search' => { |
36 | query => { match_all => {} }, |
37 | size => 5000, |
38 | filter => { and => [ |
39 | { or => [ |
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' } }, |
28885fe7 |
45 | { term => { 'release.dependency.module' => 'Any::Moose' } }, |
479647ca |
46 | ] }, |
47 | { term => { 'release.status' => 'latest' } }, |
48 | { term => { 'release.maturity' => 'released' } }, |
49 | ] }, |
50 | fields => 'distribution' |
51 | } |
52 | ); |
f81522ba |
53 | |
91dab191 |
54 | my %todo_reasons = map { |
3bf21566 |
55 | chomp; |
56 | /^(\S*)\s*(?:#\s*(.*)\s*)?$/; |
57 | defined($1) && length($1) ? ($1 => $2) : () |
58 | } <DATA>; |
91dab191 |
59 | my %todo = map { $_ => 1 } keys %todo_reasons; |
60 | |
479647ca |
61 | my @skip_prefix = qw(Acme Task Bundle); |
91dab191 |
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 |
72 | ); |
73 | |
479647ca |
74 | my %name_fix = ( |
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', |
86 | 'helm' => 'Helm', |
87 | 'marc-moose' => 'MARC::Moose', |
88 | 'mobirc' => 'App::Mobirc', |
89 | 'smokebrew' => 'App::SmokeBrew', |
90 | 'v6-alpha' => 'v6', |
91 | ); |
92 | my @modules = map { exists $name_fix{$_} ? $name_fix{$_} : $_ } |
93 | sort |
91dab191 |
94 | grep { !$skip{$_} } |
479647ca |
95 | grep { my $dist = $_; !any { $dist =~ /^$_-/ } @skip_prefix } |
96 | map { $_->{fields}{distribution} } |
97 | @{ $res->{hits}{hits} }; |
98 | |
99 | plan tests => scalar @modules; |
3bf21566 |
100 | for my $module (@modules) { |
91dab191 |
101 | diag($module); |
102 | if ($todo{$module}) { |
103 | my $reason = $todo_reasons{$module}; |
3bf21566 |
104 | $reason = '???' unless defined $reason; |
7e39015e |
105 | local $TODO = $reason; |
106 | eval { test_module($module); 1 } |
107 | or fail("Died when testing $module: $@"); |
3bf21566 |
108 | } |
109 | else { |
7e39015e |
110 | eval { test_module($module); 1 } |
111 | or fail("Died when testing $module: $@"); |
3bf21566 |
112 | } |
113 | } |
734e40ed |
114 | |
c5e3151e |
115 | __DATA__ |
ec58481b |
116 | # not in cpan index |
6e017ae3 |
117 | Black-Board # not found on cpan because of mxd |
6e017ae3 |
118 | Hopkins # not found on cpan (?) |
119 | PostScript-Barcode # not found on cpan (?) |
ec58481b |
120 | VirtualBox-Manage # not found on cpan because of mxd |
121 | |
122 | # no tests |
123 | AI-ExpertSystem-Advanced |
124 | API-Assembla |
125 | App-mkfeyorm |
126 | Bot-Applebot |
127 | Catalyst-Authentication-Credential-Facebook-OAuth2 |
128 | Catalyst-Authentication-Store-Fey-ORM |
129 | Catalyst-Controller-MovableType |
130 | Catalyst-Model-MenuGrinder |
4513d67e |
131 | Chef |
132 | Data-SearchEngine-ElasticSearch |
133 | Dist-Zilla-Plugin-DualLife |
134 | Dist-Zilla-Plugin-GitFlow |
135 | Dist-Zilla-Plugin-MetaResourcesFromGit |
136 | Dist-Zilla-Plugin-Rsync |
137 | Dist-Zilla-PluginBundle-ARODLAND |
138 | Dist-Zilla-PluginBundle-Author-OLIVER |
139 | Dist-Zilla-PluginBundle-NUFFIN |
140 | Games-HotPotato |
141 | Kafka-Client |
142 | LWP-UserAgent-OfflineCache |
ec58481b |
143 | Net-Dropbox |
144 | Net-Recurly |
4513d67e |
145 | Pod-Weaver-Section-Encoding |
ec58481b |
146 | POE-Component-Server-MySQL |
147 | Random-Quantum |
148 | SchemaEvolution |
149 | STD |
4513d67e |
150 | Test-System |
ec58481b |
151 | WebService-Buxfer |
152 | WebService-CloudFlare-Host |
4513d67e |
153 | WWW-MenuGrinder |
479647ca |
154 | |
8f655ca2 |
155 | # failing for a reason |
8f655ca2 |
156 | Algorithm-KernelKMeans # mx-types-common changes broke it |
e8ba9394 |
157 | Alien-ActiveMQ # can't install activemq |
8f655ca2 |
158 | AnyEvent-Inotify-Simple # ??? (maybe issue with test::sweet) |
159 | AnyEvent-JSONRPC # tests require recommended deps |
160 | AnyEvent-Retry # mx-types-common changes broke it |
161 | AnyEvent-ZeroMQ # requires zeromq installation |
ec58481b |
162 | App-CPAN2Pkg # Tk doesn't compile |
8f655ca2 |
163 | App-Dataninja # bad M::I install in inc/ |
164 | App-ForExample # getopt::chain is broken |
ec58481b |
165 | App-Fotagger # Imager doesn't compile |
4513d67e |
166 | App-HistHub # missing dep on JSON.pm |
8f655ca2 |
167 | App-Magpie # deps on URPM which doesn't exist |
168 | App-PgCryobit # requires postgres installation |
169 | App-TemplateServer # broken use of types |
170 | App-TemplateServer-Provider-HTML-Template # dep on app-templateserver |
171 | App-TemplateServer-Provider-Mason # dep on app-templateserver |
172 | App-TemplateServer-Provider-TD # dep on app-templateserver |
173 | App-TimeTracker # git::repository is broken |
174 | App-USBKeyCopyCon # gtk tests are graphical |
8f655ca2 |
175 | Archive-RPM # requires cpio |
176 | Bio-MAGETAB # datetime-format-datemanip is broken |
8f655ca2 |
177 | Bot-Backbone # broken deps |
178 | Business-UPS-Tracking # broken |
8f655ca2 |
179 | Cache-Profile # broken |
8f655ca2 |
180 | Catalyst-Authentication-Store-LDAP-AD-Class # pod coverage fail |
8f655ca2 |
181 | Catalyst-Controller-Resources # broken |
e8ba9394 |
182 | Catalyst-Engine-Stomp # requires alien::activemq |
e8ba9394 |
183 | Catalyst-Model-Search-ElasticSearch # requires elasticsearch |
184 | Catalyst-Model-Sedna # deps on Alien-Sedna which doesn't exist |
185 | Catalyst-Plugin-Continuation # undeclared dep |
186 | Catalyst-Plugin-ErrorCatcher-ActiveMQ-Stomp # pod coverage fail |
187 | Catalyst-Plugin-SwiffUploaderCookieHack # undeclared dep |
188 | Catalyst-TraitFor-Component-ConfigPerSite # undeclared dep |
189 | Catalyst-TraitFor-Controller-jQuery-jqGrid # bad test (missing files) |
190 | CatalystX-MooseComponent # broken |
191 | CatalystX-Restarter-GTK # gtk tests are graphical |
192 | CatalystX-RoleApplicator # broken |
193 | CatalystX-SimpleAPI # depends on ::RoleApplicator |
194 | CatalystX-SimpleLogin # broken |
195 | CatalystX-Usul # proc::processtable doesn't load |
196 | Cave-Wrapper # requires cave to be installed |
197 | Cheater # parse::randgen is broken |
ec58481b |
198 | CHI-Driver-Redis # requires redis server |
e8ba9394 |
199 | Class-OWL # uses CMOP::Class without loading cmop |
ec58481b |
200 | CM-Permutation # OpenGL uses graphics in Makefile.PL |
e8ba9394 |
201 | Cogwheel # uses ancient moose apis |
202 | Constructible # GD::SVG is a broken dist |
203 | Coro-Amazon-SimpleDB # amazon::simpledb::client doesn't exist |
4513d67e |
204 | CPAN-Digger # requires DBD::SQLite |
ec58481b |
205 | CPAN-Mini-Webserver # undeclared dep on lingua-stopwords |
206 | CPAN-Patches-Plugin-Debian # configure time failures |
207 | Dackup # depends on running ssh |
cf9832d2 |
208 | Data-Apache-mod_status # invalid characters in type name |
ec58481b |
209 | Data-Collector # depends on running ssh |
cf9832d2 |
210 | Data-PackageName # broken |
211 | Data-Pipeline # uses ancient moose apis |
ec58481b |
212 | Date-Biorhythm # Date::Business prompts in Makefile.PL |
cf9832d2 |
213 | DayDayUp # MojoX-Fixup-XHTML doesn't exist |
ec58481b |
214 | DBICx-Modeler-Generator # broken (weirdly) |
215 | DBIx-PgLink # requires postgres installation |
216 | DBIx-SchemaChecksum # broken |
217 | Debian-Apt-PM # configure time failures |
cf9832d2 |
218 | Devel-Events # broken (role conflict) |
9acdcfbb |
219 | Dist-Zilla-Plugin-ProgCriticTests # broken |
220 | Dist-Zilla-Plugin-SVK # requires svn bindings |
221 | DustyDB # uses old moose apis |
222 | ELF-Extract-Sections # uses stash entries with :: |
223 | ETLp # uses stash entries with :: |
9acdcfbb |
224 | Fedora-App-MaintainerTools # requires rpm to be installed |
225 | Fedora-App-ReviewTool # requires koji to be installed |
ec58481b |
226 | FFmpeg-Thumbnail # undeclared dep |
9acdcfbb |
227 | File-DataClass # XML::DTD is a broken dist |
228 | Finance-Bank-SentinelBenefits-Csv401kConverter # uses stash entries with :: |
229 | Forest-Tree-Viewer-Gtk2 # gtk tests are graphical |
230 | Form-Factory # uses old moose apis |
231 | Frost # broken |
9acdcfbb |
232 | Games-Pandemic # tk doesn't build |
233 | Games-RailRoad # tk doesn't build |
234 | Games-Risk # tk doesn't build |
235 | Games-Tetris-Complete # requires threads |
236 | Getopt-Chain # p::d::builder changed dists |
ec58481b |
237 | GOBO # coerce with no coercion |
9acdcfbb |
238 | Google-Spreadsheet-Agent # pod::coverage fail |
ec58481b |
239 | helm # depends on running ssh |
9acdcfbb |
240 | Hobocamp # configure_requires needs EU::CChecker |
241 | Horris # App::Horris isn't on cpan |
ec58481b |
242 | HTML-TreeBuilderX-ASP_NET # broken |
9acdcfbb |
243 | IM-Engine-Plugin-Dispatcher # p::d::declarative changed dists |
244 | JavaScript-Framework-jQuery # coerce with no coercion |
245 | Jungle # broken |
246 | Kamaitachi # pod::coverage fail |
247 | KiokuDB-Backend-Files # broken |
ec58481b |
248 | Lingua-TreeTagger # requires treetagger to be installed |
9acdcfbb |
249 | Locale-MO-File # broken |
250 | Log-Dispatch-Gtk2-Notify # gtk tests are graphical |
9acdcfbb |
251 | Mail-Summary-Tools # DT::Format::DateManip is broken |
252 | MediaWiki-USERINFO # broken |
4513d67e |
253 | Mildew # regexp::grammars needs class::accessor |
ec58481b |
254 | mobirc # http::engine broken |
9acdcfbb |
255 | MooseX-Attribute-Prototype # uses old moose apis |
256 | MooseX-DBIC-Scaffold # needs unreleased sql-translator |
9acdcfbb |
257 | MooseX-Documenter # broken |
ec58481b |
258 | MooseX-DOM # "no Moose" unimports confess |
9acdcfbb |
259 | MooseX-Error-Exception-Class # metaclass compat breakage |
260 | MooseX-Meta-Attribute-Index # old moose apis |
261 | MooseX-Meta-Attribute-Lvalue # old moose apis |
262 | MooseX-Struct # ancient moose apis |
263 | MooseX-TrackDirty-Attributes # old moose apis |
ec58481b |
264 | MSWord-ToHTML # requires abiword to be installed |
265 | namespace-alias # won't compile |
9acdcfbb |
266 | Net-Douban # broken |
9acdcfbb |
267 | Net-FluidDB # broken |
268 | Net-Fluidinfo # broken |
ec58481b |
269 | NetHack-Item # NH::Monster::Spoiler is broken |
270 | NetHack-Monster-Spoiler # broken (MX::CA issues) |
9acdcfbb |
271 | Net-HTTP-Factual # broken |
272 | Net-Journyx # broken |
273 | Net-Parliament # broken |
274 | Net-Plurk # broken |
9acdcfbb |
275 | Net-StackExchange # broken |
9acdcfbb |
276 | Nginx-Control # requires nginx to be installed |
277 | ODG-Record # Test::Benchmark broken |
ec58481b |
278 | Paludis-UseCleaner # needs cave::wrapper |
279 | Parse-FixedRecord # broken |
280 | Perlanet # HTML::Tidy requires tidyp |
281 | Perlbal-Control # proc::processtable doesn't load |
282 | Perl-Dist-Strawberry-BuildPerl-5123 # windows only |
283 | Perl-Dist-WiX-BuildPerl-5123 # windows only |
284 | Perl-Dist-WiX # windows only |
285 | Pg-BulkCopy # hardcodes /usr/bin/perl |
286 | POE-Component-CPAN-Mirror-Multiplexer # broken |
9acdcfbb |
287 | POE-Component-DirWatch-Object # broken |
ec58481b |
288 | POE-Component-OpenSSH # depends on running ssh |
9acdcfbb |
289 | POE-Component-ResourcePool # broken |
9acdcfbb |
290 | POE-Component-Server-PSGI # broken deps |
ec58481b |
291 | POE-Component-Server-SimpleHTTP-PreFork # broken deps |
9acdcfbb |
292 | POEx-ProxySession # broken deps |
293 | POEx-PubSub # broken deps |
294 | POEx-WorkerPool # broken deps |
9acdcfbb |
295 | Queue-Leaky # broken |
9acdcfbb |
296 | RDF-Server # "no Moose" unimports confess |
9acdcfbb |
297 | Reaction # signatures is broken |
298 | Reflexive-Role-Collective # broken (reflex::role changes?) |
299 | Reflexive-Role-DataMover # broken (reflex::role changes?) |
300 | Reflexive-Role-TCPServer # broken (reflex::role changes?) |
ec58481b |
301 | RPC-Any # broken |
9acdcfbb |
302 | Scene-Graph # has '+attr' in roles |
9acdcfbb |
303 | Server-Control # proc::processtable doesn't load |
304 | SilkiX-Converter-Kwiki # file::mimeinfo expects (?-xism: |
305 | SimpleDB-Class # requires memcached |
ec58481b |
306 | SRS-EPP-Proxy # depends on xml::epp |
9acdcfbb |
307 | String-Blender # broken |
308 | TAEB # broken |
309 | Tail-Tool # Getopt::Alt doesn't exist |
310 | Tapper-Installer # sys::info::driver::linux is broken |
9acdcfbb |
311 | Tapper-MCP-MessageReceiver # sys::info::driver::linux is broken |
ec58481b |
312 | Tapper-MCP # sys::info::driver::linux is broken |
9acdcfbb |
313 | Tapper-Reports-API # sys::info::driver::linux is broken |
ec58481b |
314 | Tapper-Testplan # sys::info::driver::linux is broken |
9acdcfbb |
315 | Telephone-Mnemonic-US # rpm-build-perl is broken |
316 | Test-A8N # broken |
ec58481b |
317 | Test-Daily # configure errors |
318 | Test-SFTP # Term::ReadPassword prompts in tests |
9acdcfbb |
319 | Thorium # requires Hobocamp |
320 | Tk-Role-Dialog # tk won't compile |
321 | TryCatch-Error # broken |
322 | Verby # requires poe::component::resourcepool |
ec58481b |
323 | Weaving-Tablet # tk doesn't compile |
4513d67e |
324 | WebService-SlimTimer # weird mxms error |
ec58481b |
325 | WebService-Yes24 # broken |
326 | WiX3 # broken |
4513d67e |
327 | WWW-Alltop # XML::SimpleObject configure fail |
9acdcfbb |
328 | WWW-Fandango # bad dist |
ec58481b |
329 | WWW-FMyLife # broken |
330 | WWW-Hashdb # test hangs, pegging cpu |
9acdcfbb |
331 | WWW-Metalgate # Cache is broken |
332 | WWW-Scramble # pod::coverage fail |
333 | WWW-StaticBlog # time::sofar is broken |
334 | WWW-Yahoo-Lyrics-JP # broken |
9acdcfbb |
335 | XIRCD # undeclared deps |
336 | XML-EPP # coerce without coercion |
4513d67e |
337 | XML-LibXSLT-Easy # missing dep on mx-getopt |
9acdcfbb |
338 | Yukki # git::repository is broken |
ec58481b |
339 | Zucchini # File::Rsync prompts in Makefile.PL |