diff --git a/tests/getpart.pm b/tests/getpart.pm
index 1aeedd6dd464235077469269504bbf5552a75877..d9510dd208b1bea6f9687747df83b366e350597b 100644
--- a/tests/getpart.pm
+++ b/tests/getpart.pm
@@ -124,6 +124,25 @@ sub getpart {
     return @this; #empty!
 }
 
+sub partexists {
+    my ($section, $part)=@_;
+
+    my $inside = 0;
+
+    for(@xml) {
+        if(!$inside && ($_ =~ /^ *\<$section/)) {
+            $inside++;
+        }
+        elsif((1 == $inside) && ($_ =~ /^ *\<$part[ \>]/)) {
+            return 1; # exists
+        }
+        elsif((1 == $inside) && ($_ =~ /^ *\<\/$section/)) {
+            return 0; # does not exist
+        }
+    }
+    return 0; # does not exist
+}
+
 # Return entire document as list of lines
 sub getall {
     return @xml;
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 65dd9610ba6f3aed1b12075097bc9596ce38cc52..ed234be234a7f55ae02b02a82e79176134e0fe07 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -3499,7 +3499,7 @@ sub singletest {
     my $outputok;
     for my $partsuffix (('', '1', '2', '3', '4')) {
         my @outfile=getpart("verify", "file".$partsuffix);
-        if(@outfile) {
+        if(@outfile || partexists("verify", "file".$partsuffix) ) {
             # we're supposed to verify a dynamically generated file!
             my %hash = getpartattr("verify", "file".$partsuffix);