mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
062289f0f8
Note: $#array is the biggest index in an array in perl. @array evaluated in scalar context is the number of elements. Hence scalar(@array) = 1 + $#array Or equivalently: 0 + @array = 1 + $#array ... :-) Apart from this off-by-one error, the "unless" clause to trigger the capping of the number of tests listed was wrong. Hence if less then 10 tests were run, a number of blank lines were appended. Signed-off-by: Michael Adam <obnox@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
50 lines
902 B
Perl
Executable File
50 lines
902 B
Perl
Executable File
#!/usr/bin/env perl
|
|
use Time::Local ('timegm');
|
|
my $in = STDIN;
|
|
use strict;
|
|
|
|
my $intest=0;
|
|
my $name;
|
|
my $start=0;
|
|
my $end=0;
|
|
my %hash;
|
|
my $fh;
|
|
my $max=0;
|
|
if ($#ARGV >= 0) {
|
|
open($fh, "<", $ARGV[0]) || die "can't open ".$ARGV[0];
|
|
} else {
|
|
$fh = $in;
|
|
}
|
|
if ($#ARGV >= 1) {
|
|
$max = $ARGV[1];
|
|
if ($max =~ /\D/) {
|
|
die "not a decimal number: '$max'";
|
|
}
|
|
}
|
|
|
|
while(<$fh>)
|
|
{
|
|
if (m/^testsuite: (.*)/) {
|
|
$intest = 1;
|
|
$name = $1;
|
|
}
|
|
if (m/testsuite-\w+:/) {
|
|
$hash{"$name -> ".($end - $start)} = $end - $start;
|
|
$intest = 0;
|
|
$start = 0;
|
|
}
|
|
if (m/^time: (\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/ && $intest) {
|
|
my $ts=timegm($6,$5,$4,$3,$2 - 1,$1 - 1900);
|
|
if ($start == 0) {
|
|
$start = $ts;
|
|
} else {
|
|
$end = $ts;
|
|
}
|
|
}
|
|
}
|
|
my @sorted = sort { $hash{$b}<=>$hash{$a} } keys(%hash);
|
|
$max = @sorted if (($max <= 0) or ($max > @sorted));
|
|
for my $l (@sorted[0..($max - 1)]) {
|
|
print $l."\n";
|
|
}
|