we should probably test any::moose stuff too
[gitmo/Moose.git] / xt / author / test-my-dependents.t
1 use strict;
2 use warnings;
3
4 use Cwd qw( abs_path );
5 use Test::More;
6
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 }
11
12 use Test::Requires {
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',
16 };
17 use Test::DependentModules qw( test_all_dependents test_modules );
18
19 use DateTime;
20 use List::MoreUtils qw(any);
21 use Moose ();
22
23 diag(     'Test run performed at: '
24         . DateTime->now
25         . ' with Moose '
26         . Moose->VERSION );
27
28 $ENV{PERL_TEST_DM_LOG_DIR} = abs_path('.');
29 delete @ENV{ qw( AUTHOR_TESTING RELEASE_TESTING SMOKE_TESTING ) };
30
31 $ENV{ANY_MOOSE} = 'Moose';
32
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' } },
45                 { term => { 'release.dependency.module' => 'Any::Moose' } },
46             ] },
47             { term => { 'release.status'   => 'latest' } },
48             { term => { 'release.maturity' => 'released' } },
49         ] },
50         fields => 'distribution'
51     }
52 );
53
54 my %skip = map { $_ => 1 } grep { /\w/ } map { chomp; s/\s*#.*$//; $_ } <DATA>;
55 my @skip_prefix = qw(Acme Task Bundle);
56 my %name_fix = (
57     'App-PipeFilter'                 => 'App::PipeFilter::Generic',
58     'Constructible'                  => 'Constructible::Maxima',
59     'DCOLLINS-ANN-Locals'            => 'DCOLLINS::ANN::Robot',
60     'Dist-Zilla-Deb'                 => 'Dist::Zilla::Plugin::Deb::VersionFromChangelog',
61     'Dist-Zilla-Plugin-TemplateFile' => 'Dist::Zilla::Plugin::TemplateFiles',
62     'Dist-Zilla-Plugins-CJM'         => 'Dist::Zilla::Plugin::TemplateCJM',
63     'OWL-Simple'                     => 'OWL::Simple::Class',
64     'Patterns-ChainOfResponsibility' => 'Patterns::ChainOfResponsibility::Application',
65     'Role-Identifiable'              => 'Role::Identifiable::HasIdent',
66     'X11-XCB'                        => 'X11::XCB::Connection',
67     'XML-Ant-BuildFile'              => 'XML::Ant::BuildFile::Project',
68     'helm'                           => 'Helm',
69     'marc-moose'                     => 'MARC::Moose',
70     'mobirc'                         => 'App::Mobirc',
71     'smokebrew'                      => 'App::SmokeBrew',
72     'v6-alpha'                       => 'v6',
73 );
74 my @modules = map  { exists $name_fix{$_} ? $name_fix{$_} : $_ }
75               sort
76               grep { !$skip{$_} }
77               grep { my $dist = $_; !any { $dist =~ /^$_-/ } @skip_prefix }
78               map  { $_->{fields}{distribution} }
79               @{ $res->{hits}{hits} };
80
81 plan tests => scalar @modules;
82 test_modules(@modules);
83
84 # Modules that are known to fail
85 # PRANG - failing for quite some time (since before 2.0400)
86
87 __DATA__
88 # won't build, for actual reasons:
89 App-CPAN2Pkg                           # Tk doesn't compile
90 App-Fotagger                           # Imager doesn't compile
91 Black-Board                            # not found on cpan because of mxd
92 CM-Permutation                         # OpenGL uses graphics in Makefile.PL
93 Dackup                                 # depends on running ssh
94 Date-Biorhythm                         # Date::Business prompts in Makefile.PL
95 Data-Collector                         # depends on running ssh
96 POE-Component-OpenSSH                  # depends on running ssh
97 Perl-Dist-Strawberry-BuildPerl-5123    # windows only
98 Perl-Dist-WiX                          # windows only
99 Perl-Dist-WiX-BuildPerl-5123           # windows only
100 Test-SFTP                              # Term::ReadPassword prompts in tests
101 VirtualBox-Manage                      # not found on cpan because of mxd
102 helm                                   # depends on running ssh
103
104 # won't build, for unknown reasons
105 App-HistHub                            # ???
106 App-Twitch                             # ???
107 CPAN-Patches                           # ???
108 CPAN-Patches-Plugin-Debian             # ???
109 Debian-Apt-PM                          # ???
110 Dist-Zilla-Plugin-BuildSelf            # ???
111 Dist-Zilla-Plugin-ModuleBuildTiny      # ???
112 Dist-Zilla-Plugin-Test-DistManifest    # ???
113 Dist-Zilla-Plugin-Test-Portability     # ???
114 Dist-Zilla-Plugin-Test-Synopsis        # ???
115 Dist-Zilla-Plugin-Test-UnusedVars      # ???
116 Lingua-TreeTagger                      # ???
117 POE-Component-CPAN-Mirror-Multiplexer  # ???
118 POE-Component-Client-CouchDB           # ???
119 POE-Component-Github                   # ???
120 POE-Component-Metabase-Relay-Server    # ???
121 POE-Component-Server-SimpleHTTP-PreFork  # ???
122 Tapper-Testplan                        # ??? (hangs)
123 Test-Daily                             # ???
124 WWW-Alltop                             # ???
125 WWW-Hashdb                             # ??? (hangs, pegging cpu)
126 WebService-Async                       # ??? (hangs, pegging cpu)
127 WebService-LOC-CongRec                 # ???
128 Zucchini                               # ??? (hangs)
129
130 # not in cpan index for some reason
131 Hopkins                                # not found on cpan (?)
132 PostScript-Barcode                     # not found on cpan (?)
133
134 # failing for a reason
135 AI-ExpertSystem-Advanced               # no tests
136 API-Assembla                           # no tests
137 Algorithm-KernelKMeans                 # mx-types-common changes broke it
138 Alien-ActiveMQ                         # can't install activemq
139 AnyEvent-Inotify-Simple                # ??? (maybe issue with test::sweet)
140 AnyEvent-JSONRPC                       # tests require recommended deps
141 AnyEvent-Retry                         # mx-types-common changes broke it
142 AnyEvent-ZeroMQ                        # requires zeromq installation
143 App-Dataninja                          # bad M::I install in inc/
144 App-ForExample                         # getopt::chain is broken
145 App-Magpie                             # deps on URPM which doesn't exist
146 App-PgCryobit                          # requires postgres installation
147 App-TemplateServer                     # broken use of types
148 App-TemplateServer-Provider-HTML-Template  # dep on app-templateserver
149 App-TemplateServer-Provider-Mason      # dep on app-templateserver
150 App-TemplateServer-Provider-TD         # dep on app-templateserver
151 App-TimeTracker                        # git::repository is broken
152 App-USBKeyCopyCon                      # gtk tests are graphical
153 App-mkfeyorm                           # no tests
154 Archive-RPM                            # requires cpio
155 Bio-MAGETAB                            # datetime-format-datemanip is broken
156 Bot-Applebot                           # no tests
157 Bot-Backbone                           # broken deps
158 Business-UPS-Tracking                  # broken
159 CHI-Driver-Redis                       # requires redis server
160 CPAN-Mini-Webserver                    # undeclared dep on lingua-stopwords
161 Cache-Profile                          # broken
162 Catalyst-Authentication-Credential-Facebook-OAuth2  # no tests
163 Catalyst-Authentication-Store-Fey-ORM  # no tests
164 Catalyst-Authentication-Store-LDAP-AD-Class  # pod coverage fail
165 Catalyst-Controller-MovableType        # no tests
166 Catalyst-Controller-Resources          # broken
167 Catalyst-Engine-Stomp                  # requires alien::activemq
168 Catalyst-Model-MenuGrinder             # no tests
169 Catalyst-Model-Search-ElasticSearch    # requires elasticsearch
170 Catalyst-Model-Sedna                   # deps on Alien-Sedna which doesn't exist
171 Catalyst-Plugin-Continuation           # undeclared dep
172 Catalyst-Plugin-ErrorCatcher-ActiveMQ-Stomp  # pod coverage fail
173 Catalyst-Plugin-SwiffUploaderCookieHack  # undeclared dep
174 Catalyst-TraitFor-Component-ConfigPerSite  # undeclared dep
175 Catalyst-TraitFor-Controller-jQuery-jqGrid  # bad test (missing files)
176 CatalystX-MooseComponent               # broken
177 CatalystX-Restarter-GTK                # gtk tests are graphical
178 CatalystX-RoleApplicator               # broken
179 CatalystX-SimpleAPI                    # depends on ::RoleApplicator
180 CatalystX-SimpleLogin                  # broken
181 CatalystX-Usul                         # proc::processtable doesn't load
182 Cave-Wrapper                           # requires cave to be installed
183 Cheater                                # parse::randgen is broken
184 Class-OWL                              # uses CMOP::Class without loading cmop
185 Cogwheel                               # uses ancient moose apis
186 Constructible                          # GD::SVG is a broken dist
187 Coro-Amazon-SimpleDB                   # amazon::simpledb::client doesn't exist
188
189 # dep resolution failures or something (these pass when run manually)
190 AXL-Client-Simple
191 Alien-Ditaa
192 App-Benchmark-Accessors
193 Bot-BasicBot-Pluggable
194 Bot-BasicBot-Pluggable-Module-JIRA
195 CPAN-Digger
196 Cantella-Worker
197 Cantella-Worker-Role-Beanstalk
198 Catalyst-Plugin-Session
199 Catalyst-View-ByCode
200 Catalyst-View-RDF
201 CatalystX-Declare
202 CatalystX-Syntax-Action
203 Chart-Clicker
204 Chart-Weather-Forecast
205 Chef
206 Code-Statistics
207 Crypt-PBKDF2
208 Curses-Toolkit
209
210 # failing for some reason or another (need to look into this)
211 DBICx-Modeler-Generator
212 DBIx-Class-DeploymentHandler
213 DBIx-PgLink
214 DBIx-SchemaChecksum
215 Data-Apache-mod_status
216 Data-PackageName
217 Data-Pipeline
218 Data-SearchEngine-ElasticSearch
219 DayDayUp
220 Devel-Events
221 Devel-IntelliPerl
222 Dist-Zilla-Plugin-DualLife
223 Dist-Zilla-Plugin-GitFlow
224 Dist-Zilla-Plugin-MetaResourcesFromGit
225 Dist-Zilla-Plugin-ProgCriticTests
226 Dist-Zilla-Plugin-Rsync
227 Dist-Zilla-Plugin-SVK
228 Dist-Zilla-Plugin-Test-CPAN-Changes
229 Dist-Zilla-Plugin-Test-Kwalitee
230 Dist-Zilla-PluginBundle-ARODLAND
231 Dist-Zilla-PluginBundle-Author-OLIVER
232 Dist-Zilla-PluginBundle-FLORA
233 Dist-Zilla-PluginBundle-NIGELM
234 Dist-Zilla-PluginBundle-NUFFIN
235 Dist-Zilla-PluginBundle-RBUELS
236 DustyDB
237 ELF-Extract-Sections
238 ETLp
239 FCGI-Engine
240 FFmpeg-Thumbnail
241 Fedora-App-MaintainerTools
242 Fedora-App-ReviewTool
243 Fey-SQL-Pg
244 File-DataClass
245 Finance-Bank-SentinelBenefits-Csv401kConverter
246 Finance-Bank-SuomenVerkkomaksut
247 Forest-Tree-Viewer-Gtk2
248 Form-Factory
249 Frost
250 GOBO
251 Games-AssaultCube
252 Games-HotPotato
253 Games-Pandemic
254 Games-RailRoad
255 Games-Risk
256 Games-Tetris-Complete
257 Gearman-Driver
258 Geo-Calc
259 Getopt-Chain
260 Gitalist
261 Google-Spreadsheet-Agent
262 Grades
263 Graphics-Primitive-Driver-Cairo
264 Graphics-Primitive-Driver-CairoPango
265 HTML-FormHandler
266 HTML-FormHandler-Model-DBIC
267 HTML-TreeBuilderX-ASP_NET
268 Hobocamp
269 Horris
270 IM-Engine-Plugin-Dispatcher
271 IMS-CP-Manifest
272 IO-Multiplex-Intermediary
273 Image-Placeholder
274 JavaScript-Framework-jQuery
275 Jungle
276 Kafka-Client
277 Kamaitachi
278 KiokuDB-Backend-BDB
279 KiokuDB-Backend-Files
280 LWP-UserAgent-OfflineCache
281 Locale-Handle-Pluggable
282 Locale-MO-File
283 Log-Dispatch-Gtk2-Notify
284 MSWord-ToHTML
285 Mail-Summary-Tools
286 Mason
287 MediaWiki-USERINFO
288 Mildew
289 MooseX-APIRole
290 MooseX-Attribute-Prototype
291 MooseX-AutoImmute
292 MooseX-DBIC-Scaffold
293 MooseX-DOM
294 MooseX-Declare
295 MooseX-Documenter
296 MooseX-Error-Exception-Class
297 MooseX-Meta-Attribute-Index
298 MooseX-Meta-Attribute-Lvalue
299 MooseX-Method-Signatures
300 MooseX-MultiMethods
301 MooseX-MultiObject
302 MooseX-POE
303 MooseX-Params
304 MooseX-Struct
305 MooseX-TrackDirty-Attributes
306 MooseX-Workers
307 Net-Douban
308 Net-Dropbox
309 Net-FluidDB
310 Net-Fluidinfo
311 Net-HTTP-Factual
312 Net-Journyx
313 Net-Parliament
314 Net-Plurk
315 Net-Recurly
316 Net-StackExchange
317 Net-Topsy
318 NetHack-Item
319 NetHack-Monster-Spoiler
320 Nginx-Control
321 ODG-Record
322 POE-Component-Client-MPD
323 POE-Component-DirWatch
324 POE-Component-DirWatch-Object
325 POE-Component-IRC-Plugin-Role
326 POE-Component-MessageQueue
327 POE-Component-ResourcePool
328 POE-Component-Server-MySQL
329 POE-Component-Server-PSGI
330 POE-Component-Server-SimpleHTTP
331 POE-Test-Helpers
332 POEx-ProxySession
333 POEx-PubSub
334 POEx-WorkerPool
335 Paludis-UseCleaner
336 Parse-CPAN-Ratings
337 Parse-FixedRecord
338 Perlanet
339 Perlbal-Control
340 Pg-BulkCopy
341 Pod-Weaver-Section-Encoding
342 Proc-Safetynet
343 Queue-Leaky
344 RDF-Server
345 RPC-Any
346 Random-Quantum
347 Reaction
348 Reflex
349 Reflexive-Role-Collective
350 Reflexive-Role-DataMover
351 Reflexive-Role-TCPServer
352 Reflexive-Stream-Filtering
353 SRS-EPP-Proxy
354 STD
355 Scene-Graph
356 Schedule-Pluggable
357 SchemaEvolution
358 Server-Control
359 SilkiX-Converter-Kwiki
360 SimpleDB-Class
361 String-Blender
362 TAEB
363 Tail-Tool
364 Tapper-Installer
365 Tapper-MCP
366 Tapper-MCP-MessageReceiver
367 Tapper-Reports-API
368 Telephone-Mnemonic-US
369 Template-Plugin-Heritable
370 Test-A8N
371 Test-BDD-Cucumber
372 Test-Sweet
373 Test-System
374 Thorium
375 Tk-Role-Dialog
376 TryCatch
377 TryCatch-Error
378 VANAMBURG-SEMPROG-SimpleGraph
379 VCI
380 Verby
381 W3C-XMLSchema
382 WWW-FMyLife
383 WWW-Fandango
384 WWW-Getsy
385 WWW-Getsy
386 WWW-Mechanize-Cached
387 WWW-MenuGrinder
388 WWW-Metalgate
389 WWW-Scramble
390 WWW-StaticBlog
391 WWW-Yahoo-Lyrics-JP
392 Weaving-Tablet
393 WebNano-Controller-CRUD
394 WebService-Buxfer
395 WebService-CloudFlare-Host
396 WebService-SlimTimer
397 WebService-Yes24
398 WiX3
399 XIRCD
400 XML-Ant-BuildFile
401 XML-EPP
402 XML-LibXSLT-Easy
403 XML-Rabbit
404 XML-Schematron
405 YUM-RepoQuery
406 Yukki
407 mobirc
408 namespace-alias