#!/usr/bin/perl # Simple subunit parser # (C) 2006 Jelmer Vernooij 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 \n"; print "\n"; print "Usage: subunit-summary [OPTION]\n"; print " --help Print this help message\n"; print "\n"; exit(0); } while() { 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);