diff options
author | justdave%syndicomm.com <> | 2001-09-03 10:08:05 +0200 |
---|---|---|
committer | justdave%syndicomm.com <> | 2001-09-03 10:08:05 +0200 |
commit | b4fa09d3e743c3adaae0717e0e5366481a0fc755 (patch) | |
tree | 4c5b83f005b8d28c67e7a44c8f60fef337cbb2e9 | |
parent | fe6d2a3abbaf4e8c10b04aab02c69c1b8c88b470 (diff) | |
download | bugzilla-b4fa09d3e743c3adaae0717e0e5366481a0fc755.tar.gz bugzilla-b4fa09d3e743c3adaae0717e0e5366481a0fc755.tar.xz |
Fix for bug 91808: Additional sanitycheck tests for the duplicates table.
Patch by Matthew Tuck <matty@chariot.net.au>
r= jake@acutex.net, caillon@returnzero.com
-rwxr-xr-x | sanitycheck.cgi | 58 |
1 files changed, 51 insertions, 7 deletions
diff --git a/sanitycheck.cgi b/sanitycheck.cgi index c8f628e58..72a2d3818 100755 --- a/sanitycheck.cgi +++ b/sanitycheck.cgi @@ -19,6 +19,7 @@ # Rights Reserved. # # Contributor(s): Terry Weissman <terry@mozilla.org> +# Matthew Tuck <matty@chariot.net.au> use diagnostics; use strict; @@ -109,6 +110,7 @@ sub CrossCheck { } +my @badbugs; my @row; @@ -355,24 +357,25 @@ while (1) { push(@list, $k); } -my @fixlist; +@badbugs = (); + foreach my $b (keys(%keyword)) { if (!exists $realk{$b} || $realk{$b} ne $keyword{$b}) { - push(@fixlist, $b); + push(@badbugs, $b); } } foreach my $b (keys(%realk)) { if (!exists $keyword{$b}) { - push(@fixlist, $b); + push(@badbugs, $b); } } -if (@fixlist) { - @fixlist = sort {$a <=> $b} @fixlist; +if (@badbugs) { + @badbugs = sort {$a <=> $b} @badbugs; Alert("Bug(s) found with incorrect keyword cache: " . - join(', ', @fixlist)); + join(', ', @badbugs)); if (exists $::FORM{'rebuildkeywordcache'}) { Status("OK, now fixing keyword cache."); - foreach my $b (@fixlist) { + foreach my $b (@badbugs) { my $k = ''; if (exists($realk{$b})) { $k = $realk{$b}; @@ -389,6 +392,47 @@ if (@fixlist) { } +########################################################################### +# Perform duplicates table checks +########################################################################### + +Status("Checking duplicates table"); + +SendSQL("SELECT bugs.bug_id " . + "FROM bugs INNER JOIN duplicates ON bugs.bug_id = duplicates.dupe " . + "WHERE bugs.resolution != 'DUPLICATE' " . + "ORDER BY bugs.bug_id"); + +@badbugs = (); + +while (@row = FetchSQLData()) { + my ($id) = (@row); + push (@badbugs, $id); +} + +if (@badbugs) { + Alert("Bug(s) found on duplicates table that are not marked duplicate: " . + join(', ', @badbugs)); +} + +SendSQL("SELECT bugs.bug_id " . + "FROM bugs LEFT JOIN duplicates ON bugs.bug_id = duplicates.dupe " . + "WHERE bugs.resolution = 'DUPLICATE' AND duplicates.dupe IS NULL " . + "ORDER BY bugs.bug_id"); + +@badbugs = (); + +while (@row = FetchSQLData()) { + my ($id) = (@row); + push (@badbugs, $id); +} + +if (@badbugs) { + Alert("Bug(s) found marked resolved duplicate and not on duplicates " . + "table: " . join(', ', @badbugs)); +} + + Status("Sanity check completed."); |