]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/commitdiff
Make sure an absolute path is used in the dummy valgrind script shebang
authorVincent Pit <perl@profvince.com>
Wed, 11 Nov 2015 15:36:17 +0000 (13:36 -0200)
committerVincent Pit <perl@profvince.com>
Thu, 12 Nov 2015 15:16:05 +0000 (13:16 -0200)
And skip if we can't find it.

t/70-session.t

index 22c78cd15a0f9084185fcf9514d830eead523cf8..bada708f7fb60e65c83eb1c8d187f3e104891d89 100644 (file)
@@ -21,8 +21,17 @@ like $@, qr/^No appropriate valgrind executable/, 'nonexistant valgrind';
 
 sub fake_vg {
  my ($version) = @_;
+
+ my $perl = $^X;
+ unless (-e $perl and -x $perl) {
+  $perl = $Config::Config{perlpath};
+  unless (-e $perl and -x $perl) {
+   return undef;
+  }
+ }
+
  return <<" FAKE_VG";
-#!$^X
+#!$perl
 if (\@ARGV == 1 && \$ARGV[0] eq '--version') {
  print "valgrind-$version\n";
 } else {
@@ -34,8 +43,12 @@ if (\@ARGV == 1 && \$ARGV[0] eq '--version') {
 SKIP: {
  skip 'Only on linux or darwin' => 5 unless $^O eq 'linux' or $^O eq 'darwin';
 
+ my $fake_vg_code = fake_vg('3.0.0');
+ skip 'Could not generate the dummy valgrind executable' => 5
+                                                   unless defined $fake_vg_code;
+
  my $vg_old = File::Temp->new(UNLINK => 1);
- print $vg_old fake_vg('3.0.0');
+ print $vg_old $fake_vg_code;
  close $vg_old;
  chmod 0755, $vg_old->filename;
 
@@ -45,8 +58,12 @@ SKIP: {
  ) };
  like $@, qr/^No appropriate valgrind executable/, 'old valgrind';
 
+ $fake_vg_code = fake_vg('3.4.0');
+ skip 'Could not generate the dummy valgrind executable' => 4
+                                                   unless defined $fake_vg_code;
+
  my $vg_new = File::Temp->new(UNLINK => 1);
- print $vg_new fake_vg('3.4.0');
+ print $vg_new $fake_vg_code;
  close $vg_new;
  chmod 0755, $vg_new->filename;