~jameinel/subunit/integration

« back to all changes in this revision

Viewing changes to perl/lib/Subunit/Diff.pm

  • Committer: Robert Collins
  • Date: 2007-04-21 07:10:18 UTC
  • Revision ID: robertc@robertcollins.net-20070421071018-66d676a9atirgqmz
Update the check patch to be more accceptable to upstream, include documentation, and apply to check 0.9.5.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/perl
2
 
# Diff two subunit streams
3
 
# Copyright (C) Jelmer Vernooij <jelmer@samba.org>
4
 
#
5
 
#  Licensed under either the Apache License, Version 2.0 or the BSD 3-clause
6
 
#  license at the users choice. A copy of both licenses are available in the
7
 
#  project source as Apache-2.0 and BSD. You may not use this file except in
8
 
#  compliance with one of these two licences.
9
 
#  
10
 
#  Unless required by applicable law or agreed to in writing, software
11
 
#  distributed under these licenses is distributed on an "AS IS" BASIS, WITHOUT
12
 
#  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
13
 
#  license you chose for the specific language governing permissions and
14
 
#  limitations under that license.
15
 
 
16
 
package Subunit::Diff;
17
 
 
18
 
use strict;
19
 
 
20
 
use Subunit qw(parse_results);
21
 
 
22
 
sub control_msg() { }
23
 
sub report_time($$) { }
24
 
 
25
 
sub output_msg($$)
26
 
{
27
 
        my ($self, $msg) = @_;
28
 
 
29
 
        # No output for now, perhaps later diff this as well ?
30
 
}
31
 
 
32
 
sub start_test($$)
33
 
{
34
 
        my ($self, $testname) = @_;
35
 
}
36
 
 
37
 
sub end_test($$$$$)
38
 
{
39
 
        my ($self, $testname, $result, $unexpected, $reason) = @_;
40
 
 
41
 
        $self->{$testname} = $result;
42
 
}
43
 
 
44
 
sub new {
45
 
        my ($class) = @_;
46
 
 
47
 
        my $self = { 
48
 
        };
49
 
        bless($self, $class);
50
 
}
51
 
 
52
 
sub from_file($)
53
 
{
54
 
        my ($path) = @_;
55
 
        my $statistics = {
56
 
                TESTS_UNEXPECTED_OK => 0,
57
 
                TESTS_EXPECTED_OK => 0,
58
 
                TESTS_UNEXPECTED_FAIL => 0,
59
 
                TESTS_EXPECTED_FAIL => 0,
60
 
                TESTS_ERROR => 0,
61
 
                TESTS_SKIP => 0,
62
 
        };
63
 
 
64
 
        my $ret = new Subunit::Diff();
65
 
        open(IN, $path) or return;
66
 
        parse_results($ret, $statistics, *IN);
67
 
        close(IN);
68
 
        return $ret;
69
 
}
70
 
 
71
 
sub diff($$)
72
 
{
73
 
        my ($old, $new) = @_;
74
 
        my $ret = {};
75
 
 
76
 
        foreach my $testname (keys %$old) {
77
 
                if ($new->{$testname} ne $old->{$testname}) {
78
 
                        $ret->{$testname} = [$old->{$testname}, $new->{$testname}];
79
 
                }
80
 
        }
81
 
 
82
 
        return $ret;
83
 
}
84
 
 
85
 
1;