Elapsed time: 1 minute and 28 seconds. Modules: 8. Passes: 8. Tests: 542
>
>
The program is attached if you wish to run it on your own modules.
--
You received this message because you are subscribed to the Google Groups
"marpa parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.
#!/usr/bin/env perl
use feature 'say';
use strict;
use warnings;
use Capture::Tiny 'capture';
use File::chdir; # For $CWD.
use Time::Elapsed 'elapsed';
# -----------
my($start) = time;
my($verbose) = shift || 0;
my(%module) =
( # Build.PL/Makefile.PL (not used).
'Graph::Easy::Marpa' => 'build',
'GraphViz2::Marpa' => 'build',
'GraphViz2::Marpa::PathUtils' => 'build',
'MarpaX::Demo::JSONParser' => 'make',
'MarpaX::Demo::StringParser' => 'build',
'MarpaX::Grammar::GraphViz2' => 'make',
'MarpaX::Grammar::Parser' => 'make',
'MarpaX::Languages::SVG::Parser' => 'build',
);
my($count);
my($dir_name);
my(@line, $line);
my($stdout, $stderr, %stats);
for my $module (sort keys %module)
{
$dir_name = $module =~ s/::/-/gr;
$dir_name = "$ENV{HOME}/perl.modules/$dir_name";
say "$module => $dir_name" if ($verbose);
local $CWD = $dir_name;
($stdout, $stderr) = capture{system 'prove', 't'};
die "$stderr" if ($stderr);
@line = split/\n/, $stdout;
for my $i (0 .. $#line)
{
$line = $line[$i];
if ($line =~ /^Files=.+Tests=(\d+),/)
{
$count = $1;
$stats{$module} =
{
result => $line[$i + 1] =~ /Result: PASS/ ? 'Pass' : 'Fail',
tests => $count,
};
}
}
}
my(%count) =
(
modules => 0,
passes => 0,
tests => 0,
);
for my $module (sort keys %stats)
{
$count{modules}++;
$count{passes}++ if ($stats{$module}{result} eq 'Pass');
$count{tests} += $stats{$module}{tests};
say "$module. Tests: $stats{$module}{tests}. Result: $stats{$module}{result}" if ($verbose);
}
say 'Elapsed time: ', elapsed(time - $start), ". Modules: $count{modules}. Passes: $count{passes}. Tests: $count{tests}";
__END__
Graph::Easy::Marpa
t/attr.t .... ok
t/edge.t .... ok
t/tokens.t .. ok
All tests successful.
Files=3, Tests=88, 2 wallclock secs ( 0.04 usr 0.02 sys + 2.15 cusr 0.04 csys = 2.25 CPU)
Result: PASS
...