]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/blob - t/70-session.t
Make sure auxillary tests don't pick up the system valgrind
[perl/modules/Test-Valgrind.git] / t / 70-session.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 BEGIN { delete $ENV{PATH} }
7
8 use Test::Valgrind::Session;
9
10 use Test::More tests => 7;
11
12 use lib 't/lib';
13 use Test::Valgrind::FakeValgrind;
14
15 my $sess = eval { Test::Valgrind::Session->new(
16  search_dirs => [ ],
17 ) };
18 like $@, qr/^Empty valgrind candidates list/, 'no search_dirs';
19
20 $sess = eval { Test::Valgrind::Session->new(
21  valgrind => 'wut',
22 ) };
23 like $@, qr/^No appropriate valgrind executable/, 'nonexistant valgrind';
24
25 SKIP: {
26  skip 'Only on linux or darwin' => 5 unless $^O eq 'linux' or $^O eq 'darwin';
27
28  my $old_vg = Test::Valgrind::FakeValgrind->new(
29   version => '3.0.0',
30  );
31  skip $old_vg => 5 unless ref $old_vg;
32
33  my $sess = eval { Test::Valgrind::Session->new(
34   valgrind    => $old_vg->path,
35   min_version => '3.1.0',
36  ) };
37  like $@, qr/^No appropriate valgrind executable/, 'old valgrind';
38
39  my $new_vg = Test::Valgrind::FakeValgrind->new(
40   version => '3.4.0',
41  );
42  skip $new_vg => 4 unless ref $new_vg;
43
44  $sess = eval { Test::Valgrind::Session->new(
45   valgrind    => $new_vg->path,
46   min_version => '3.1.0',
47  ) };
48  is     $@,    '',                        'new valgrind';
49  isa_ok $sess, 'Test::Valgrind::Session', 'new valgrind isa Test::Valgrind::Session';
50
51  $sess = eval { Test::Valgrind::Session->new(
52   search_dirs => [ ],
53   valgrind    => [ $old_vg->path, $new_vg->path ],
54   min_version => '3.1.0',
55  ) };
56  is     $@,    '',                        'old and new valgrind';
57  isa_ok $sess, 'Test::Valgrind::Session', 'old and new valgrind isa Test::Valgrind::Session';
58 }