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