porting/podcheck.t: Add test for removed files
authorKarl Williamson <public@khwilliamson.com>
Wed, 26 Sep 2012 17:21:13 +0000 (11:21 -0600)
committerKarl Williamson <public@khwilliamson.com>
Wed, 26 Sep 2012 17:51:14 +0000 (11:51 -0600)
If a file is removed from Perl that is in podcheck's data base,
it should be removed from the db at that time.  This adds a check
to make sure that happens.

t/porting/podcheck.t

index cc71bda..4cea599 100644 (file)
@@ -458,7 +458,8 @@ sub suppressed {
 
     sub plan {
         my %plan = @_;
-        $planned = $plan{tests};
+        $planned = $plan{tests} + 1;    # +1 for final test that files haven't
+                                        # been removed
         print "1..$planned\n";
         return;
     }
@@ -1841,9 +1842,19 @@ foreach my $filename (@files) {
             note(join "", @diagnostics,
             "See end of this test output for your options on silencing this");
         }
+
+        delete $known_problems{$canonical};
     }
 }
 
+if (! ok (keys %known_problems == 0, "The known problems data base includes no references to non-existent files")) {
+    note("The following files were not found: "
+         . join ", ", keys %known_problems);
+    note("They will automatically be removed from the db the next time");
+    note("  cd t; ./perl -I../lib porting/podcheck.t --regen");
+    note("is run");
+}
+
 my $how_to = <<EOF;
    run this test script by hand, using the following formula (on
    Un*x-like machines):