Counts: Tests: 542. Modules: 8. Passes: 8. Fails: 0
Elapsed time: 1 minute and 27 seconds

Attached is the updated program I run (should be the last version I release 
:-).

 

-- 
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(%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";

	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}";
}

say "Counts: Tests: $count{tests}. Modules: $count{modules}. Passes: $count{passes}. Fails: @{[$count{modules} - $count{passes}]}";
say 'Elapsed time: ', elapsed(time - $start);

__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
...

Reply via email to