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 {
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;
) };
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;