]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/commitdiff
More lax valgrind version parsing
authorVincent Pit <perl@profvince.com>
Fri, 29 Jul 2016 17:05:11 +0000 (14:05 -0300)
committerVincent Pit <perl@profvince.com>
Fri, 29 Jul 2016 17:07:00 +0000 (14:07 -0300)
If valgrind ever decides to add a full stop at the end of the output of
"valgrind --version", then the (?!\.) in the version parsing regexp will
cause unexpected backtracking which will result in an invalid version.

lib/Test/Valgrind/Version.pm
t/60-version.t

index b2da36b9d83f4d13657bf3b3dc46f517855cfeb7..94661bb9e838d1e21bad43a1f9c35f90a5870197 100644 (file)
@@ -65,11 +65,11 @@ sub new {
  my $output = $args{command_output};
  my $string;
  if (defined $output) {
-  ($string) = $output =~ /^valgrind-([0-9]+(?:\.[0-9]+)*)(?!\.)/;
+  ($string) = $output =~ /^valgrind-([0-9]+(?:\.[0-9]+)*)/;
  } else {
   $string = $args{string};
   return $string if $string->$instanceof(__PACKAGE__);
-  if (defined $string and $string =~ /^([0-9]+(?:\.[0-9]+)*)(?!\.)/) {
+  if (defined $string and $string =~ /^([0-9]+(?:\.[0-9]+)*)/) {
    $string = $1;
   } else {
    $string = undef;
index 4b6b2a99ae2ab227a1e3cac7fdada86731427bc8..68a99a0975dc2868070f527e987e22f82736cc66 100644 (file)
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 6 + 6 + 2 * 5 + 2 * 5 + 2 * 21 + 2 * 14;
+use Test::More tests => 6 + 5 + 4 * 8 + 2 * 21 + 2 * 14;
 
 use Test::Valgrind::Version;
 
@@ -40,9 +40,8 @@ my @string_failures = (
  undef,
  'valgrind',
  'valgrind-1.2.3',
- '1.',
- '1.2.',
- '1.2.a',
+ 'abc',
+ 'd.e.f',
 );
 
 for my $failure (@string_failures) {
@@ -59,6 +58,9 @@ my @command_valid = (
  'valgrind-1.2.3'     => '1.2.3',
  'valgrind-1.2.4-rc5' => '1.2.4',
  'valgrind-1.2.6a'    => '1.2.6',
+ 'valgrind-1.2.7.'    => '1.2.7',
+ 'valgrind-1.2.x.8'   => '1.2.0',
+ 'valgrind-1.10.'     => '1.10.0',
 );
 
 my @string_valid = map { my $s = $_; $s =~ s/^valgrind-//; $s }