selftest: Make it easier to do subunit diffs from other apps.
authorJelmer Vernooij <jelmer@samba.org>
Fri, 5 Jun 2009 15:37:41 +0000 (17:37 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 11 Jun 2009 17:59:59 +0000 (19:59 +0200)
selftest/Subunit/Diff.pm
selftest/diff-subunit.pl

index 8add5827f400aa173e2952e4a4675d36e6c28e72..5c9e4f0de05b41690f00ae2c21220399f155f10f 100644 (file)
@@ -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}) {
index 225c3d8986b421761ddb6f20c0a5c8ea87e2cf10..280021ccc4981e50775f7856f688690230d3caa8 100755 (executable)
@@ -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];