summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--t/012throwables.t22
1 files changed, 17 insertions, 5 deletions
diff --git a/t/012throwables.t b/t/012throwables.t
index a055e45d0..2c7a5998b 100644
--- a/t/012throwables.t
+++ b/t/012throwables.t
@@ -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);
}
}