77 lines
2.5 KiB
Perl
Executable file
77 lines
2.5 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
#
|
|
# Copyright Martin J. Bligh (mbligh@mbligh.org), 2006
|
|
|
|
($file, $y_label, $columns, $title) = @ARGV;
|
|
die unless (-f $file);
|
|
die unless ($y_label);
|
|
die unless ($columns =~ /^1:\d+/);
|
|
|
|
# print " ++++++ plotgraph $file\n";
|
|
plotgraph($file, $y_label, $columns, $title);
|
|
# print " ++++++ plotgraph\n";
|
|
|
|
# First column must be kernel count, second kernel version, third is job number
|
|
# $columns spec is 1:y-value:y-stddev
|
|
sub plotgraph {
|
|
my ($file, $y_label, $columns, $title) = @_;
|
|
my @xtics;
|
|
|
|
if (!$title) {
|
|
$title = $file;
|
|
$title =~ s#.*/##;
|
|
}
|
|
open (INDATA, $file);
|
|
open (DATA_MAIN, "> ${file}.main");
|
|
open (DATA_MM, "> ${file}.mm");
|
|
open (DATA_OTHER, "> ${file}.other");
|
|
my $count;
|
|
while ($data = <INDATA>) {
|
|
chomp $data;
|
|
($count, my $version, my $job) = split (/\s+/, $data);
|
|
$short_ver = $version;
|
|
$short_ver =~ s/\+.*/+p$job/;
|
|
push @xtics, "\"$short_ver\" $count";
|
|
if ($version =~ /^2\.\d+\.\d+(\.\d+|-rc\d+)?(-git\d+)?$/) {
|
|
print DATA_MAIN "$data\n";
|
|
$plot_main = "\"${file}.main\" using $columns title \"mainline\"";
|
|
} elsif ($version =~ /^2\.\d+\.\d+(-rc\d+)?-mm\d+$/) {
|
|
print DATA_MM "$data\n";
|
|
$plot_mm = "\"${file}.mm\" using $columns title \"-mm\"";
|
|
} else {
|
|
print DATA_OTHER "$data\n";
|
|
$plot_other = "\"${file}.other\" using $columns title \"other\"";
|
|
}
|
|
}
|
|
close (INDATA);
|
|
close (DATA_MAIN);
|
|
close (DATA_MM);
|
|
close (DATA_OTHER);
|
|
|
|
die unless ($count > 0);
|
|
$x_res = $count * 12;
|
|
$y_res = 900;
|
|
push @plots, $plot_main if ($plot_main);
|
|
push @plots, $plot_mm if ($plot_mm);
|
|
push @plots, $plot_other if ($plot_other);
|
|
$plots = join (',', @plots);
|
|
|
|
open (GNUPLOT, "> ${file}.gnuplot");
|
|
# print "MACHINE: $machine\n";
|
|
print GNUPLOT "set terminal png size $x_res,$y_res\n";
|
|
print GNUPLOT "set key below\n";
|
|
print GNUPLOT "set title \"$title\"\n";
|
|
print GNUPLOT "set xlabel \"Kernel\"\n";
|
|
print GNUPLOT "set ylabel \"${y_label}\"\n";
|
|
print GNUPLOT "set output \"${file}.png\"\n";
|
|
print GNUPLOT "set style data yerrorlines\n";
|
|
print GNUPLOT "set grid\n";
|
|
$xtics = join ',', @xtics;
|
|
print GNUPLOT "\nset xtics rotate (${xtics})\n\n";
|
|
print GNUPLOT "plot $plots\n";
|
|
print GNUPLOT "replot";
|
|
close (GNUPLOT);
|
|
`/usr/bin/gnuplot ${file}.gnuplot`;
|
|
`chmod 644 ${file}.gnuplot`;
|
|
`chmod 644 ${file}.png`;
|
|
}
|