1 #!/usr/bin/perl 2 #take the output of parseNLT.pl and load it into a database 3 # use like: cat file |perl parseNLT.pl |perl importNLT.pl password 4 5 use DBI; 6 7 # database information 8 $db="llvmalpha"; 9 $host="localhost"; 10 $userid="llvmdbuser"; 11 $passwd=shift @ARGV; 12 $connectionInfo="dbi:mysql:$db;$host"; 13 14 # make connection to database 15 $dbh = DBI->connect($connectionInfo,$userid,$passwd) or die DBI->errstr; 16 my $sth = $dbh->prepare( q{ 17 INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES (?, STR_TO_DATE(?, '\%d \%M \%Y'), ?, ?) 18 }) || die "Can't prepare statement: $DBI::errstr";; 19 20 while($d = <>) 21 { 22 chomp $d; 23 if (18 == scalar split " ", $d) 24 { 25 ($day, $mon, $year, $prog, $gccas, $bc, $llccompile, $llcbetacompile, $jitcompile, 26 $mc, $gcc, $cbe, $llc, $llcbeta, $jit, $foo1, $foo2, $foo3) = split " ", $d; 27 if ($gccas =~ /\d+/) 28 { 29 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 30 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'gccas', $gccas)") || die DBI->errstr; 31 } 32 if ($bc =~ /\d/) 33 { 34 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 35 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'bytecode', $bc)") || die DBI->errstr; 36 } 37 if ($llccompile =~ /\d/) 38 { 39 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 40 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'llc-compile', $llccompile)") || die DBI->errstr; 41 } 42 if ($llcbetacompile =~ /\d/) 43 { 44 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 45 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'llc-beta-compile', $llcbetacompile)") || die DBI->errstr; 46 } 47 if ($jitcompile =~ /\d/) 48 { 49 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 50 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'jit-compile', $jitcompile)") || die DBI->errstr; 51 } 52 if ($mc =~ /\d/) 53 { 54 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 55 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'machine-code', $mc)") || die DBI->errstr; 56 } 57 if ($gcc =~ /\d/) 58 { 59 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 60 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'gcc', $gcc)") || die DBI->errstr; 61 } 62 if ($llc =~ /\d/) 63 { 64 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 65 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'llc', $llc)") || die DBI->errstr; 66 } 67 if ($llcbeta =~ /\d/) 68 { 69 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 70 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'llc-beta', $llcbeta)") || die DBI->errstr; 71 } 72 if ($jit =~ /\d/) 73 { 74 $dbh->do("INSERT INTO Tests (NAME, RUN, TEST, VALUE) VALUES 75 ('$prog', STR_TO_DATE('$day $mon $year', '\%d \%M \%Y'), 'jit', $jit)") || die DBI->errstr; 76 } 77 print "."; 78 } 79 else 80 { 81 print "\nNO: $d\n"; 82 } 83 } 84 print "\n"; 85 # disconnect from database 86 $dbh->disconnect; 87