]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 337444: t/012throwables.t shouldn't fail due to unused error tags in code/user...
authorlpsolit%gmail.com <>
Mon, 15 May 2006 01:53:10 +0000 (01:53 +0000)
committerlpsolit%gmail.com <>
Mon, 15 May 2006 01:53:10 +0000 (01:53 +0000)
t/012throwables.t

index a055e45d0a6fe9d5c2510992462ac703aae692d8..2c7a5998b4af0319299f294bb24e7056f09be18d 100644 (file)
@@ -88,7 +88,7 @@ foreach my $file (keys %test_templates) {
             my $errtag = $1;
             if ($errtag =~ /\s/) {
                 Register(\%test_templates, $file, 
-                "has an error definition \"$errtag\" at line $lineno with"
+                "has an error definition \"$errtag\" at line $lineno with "
                 . "space(s) embedded --ERROR");
             }
             else {
@@ -164,14 +164,26 @@ foreach my $file (sort keys %test_templates) {
 }
 
 sub Register {
-    my ($hash, $file, $message) = @_;
-    push @{$hash->{$file}}, $message;
+    my ($hash, $file, $message, $warning) = @_;
+    # If set to 1, $warning will avoid the test to fail.
+    $warning ||= 0;
+    push(@{$hash->{$file}}, {'message' => $message, 'warning' => $warning});
 }
 
 sub Report {
     my ($file, @errors) = @_;
     if (scalar @errors) {
-        ok(0, "$file has ". scalar @errors ." error(s):\n" . join("\n", @errors));
+        # Do we only have warnings to report or also real errors?
+        my @real_errors = grep {$_->{'warning'} == 0} @errors;
+        # Extract error messages.
+        @errors = map {$_->{'message'}} @errors;
+        if (scalar(@real_errors)) {
+            ok(0, "$file has ". scalar(@errors) ." error(s):\n" . join("\n", @errors));
+        }
+        else {
+            ok(1, "--WARNING $file has " . scalar(@errors) .
+                  " unused error tag(s):\n" . join("\n", @errors));
+        }
     }
     else {
         # This is used for both code and template files, so let's use
@@ -196,7 +208,7 @@ sub DefinedIn {
         Register(\%test_templates, $file, 
             "$errtype error tag '$errtag' is defined at line(s) ("
             . join (',', @{$Errors{$errtype}{$errtag}{defined_in}{$lang}{$file}}) 
-            . ") but is not used anywhere");
+            . ") but is not used anywhere", 1);
     }
 }