summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbbaetz%student.usyd.edu.au <>2002-04-04 14:19:58 +0200
committerbbaetz%student.usyd.edu.au <>2002-04-04 14:19:58 +0200
commit99da5c1938127f39a094e84b1d7e80b84be0ea68 (patch)
tree2aa5ebedfc38523aa4de68d47984d7856b231b02
parenta34eeb2081bd7e420ebbae68cc345ed760ec1988 (diff)
downloadbugzilla-99da5c1938127f39a094e84b1d7e80b84be0ea68.tar.gz
bugzilla-99da5c1938127f39a094e84b1d7e80b84be0ea68.tar.xz
Bug 126883 - bugzilla.dtd isn't quite correct
r=gerv, justdave
-rwxr-xr-xBug.pm2
-rwxr-xr-xBugzilla/Bug.pm2
-rw-r--r--bugzilla.dtd2
-rwxr-xr-xsanitycheck.cgi18
4 files changed, 21 insertions, 3 deletions
diff --git a/Bug.pm b/Bug.pm
index 96ff0b8af..5ae83d295 100755
--- a/Bug.pm
+++ b/Bug.pm
@@ -248,7 +248,7 @@ sub emitXML {
$xml .= "<bug>\n";
- foreach my $field ("bug_id", "urlbase", "bug_status", "product",
+ foreach my $field ("bug_id", "bug_status", "product",
"priority", "version", "rep_platform", "assigned_to", "delta_ts",
"component", "reporter", "target_milestone", "bug_severity",
"creation_ts", "qa_contact", "op_sys", "resolution", "bug_file_loc",
diff --git a/Bugzilla/Bug.pm b/Bugzilla/Bug.pm
index 96ff0b8af..5ae83d295 100755
--- a/Bugzilla/Bug.pm
+++ b/Bugzilla/Bug.pm
@@ -248,7 +248,7 @@ sub emitXML {
$xml .= "<bug>\n";
- foreach my $field ("bug_id", "urlbase", "bug_status", "product",
+ foreach my $field ("bug_id", "bug_status", "product",
"priority", "version", "rep_platform", "assigned_to", "delta_ts",
"component", "reporter", "target_milestone", "bug_severity",
"creation_ts", "qa_contact", "op_sys", "resolution", "bug_file_loc",
diff --git a/bugzilla.dtd b/bugzilla.dtd
index f9e9c4480..459755ccd 100644
--- a/bugzilla.dtd
+++ b/bugzilla.dtd
@@ -5,7 +5,7 @@
maintainer CDATA #REQUIRED
exporter CDATA #IMPLIED
>
-<!ELEMENT bug (bug_id, (exporter?, urlbase?, bug_status, product, priority, version, rep_platform, assigned_to, delta_ts, component, reporter, target_milestone?, bug_severity, creation_ts, qa_contact?, op_sys, resolution?, bug_file_loc?, short_desc?, keywords*, status_whiteboard?, dependson*, blocks*, cc*, long_desc*, attachment*)?)>
+<!ELEMENT bug (bug_id, (bug_status, product, priority, version, rep_platform, assigned_to, delta_ts, component, reporter, target_milestone?, bug_severity, creation_ts, qa_contact?, op_sys, resolution?, bug_file_loc?, short_desc?, keywords*, status_whiteboard?, dependson*, blocks*, cc*, long_desc*, attachment*)?)>
<!ATTLIST bug
error (NotFound | NotPermitted | InvalidBugId) #IMPLIED
>
diff --git a/sanitycheck.cgi b/sanitycheck.cgi
index 902557bb8..80b88d5fd 100755
--- a/sanitycheck.cgi
+++ b/sanitycheck.cgi
@@ -140,6 +140,24 @@ if (exists $::FORM{'rebuildvotecache'}) {
print "OK, now running sanity checks.<P>\n";
+# This one goes first, because if this is wrong, then the below tests
+# will probably fail too
+
+# This isn't extensible. Thats OK; we're not adding any more enum fields
+Status("Checking for invalid enumeration values");
+foreach my $field (("bug_severity", "bug_status", "op_sys",
+ "priority", "rep_platform", "resolution")) {
+ # undefined enum values in mysql are an empty string which equals 0
+ SendSQL("SELECT bug_id FROM bugs WHERE $field=0 ORDER BY bug_id");
+ my @invalid;
+ while (MoreSQLData()) {
+ push (@invalid, FetchOneColumn());
+ }
+ if (@invalid) {
+ Alert("Bug(s) found with invalid $field value: ".join(', ',@invalid));
+ }
+}
+
CrossCheck("keyworddefs", "id",
["keywords", "keywordid"]);