]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/commitdiff
Make Parser::XML::Twig a subclass of a new Parser::XML
authorVincent Pit <vince@profvince.com>
Sat, 19 Sep 2009 22:36:33 +0000 (00:36 +0200)
committerVincent Pit <vince@profvince.com>
Sat, 19 Sep 2009 22:36:33 +0000 (00:36 +0200)
That implements the ->args() method generically for all XML parsers.

MANIFEST
lib/Test/Valgrind/Parser/XML.pm [new file with mode: 0644]
lib/Test/Valgrind/Parser/XML/Twig.pm

index 996df191483e20cb01ce5a0ea3958e2365777a3e..158ed9035e2d04a6d3ca5018e8e57abd464a8e04 100644 (file)
--- 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 (file)
index 0000000..4c28c20
--- /dev/null
@@ -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<Test::Valgrind::Parser> objects that can parse C<valgrind>'s XML output.
+
+=cut
+
+use base qw/Test::Valgrind::Parser/;
+
+=head1 METHODS
+
+=head2 C<args $session, $fh>
+
+Returns the arguments needed to tell C<valgrind> 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<Test::Valgrind>, L<Test::Valgrind::Parser>.
+
+=head1 AUTHOR
+
+Vincent Pit, C<< <perl at profvince.com> >>, L<http://www.profvince.com>.
+
+You can contact me by mail or on C<irc.perl.org> (vincent).
+
+=head1 BUGS
+
+Please report any bugs or feature requests to C<bug-test-valgrind at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Valgrind>.
+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
index b3568c89a6c9a8ae98e045b7f05d13aa007a46c8..c1eeea9898191db9f26422fc6d6337306884586a 100644 (file)
@@ -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'); }