From 9faaffa87bbc4f427cabd5debbbab77582c1343c Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Fri, 5 Jun 2009 17:37:41 +0200 Subject: selftest: Make it easier to do subunit diffs from other apps. --- selftest/Subunit/Diff.pm | 21 ++++++++++++++------- selftest/diff-subunit.pl | 9 +++------ 2 files changed, 17 insertions(+), 13 deletions(-) (limited to 'selftest') diff --git a/selftest/Subunit/Diff.pm b/selftest/Subunit/Diff.pm index 8add5827f40..5c9e4f0de05 100644 --- a/selftest/Subunit/Diff.pm +++ b/selftest/Subunit/Diff.pm @@ -44,10 +44,9 @@ sub new { bless($self, $class); } -sub diff($$) +sub from_file($) { - my ($fh1, $fh2) = @_; - my $ret = {}; + my ($path) = @_; my $statistics = { TESTS_UNEXPECTED_OK => 0, TESTS_EXPECTED_OK => 0, @@ -56,10 +55,18 @@ sub diff($$) TESTS_ERROR => 0, TESTS_SKIP => 0, }; - my $old = new Subunit::Diff(); - parse_results($old, $statistics, $fh1); - my $new = new Subunit::Diff(); - parse_results($new, $statistics, $fh2); + + my $ret = new Subunit::Diff(); + open(IN, $path) or return; + parse_results($ret, $statistics, IN); + close(IN); + return $ret; +} + +sub diff($$) +{ + my ($old, $new) = @_; + my $ret = {}; foreach my $testname (keys %$old) { if ($new->{$testname} ne $old->{$testname}) { diff --git a/selftest/diff-subunit.pl b/selftest/diff-subunit.pl index 225c3d8986b..280021ccc49 100755 --- a/selftest/diff-subunit.pl +++ b/selftest/diff-subunit.pl @@ -9,13 +9,10 @@ use FindBin qw($RealBin $Script); use lib "$RealBin"; use Subunit::Diff; -open(FH1, $ARGV[0]) or die("Unable to open $ARGV[0]: $!"); -open(FH2, $ARGV[1]) or die("Unable to open $ARGV[1]: $!"); +my $old = Subunit::Diff::from_file($ARGV[0]); +my $new = Subunit::Diff::from_file($ARGV[1]); -my $ret = Subunit::Diff::diff(*FH1, *FH2); - -close(FH1); -close(FH2); +my $ret = Subunit::Diff::diff($old, $new); foreach my $e (keys %$ret) { printf "%s: %s -> %s\n", $e, $ret->{$e}[0], $ret->{$e}[1]; -- cgit