1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/source4/script/subunit-summary
2007-10-10 14:36:03 -05:00

71 lines
1.3 KiB
Perl
Executable File

#!/usr/bin/perl
# Simple subunit parser
# (C) 2006 Jelmer Vernooij <jelmer@samba.org>
use strict;
use Getopt::Long;
my $numtests = 0;
my $numfails = 0;
my $numskips = 0;
my $numsuccess = 0;
my $opt_help = 0;
my $opt_progress = 0;
my $result = GetOptions (
'help|h|?' => \$opt_help,
'progress' => \$opt_progress
);
if (not $result) {
exit(1);
}
if ($opt_help) {
print "subunit output summarizer\n";
print "Copyright (C) 2006 Jelmer Vernooij <jelmer\@samba.org>\n";
print "\n";
print "Usage: subunit-summary [OPTION]\n";
print " --help Print this help message\n";
print "\n";
exit(0);
}
while(<STDIN>) {
next unless (/^(.+): (.+?)( \[)?$/);
if ($1 eq "test") {
$numtests++;
} elsif ($1 eq "error") {
print "E" if ($opt_progress);
} elsif ($1 eq "failure") {
$numfails++;
print "F" if ($opt_progress);
} elsif ($1 eq "success") {
$numsuccess++;
print "." if ($opt_progress);
} elsif ($1 eq "skip") {
$numskips++;
print "I" if ($opt_progress);
} elsif ($1 eq "testsuite") {
if ($opt_progress) {
if ($numtests) { print "\n"; }
print "$2: ";
}
}
}
print "\n" if ($opt_progress);
if ($numtests == 0) {
print "No tests run\n";
exit(0);
}
printf("%d%%: %d tests, %d succeeded, %d failed, %d skipped\n",
($numsuccess / $numtests * 100),
$numtests,
$numsuccess,
$numfails,
$numskips);