1 #!/usr/bin/perl 2 #takes a test and a program from a dp and produces a gnuplot script 3 #use like perl plotNLT.pl password Programs/MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000 llc 4 5 use CGI; 6 use DBI; 7 my $q = new CGI; 8 9 # database information 10 $db="llvmalpha"; 11 $host="localhost"; 12 $userid="llvmdbuser"; 13 $passwd=$q->param('pwd'); 14 $connectionInfo="dbi:mysql:$db;$host"; 15 16 # make connection to database 17 $dbh = DBI->connect($connectionInfo,$userid,$passwd) or die DBI->errstr; 18 19 20 $count = 0; 21 while ($q->param('n' . $count)) 22 { 23 $count++; 24 } 25 26 $| = 1; 27 print "Content-type: image/png", "\n\n"; 28 29 open CMDSTREAM, "|gnuplot"; 30 #open CMDSTREAM, "|echo"; 31 32 print CMDSTREAM "set terminal png\n"; 33 print CMDSTREAM "set output\n"; 34 print CMDSTREAM "set xdata time\n"; 35 print CMDSTREAM 'set timefmt "%Y-%m-%d"'; 36 print CMDSTREAM "\nplot"; 37 for ($iter = 0; $iter < $count; $iter++) { 38 if ($iter) 39 { print CMDSTREAM ","; } 40 print CMDSTREAM " '-' using 1:2 title \"" . $q->param('t' . $iter) . "," . $q->param('n' . $iter) . "\"with lines"; 41 } 42 43 print CMDSTREAM "\n"; 44 45 for ($iter = 0; $iter < $count; $iter++) { 46 47 $prog = $q->param('n' . $iter); 48 $test = $q->param('t' . $iter); 49 50 $query = "Select RUN, VALUE from Tests where TEST = '$test' AND NAME = '$prog' ORDER BY RUN"; 51 #print "\n$query\n"; 52 53 my $sth = $dbh->prepare( $query) || die "Can't prepare statement: $DBI::errstr";; 54 55 my $rc = $sth->execute or die DBI->errstr; 56 57 while(($da,$v) = $sth->fetchrow_array) 58 { 59 print CMDSTREAM "$da $v\n"; 60 } 61 62 print CMDSTREAM "e\n"; 63 } 64 print CMDSTREAM "exit\n"; 65 close CMDSTREAM; 66 67 # disconnect from database 68 $dbh->disconnect; 69