File: XMLFormatter.pm

package info (click to toggle)
libvirt-tck 0.1.0~2.git890d1c-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 1,128 kB
  • sloc: perl: 2,885; sh: 1,180; xml: 992; makefile: 6
file content (82 lines) | stat: -rw-r--r-- 1,649 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#
# Copyright (C) 2009 Red Hat, Inc.
# Copyright (C) 2009 Daniel P. Berrange
#
# This program is free software; You can redistribute it and/or modify
# it under the GNU General Public License as published by the Free
# Software Foundation; either version 2, or (at your option) any
# later version
#
# The file "LICENSE" distributed along with this file provides full
# details of the terms and conditions
#

package Sys::Virt::TCK::TAP::XMLFormatter;

use strict;
use warnings;

use base qw(TAP::Base);

use accessors qw(verbosity xml);

use Sys::Virt::TCK::TAP::XMLFormatterSession;
use XML::Writer;


sub _initialize {
    my $self = shift;
    my $args = shift;

    $args ||= {};

    $self->SUPER::_initialize($args);

    $self->verbosity(0);

    my $w = XML::Writer->new(OUTPUT => \*STDOUT,
			     DATA_MODE => 1,
			     DATA_INDENT => 2);
    $self->xml($w);

    return $self;
}

use Data::Dumper;

sub prepare {
    my $self = shift;
    my @tests = @_;

    $self->xml->startTag("results");
}

sub open_test {
    my $self = shift;
    my $test = shift;
    my $parser = shift;

    return Sys::Virt::TCK::TAP::XMLFormatterSession->new({ test => $test, parser => $parser, xml => $self->xml });
}

sub summary {
    my $self = shift;
    my $agg = shift;

    $self->xml->startTag("summary",
			 total => int($agg->total),
			 passed => int($agg->passed),
			 failed => int($agg->failed),
			 todo => int($agg->todo),
			 unexpected => int($agg->todo_passed),
			 skipped => int($agg->skipped),
			 errors => int($agg->parse_errors));


    $self->xml->endTag("summary");
    $self->xml->endTag("results");
    $self->xml->end;
}


1;