]> git.vpit.fr Git - perl/modules/Perl-Critic-Policy-Dynamic-NoIndirect.git/commitdiff
Correctly report test compilation failures
authorVincent Pit <vince@profvince.com>
Tue, 7 Sep 2010 14:49:42 +0000 (16:49 +0200)
committerVincent Pit <vince@profvince.com>
Tue, 7 Sep 2010 14:49:42 +0000 (16:49 +0200)
t/10-basic.t

index 0c1c23d3e11fddf598038f6a35aed87ef8128be8..314f4f576288d2873a4618c841baeeab665c17be 100644 (file)
@@ -26,6 +26,7 @@ sub expect {
 
 sub zap (&) { }
 
+TEST:
 {
  local $/ = "####";
 
@@ -35,13 +36,24 @@ sub zap (&) { }
   s/^\s+//s;
 
   my ($code, $expected) = split /^-{4,}$/m, $_, 2;
-  my @expected = eval $expected;
-
-  my @violations = eval { pcritique_with_violations($policy, \$code) };
+  my @expected;
+  {
+   local $@;
+   @expected = eval $expected;
+   if ($@) {
+    diag "Compilation of expected code $id failed: $@";
+    next TEST;
+   }
+  }
 
-  if ($@) {
-   diag "Compilation $id failed: $@";
-   next;
+  my @violations;
+  {
+   local $@;
+   @violations = eval { pcritique_with_violations($policy, \$code) };
+   if ($@) {
+    diag "Critique test $id failed: $@";
+    next TEST;
+   }
   }
 
   is @violations, @expected, "right count of violations $id";
@@ -51,7 +63,7 @@ sub zap (&) { }
 
    unless ($exp) {
     fail "Unexpected violation for chunk $id: " . $v->description;
-    next;
+    next TEST;
    }
 
    my $pos = $v->location;