Apply pg_dump test cleanups to test_pg_dump as well
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 8 Feb 2024 20:19:03 +0000 (21:19 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 8 Feb 2024 20:19:03 +0000 (21:19 +0100)
Apply the changes from 41a284411e0 to the test_pg_dump module as well.
Here, we just apply the new test consistency checks, but we don't need
to fix any existing tests.

Discussion: https://www.postgresql.org/message-id/flat/1f8cb371-e84e-434e-0367-6b716fb16fa1@eisentraut.org

src/test/modules/test_pg_dump/t/001_base.pl

index 339e7459ca7e73f8fe253069d2771c3f5e81fe2d..b8c30c23872e68aa1929db2206afda7d42b64b45 100644 (file)
@@ -857,6 +857,22 @@ foreach my $run (sort keys %pgdump_runs)
 
        foreach my $test (sort keys %tests)
        {
+               # Check for proper test definitions
+               #
+               # There should be a "like" list, even if it is empty.  (This
+               # makes the test more self-documenting.)
+               if (!defined($tests{$test}->{like}))
+               {
+                       die "missing \"like\" in test \"$test\"";
+               }
+               # Check for useless entries in "unlike" list.  Runs that are
+               # not listed in "like" don't need to be excluded in "unlike".
+               if ($tests{$test}->{unlike}->{$test_key}
+                       && !defined($tests{$test}->{like}->{$test_key}))
+               {
+                       die "useless \"unlike\" entry \"$test_key\" in test \"$test\"";
+               }
+
                # Run the test listed as a like, unless it is specifically noted
                # as an unlike (generally due to an explicit exclusion or similar).
                if ($tests{$test}->{like}->{$test_key}