X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FDBICTest%2FAuthorCheck.pm;fp=t%2Flib%2FDBICTest%2FAuthorCheck.pm;h=4d0c528aa5a94846bb505dc836734afde010c9db;hb=7159a4562c6a8b116d38eba3d2ac8bd025859ecd;hp=f793cf0bd30ac0720f491f8b199d4f5ee5078e7e;hpb=e666c5fd810f9103a8e2ae1994e45828169e703d;p=dbsrgits%2FDBIx-Class.git diff --git a/t/lib/DBICTest/AuthorCheck.pm b/t/lib/DBICTest/AuthorCheck.pm index f793cf0..4d0c528 100644 --- a/t/lib/DBICTest/AuthorCheck.pm +++ b/t/lib/DBICTest/AuthorCheck.pm @@ -27,24 +27,35 @@ sub _check_author_makefile { my $root = _find_co_root() or return; + my $optdeps = file('lib/DBIx/Class/Optional/Dependencies.pm'); + # not using file->stat as it invokes File::stat which in turn breaks stat(_) - my ($mf_pl_mtime, $mf_mtime) = ( map + my ($mf_pl_mtime, $mf_mtime, $optdeps_mtime) = ( map { (stat ($root->file ($_)) )[9] } - qw/Makefile.PL Makefile/ + (qw|Makefile.PL Makefile|, $optdeps) ); return unless $mf_pl_mtime; # something went wrong during co_root detection ? - if ( - not -d $root->subdir ('inc') - or - not $mf_mtime - or - $mf_mtime < $mf_pl_mtime - ) { - print STDERR <<'EOE'; + my @fail_reasons; + if(not -d $root->subdir ('inc')) { + push @fail_reasons, "Missing ./inc directory"; + } + if (not $mf_mtime) { + push @fail_reasons, "Missing ./Makefile"; + } + elsif($mf_mtime < $mf_pl_mtime) { + push @fail_reasons, "./Makefile.PL is newer than ./Makefile"; + } + + if ($mf_mtime < $optdeps_mtime) { + push @fail_reasons, "./$optdeps is newer than ./Makefile"; + } + + if (@fail_reasons) { + print STDERR <<'EOE'; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -68,9 +79,15 @@ http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class.pm#GETTING_HELP/SUPPORT The DBIC team +Reasons you received this message: EOE + foreach my $r (@fail_reasons) { + print STDERR " * $r\n"; + } + print STDERR "\n\n\n"; + exit 1; } }