From: Vincent Pit Date: Sat, 19 Sep 2009 22:36:33 +0000 (+0200) Subject: Make Parser::XML::Twig a subclass of a new Parser::XML X-Git-Tag: v1.10~11 X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FTest-Valgrind.git;a=commitdiff_plain;h=b9e3e9311a415d0fa583815b40ba5af0b4a3e3a8 Make Parser::XML::Twig a subclass of a new Parser::XML That implements the ->args() method generically for all XML parsers. --- diff --git a/MANIFEST b/MANIFEST index 996df19..158ed90 100644 --- a/MANIFEST +++ b/MANIFEST @@ -18,6 +18,7 @@ lib/Test/Valgrind/Component.pm lib/Test/Valgrind/Parser.pm lib/Test/Valgrind/Parser/Suppressions/Text.pm lib/Test/Valgrind/Parser/Text.pm +lib/Test/Valgrind/Parser/XML.pm lib/Test/Valgrind/Parser/XML/Twig.pm lib/Test/Valgrind/Report.pm lib/Test/Valgrind/Session.pm diff --git a/lib/Test/Valgrind/Parser/XML.pm b/lib/Test/Valgrind/Parser/XML.pm new file mode 100644 index 0000000..4c28c20 --- /dev/null +++ b/lib/Test/Valgrind/Parser/XML.pm @@ -0,0 +1,75 @@ +package Test::Valgrind::Parser::XML; + +use strict; +use warnings; + +=head1 NAME + +Test::Valgrind::Parser::XML - Parse valgrind output as an XML stream. + +=head1 VERSION + +Version 1.02 + +=cut + +our $VERSION = '1.02'; + +=head1 DESCRIPTION + +This is a base class for L objects that can parse C's XML output. + +=cut + +use base qw/Test::Valgrind::Parser/; + +=head1 METHODS + +=head2 C + +Returns the arguments needed to tell C to print in XML to the filehandle C<$fh>. + +=cut + +sub args { + my $self = shift; + my ($session, $fh) = @_; + + my $fd_opt = $session->version ge '3.5.0' ? '--xml-fd=' : '--log-fd='; + + return ( + $self->SUPER::args(@_), + $fd_opt . fileno($fh), + ); +} + +=head1 SEE ALSO + +L, L. + +=head1 AUTHOR + +Vincent Pit, C<< >>, L. + +You can contact me by mail or on C (vincent). + +=head1 BUGS + +Please report any bugs or feature requests to C, or through the web interface at L. +I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. + +=head1 SUPPORT + +You can find documentation for this module with the perldoc command. + + perldoc Test::Valgrind::Parser::XML + +=head1 COPYRIGHT & LICENSE + +Copyright 2009 Vincent Pit, all rights reserved. + +This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. + +=cut + +1; # End of Test::Valgrind::Parser::XML diff --git a/lib/Test/Valgrind/Parser/XML/Twig.pm b/lib/Test/Valgrind/Parser/XML/Twig.pm index b3568c8..c1eeea9 100644 --- a/lib/Test/Valgrind/Parser/XML/Twig.pm +++ b/lib/Test/Valgrind/Parser/XML/Twig.pm @@ -7,7 +7,7 @@ our $VERSION = '1.02'; use Scalar::Util (); -use base qw/XML::Twig Test::Valgrind::Carp/; +use base qw/Test::Valgrind::Parser::XML Test::Valgrind::Carp XML::Twig/; BEGIN { XML::Twig->add_options('Stash'); }