]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/commitdiff
Make Parser::XML::Twig collect the protocol version
authorVincent Pit <vince@profvince.com>
Sat, 19 Sep 2009 23:22:09 +0000 (01:22 +0200)
committerVincent Pit <vince@profvince.com>
Sat, 19 Sep 2009 23:22:09 +0000 (01:22 +0200)
lib/Test/Valgrind/Parser/XML/Twig.pm

index c1eeea9898191db9f26422fc6d6337306884586a..878ef4de6afe1594bf46b5338c0d0293d4435071 100644 (file)
@@ -12,7 +12,8 @@ use base qw/Test::Valgrind::Parser::XML Test::Valgrind::Carp XML::Twig/;
 BEGIN { XML::Twig->add_options('Stash'); }
 
 my %handlers = (
- '/valgrindoutput/error' => \&handle_error,
+ '/valgrindoutput/protocolversion' => \&handle_version,
+ '/valgrindoutput/error'           => \&handle_error,
 );
 
 sub new {
@@ -32,11 +33,12 @@ sub new {
 
 sub stash { shift->{Stash} }
 
+eval "sub $_ { \@_ <= 1 ? \$_[0]->{$_} : (\$_[0]->{$_} = \$_[1]) }"
+                                              for qw/_session protocol_version/;
+
 # We must store the session in ourselves because it's only possible to pass
 # arguments to XML::Twig objects by a global stash.
 
-sub _session { @_ <= 1 ? $_[0]->{_session} : ($_[0]->{_session} = $_[1]) }
-
 sub start {
  my ($self, $sess) = @_;
 
@@ -64,6 +66,14 @@ sub finish {
  return;
 }
 
+sub handle_version {
+ my ($twig, $node) = @_;
+
+ $twig->protocol_version($node->text);
+
+ $twig->purge;
+}
+
 sub handle_error {
  my ($twig, $node) = @_;