From 24d77506d07d3e69f65ce82d1040231797f4a5dc Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Fri, 20 May 2005 17:33:42 +0000 Subject: [PATCH] OK, the simple scheme for the db plus a couple of cgi scripts that do the dynamic plotting of stuff. Still being tested, but makes graphs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22152 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/NLT.schema | 7 ++++ utils/cgiplotNLT.pl | 67 +++++++++++++++++++++++++++++++++++++ utils/webNLT.pl | 80 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 154 insertions(+) create mode 100644 utils/NLT.schema create mode 100755 utils/cgiplotNLT.pl create mode 100755 utils/webNLT.pl diff --git a/utils/NLT.schema b/utils/NLT.schema new file mode 100644 index 00000000000..1d4b4479739 --- /dev/null +++ b/utils/NLT.schema @@ -0,0 +1,7 @@ +CREATE TABLE `Tests` ( + `NAME` varchar(255) NOT NULL default '', + `RUN` date NOT NULL default '0000-00-00', + `TEST` varchar(32) NOT NULL default '', + `VALUE` double NOT NULL default '0', + KEY `name_index` (`NAME`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 diff --git a/utils/cgiplotNLT.pl b/utils/cgiplotNLT.pl new file mode 100755 index 00000000000..d9b61d813f9 --- /dev/null +++ b/utils/cgiplotNLT.pl @@ -0,0 +1,67 @@ +#!/usr/bin/perl +#takes a test and a program from a dp and produces a gnuplot script +#use like perl plotNLT.pl password Programs/MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000 llc + +use CGI; +use DBI; +my $q = new CGI; + +# database information +$db="llvmalpha"; +$host="localhost"; +$userid="llvmdbuser"; +$passwd=$q->param('pwd'); +$connectionInfo="dbi:mysql:$db;$host"; + +# make connection to database +$dbh = DBI->connect($connectionInfo,$userid,$passwd) or die DBI->errstr; + + +$count = 0; +while ($q->param('n' . $count)) + { + $count++; + } + +$| = 1; +print "Content-type: image/png", "\n\n"; + +open CMDSTREAM, "|gnuplot"; + +print CMDSTREAM "set terminal png\n"; +print CMDSTREAM "set output\n"; +print CMDSTREAM "set xdata time\n"; +print CMDSTREAM 'set timefmt "%Y-%m-%d"'; +print CMDSTREAM "\nplot"; +for ($iter = 0; $iter < $count; $iter++) { + if ($iter) + { print CMDSTREAM ","; } + print CMDSTREAM " '-' using 1:2 with lines"; +} + +print CMDSTREAM "\n"; + +for ($iter = 0; $iter < $count; $iter++) { + + $prog = $q->param('n' . $iter); + $test = $q->param('t' . $iter); + + $query = "Select RUN, VALUE from Tests where TEST = '$test' AND NAME = '$prog' ORDER BY RUN"; + #print "\n$query\n"; + + my $sth = $dbh->prepare( $query) || die "Can't prepare statement: $DBI::errstr";; + + my $rc = $sth->execute or die DBI->errstr; + + while(($da,$v) = $sth->fetchrow_array) + { + print CMDSTREAM "$da $v\n"; + } + + print CMDSTREAM "e\n"; +} +print CMDSTREAM "exit\n"; +close CMDSTREAM; + +# disconnect from database +$dbh->disconnect; diff --git a/utils/webNLT.pl b/utils/webNLT.pl new file mode 100755 index 00000000000..7f55b60187c --- /dev/null +++ b/utils/webNLT.pl @@ -0,0 +1,80 @@ +#!/usr/bin/perl + +use DBI; +use CGI; + +$q = new CGI; +print $q->header(); +print $q->start_html(-title=>"Nightly Tester DB"); + +unless($q->param('pwd')) + { + print $q->startform(); + print $q->password_field(-name=>"pwd", -size=>20, -maxlength=>20); + print $q->submit(); + print $q->endform(); + } +else + { + # database information + $db="llvmalpha"; + $host="localhost"; + $userid="llvmdbuser"; + $passwd=$q->param('pwd'); + $connectionInfo="dbi:mysql:$db;$host"; + + # make connection to database + $dbh = DBI->connect($connectionInfo,$userid,$passwd) or die DBI->errstr; + $query = "Select DISTINCT(NAME) from Tests"; + my $sth = $dbh->prepare($query) || die "Can't prepare statement: $DBI::errstr"; + my $rc = $sth->execute or die DBI->errstr; + while (($n) = $sth->fetchrow_array) + { + push @names, ($n); +# print "$n

"; + } + $query = "Select DISTINCT(TEST) from Tests"; + my $sth = $dbh->prepare($query) || die "Can't prepare statement: $DBI::errstr"; + my $rc = $sth->execute or die DBI->errstr; + while (($n) = $sth->fetchrow_array) + { + push @tests, ($n); +# print "$n\n"; + } + +# print join "
", @names; + + print $q->startform(); + print $q->scrolling_list(-name=>"test", -values=>\@tests, -multiple=>'true'); + print "

"; + print $q->scrolling_list(-name=>"name", -values=>\@names, -multiple=>'true'); + print "

"; + print $q->submit(); + print $q->hidden("pwd", $q->param('pwd')); + print $q->endform(); + + # disconnect from database + $dbh->disconnect; + + #now generate the urls to the chart + if ($q->param('test') && $q->param('name')) + { + my @names = $q->param('name'); + my @tests = $q->param('test'); + $str = "pwd=" . $q->param('pwd'); + $count = 0; + while (@names) + { + $n = pop @names; + while (@tests) + { + $t = pop @tests; + $str .= "&t$count=$t&n$count=$n"; + $count++; + } + } + print ""; + } + } + +print $q->end_html(); -- 2.34.1