From fa3443b1e248960d9182d03f412fbcb229c9ae3d Mon Sep 17 00:00:00 2001 From: "terry%netscape.com" <> Date: Tue, 1 Sep 1998 08:20:36 +0000 Subject: Do some simple sanity checks. --- sanitycheck.cgi | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100755 sanitycheck.cgi diff --git a/sanitycheck.cgi b/sanitycheck.cgi new file mode 100755 index 000000000..3d8a82a83 --- /dev/null +++ b/sanitycheck.cgi @@ -0,0 +1,112 @@ +#! /usr/bonsaitools/bin/mysqltcl +# -*- Mode: tcl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public License +# Version 1.0 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the +# License for the specific language governing rights and limitations +# under the License. +# +# The Original Code is the Bugzilla Bug Tracking System. +# +# The Initial Developer of the Original Code is Netscape Communications +# Corporation. Portions created by Netscape are Copyright (C) 1998 +# Netscape Communications Corporation. All Rights Reserved. +# +# Contributor(s): Terry Weissman + +source "CGI.tcl" +puts "Content-type: text/html" +puts "" + +ConnectToDatabase + + +proc Status {str} { + puts "$str

" + flush stdout +} + +proc Alert {str} { + Status "$str" +} + +proc BugLink {id} { + return "$id" +} + + +PutHeader "Bugzilla Sanity Check" "Bugzilla Sanity Check" + +puts "OK, now running sanity checks.

" + +Status "Checking profile ids..." + +SendSQL "select userid,login_name from profiles" + +while {[MoreSQLData]} { + lassign [FetchSQLData] id email + if {[regexp {^[^@, ]*@[^@, ]*\.[^@, ]*$} $email]} { + set profid($id) 1 + } else { + if {$id != ""} { + Alert "Bad profile id $id <$email>." + } + } +} + + +catch {[unset profid(0)]} + + +Status "Checking reporter/assigned_to ids" +SendSQL "select bug_id,reporter,assigned_to from bugs" + +while {[MoreSQLData]} { + lassign [FetchSQLData] id reporter assigned_to + if {$id == ""} { + continue + } + set bugid($id) 1 + if {![info exists profid($reporter)]} { + Alert "Bad reporter $reporter in [BugLink $id]" + } + if {![info exists profid($assigned_to)]} { + Alert "Bad assigned_to $assigned_to in [BugLink $id]" + } +} + +Status "Checking CC table" + +SendSQL "select bug_id,who from cc"; +while {[MoreSQLData]} { + lassign [FetchSQLData] id cc + if {$cc == ""} { + continue + } + if {![info exists profid($cc)]} { + Alert "Bad cc $cc in [BugLink $id]" + } +} + + +Status "Checking activity table" + +SendSQL "select bug_id,who from bugs_activity" + +while {[MoreSQLData]} { + lassign [FetchSQLData] id who + if {$who == ""} { + continue + } + if {![info exists bugid($id)]} { + Alert "Bad bugid [BugLink $id]" + } + if {![info exists profid($who)]} { + Alert "Bad who $who in [BugLink $id]" + } +} -- cgit v1.2.1