8 use File::Path qw( rmtree );
11 CPAN::HandleConfig->load();
12 CPAN::Shell::setup_output();
13 CPAN::Index->reload();
15 local $CPAN::Config->{tar_verbosity} = 'none';
16 local $CPAN::Config->{load_module_verbosity} = 'none';
19 my $LOGFILE = ( cwd . "/cpan-stable-smolder.log" );
25 open my $log, '>', $LOGFILE || die "Could not open $LOGFILE because $!";
30 MooseX::Accessors::ReadWritePrivate
33 MooseX::Attribute::ENV
34 MooseX::AttributeHelpers
35 MooseX::Attribute::Prototype
36 MooseX::Attributes::Curried
37 MooseX::Blessed::Reconstruct
38 MooseX::ClassAttribute
40 MooseX::ConfigFromFile
41 MooseX::Constructor::AllErrors
44 MooseX::CurriedHandles
49 MooseX::Emulate::Class::Accessor::Fast
52 MooseX::GlobRef::Object
56 MooseX::LazyLogDispatch
60 MooseX::Meta::TypeConstraint::ForceCoercion
61 MooseX::MetaDescription
62 MooseX::MethodAttributes
63 MooseX::Method::Signatures
66 MooseX::MutatorAttributes
69 MooseX::Object::Pluggable
71 MooseX::Params::Validate
74 MooseX::Policy::SemiAffordanceAccessor
78 MooseX::Role::Parameterized
79 MooseX::Role::TraitConstructor
80 MooseX::Role::XMLRPC::Client
82 MooseX::SemiAffordanceAccessor
86 MooseX::Storage::Format::XML::Simple
87 MooseX::StrictConstructor
92 MooseX::Traits::Attribute::CascadeClear
94 MooseX::Types::Authen::Passphrase
96 MooseX::Types::Data::GUID
97 MooseX::Types::DateTime
99 MooseX::Types::Path::Class
100 MooseX::Types::Set::Object
101 MooseX::Types::Structured
104 MooseX::Types::VariantTable
118 sub test_all_modules {
119 foreach my $project (@_) {
120 my $dist = get_distro_from_cpan($project);
123 print $log "UNKNOWN : $project (not on CPAN?)\n";
127 my $passed = test_module( $dist->dir() );
129 my $msg = $passed ? 'SUCCESS' : 'FAIL';
131 print $log sprintf( '%7s : %s - %s', $msg, $project, $dist->base_id() );
136 sub get_distro_from_cpan {
139 ( my $module = $project ) =~ s/-/::/g;
141 my @mods = CPAN::Shell->expand( 'Module', $module );
143 die "Cannot resolve $project to a single module object"
148 my $dist = $mods[0]->distribution();
160 local $ENV{PERL_AUTOINSTALL} = '--defaultdeps';
161 if ( -f "Build.PL" ) {
165 [qw( ./Build test )],
170 [ $^X, 'Makefile.PL' ],
179 if ( system( @{$cmd} ) ) {
180 warn "Failed to run @{$cmd}\n";