]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blob - t/30-skip.t
b758af10fc973ef299b38a96a14d1d08bf55fd08
[perl/modules/Test-Valgrind.git] / t / 30-skip.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 BEGIN { delete $ENV{PATH} }
7
8 use lib 't/lib';
9 use VPIT::TestHelpers 'capture';
10
11 use Test::More tests => 3;
12
13 use Test::Valgrind::FakeValgrind;
14
15 SKIP: {
16  my ($stat, $out, $err) = capture_perl 'BEGIN { delete $ENV{PATH} } use Test::Valgrind; 1';
17  skip CAPTURE_PERL_FAILED($out) => 1 unless defined $stat;
18  like $out, qr/^1\.\.0 # (?:SKIP|Skip) Empty valgrind candidates list/,
19             'correctly skip when no valgrind is available';
20 }
21
22 SKIP: {
23  skip 'Only on linux or darwin' => 1 unless $^O eq 'linux' or $^O eq 'darwin';
24
25  my $old_vg = Test::Valgrind::FakeValgrind->new(
26   exe_name => 'valgrind',
27   version  => '3.0.0',
28  );
29  skip $old_vg => 1 unless ref $old_vg;
30  my $tmp_dir = $old_vg->dir;
31
32  my ($stat, $out, $err) = capture_perl "BEGIN { \$ENV{PATH} = q[$tmp_dir] } use Test::Valgrind; 1";
33  skip CAPTURE_PERL_FAILED($out) => 1 unless defined $stat;
34  like $out, qr/^1\.\.0 # (?:SKIP|Skip) No appropriate valgrind executable could be found/, 'correctly skip when no good valgrind was found';
35 }
36
37 SKIP: {
38  skip 'Only on linux or darwin' => 1 unless $^O eq 'linux' or $^O eq 'darwin';
39
40  my $new_vg = Test::Valgrind::FakeValgrind->new(
41   exe_name => 'valgrind',
42   version  => '3.4.0',
43  );
44  skip $new_vg => 1 unless ref $new_vg;
45  my $tmp_dir = $new_vg->dir;
46
47  my ($stat, $out, $err) = capture_perl "BEGIN { \$ENV{PATH} = q[$tmp_dir] } use Test::Valgrind no_def_supp => 1, extra_supps => [ q[t/supp/no_perl] ]; 1";
48  skip CAPTURE_PERL_FAILED($out) => 1 unless defined $stat;
49  like $out, qr/^1\.\.0 # (?:SKIP|Skip) No compatible suppressions available/,
50             'correctly skip when no compatible suppressions were available';
51 }
52