Run tests recursively.
[gitmo/moose-dev-utils.git] / cpan-stable-smolder
index a5be27a..87b3c6b 100755 (executable)
@@ -5,7 +5,6 @@ use warnings;
 use CPAN;
 use Cwd;
 use File::chdir;
-use File::Path qw( rmtree );
 use IPC::Run3 qw( run3 );
 
 
@@ -25,92 +24,15 @@ if ( -f $LOGFILE ) {
 
 open my $log, '>', $LOGFILE || die "Could not open $LOGFILE because $!";
 
-test_all_modules(
-    qw[
-        Moose::Autobox
-        MooseX::Accessors::ReadWritePrivate
-        MooseX::App::Cmd
-        MooseX::Async
-        MooseX::Attribute::ENV
-        MooseX::AttributeHelpers
-        MooseX::Attribute::Prototype
-        MooseX::Attributes::Curried
-        MooseX::Blessed::Reconstruct
-        MooseX::ClassAttribute
-        MooseX::Clone
-        MooseX::ConfigFromFile
-        MooseX::Constructor::AllErrors
-        MooseX::Contract
-        MooseX::Control
-        MooseX::CurriedHandles
-        MooseX::Daemonize
-        MooseX::Declare
-        MooseX::DeepAccessors
-        MooseX::DOM
-        MooseX::Emulate::Class::Accessor::Fast
-        MooseX::FollowPBP
-        MooseX::Getopt
-        MooseX::GlobRef::Object
-        MooseX::InsideOut
-        MooseX::Iterator
-        MooseX::KeyedMutex
-        MooseX::LazyLogDispatch
-        MooseX::LogDispatch
-        MooseX::Log::Log4perl
-        MooseX::MakeImmutable
-        MooseX::Meta::TypeConstraint::ForceCoercion
-        MooseX::MetaDescription
-        MooseX::MethodAttributes
-        MooseX::Method::Signatures
-        MooseX::MultiInitArg
-        MooseX::MultiMethods
-        MooseX::MutatorAttributes
-        MooseX::NaturalKey
-        MooseX::NonMoose
-        MooseX::Object::Pluggable
-        MooseX::Param
-        MooseX::Params::Validate
-        MooseX::Plaggerize
-        MooseX::POE
-        MooseX::Policy::SemiAffordanceAccessor
-        MooseX::Q4MLog
-        MooseX::Role::Cmd
-        MooseX::Role::Matcher
-        MooseX::Role::Parameterized
-        MooseX::Role::TraitConstructor
-        MooseX::Role::XMLRPC::Client
-        MooseX::Scaffold
-        MooseX::SemiAffordanceAccessor
-        MooseX::SimpleConfig
-        MooseX::Singleton
-        MooseX::Storage
-        MooseX::Storage::Format::XML::Simple
-        MooseX::StrictConstructor
-        MooseX::Struct
-        MooseX::Templated
-        MooseX::Timestamp
-        MooseX::Traits
-        MooseX::Traits::Attribute::CascadeClear
-        MooseX::Types
-        MooseX::Types::Authen::Passphrase
-        MooseX::Types::Common
-        MooseX::Types::Data::GUID
-        MooseX::Types::DateTime
-        MooseX::Types::IO
-        MooseX::Types::Path::Class
-        MooseX::Types::Set::Object
-        MooseX::Types::Structured
-        MooseX::Types::URI
-        MooseX::Types::UUID
-        MooseX::Types::VariantTable
-        MooseX::WithCache
-        MooseX::Workers
-        MooseX::YAML
-        Fey::ORM
-        KiokuDB
-        Catalyst
-        ]
-);
+my $MODULE_LIST_FILE = ( cwd . '/cpan-stable-modules' );
+
+my @modules;
+{
+    open my $fh, $MODULE_LIST_FILE or die "Can't open $MODULE_LIST_FILE: $!";
+    @modules = map { chomp; $_ } <$fh>;
+}
+
+test_all_modules(@modules);
 
 close $log;
 
@@ -132,16 +54,13 @@ sub test_all_modules {
 
         my $status = $passed && $warned ? 'WARN' : $passed ? 'PASS' : 'FAIL';
 
-        push @statuses, "$status: $project - " . $dist->base_id();
+        my $summary = "$status: $project - " . $dist->base_id();
+        print {$log} "$summary\n";
 
         push @details, [ $project, $output ]
             if $warned || ! $passed;
     }
 
-    for my $status (@statuses) {
-        print {$log} "$status\n";
-    }
-
     if (@details) {
         print {$log} "\n\n";
 
@@ -213,7 +132,7 @@ sub _run_commands {
 sub _run_tests {
     my $output;
 
-    run3 [ qw( prove -b ) ], undef, \$output, \$output;
+    run3 [ qw( prove -br ) ], undef, \$output, \$output;
 
     my $passed = $output =~ /Result: PASS/;
     my $warned = $output =~ /at .+ line \d+/;