6 use Test::Valgrind::Session;
10 use Test::More tests => 7;
12 my $sess = eval { Test::Valgrind::Session->new(
15 like $@, qr/^Empty valgrind candidates list/, 'no search_dirs';
17 $sess = eval { Test::Valgrind::Session->new(
20 like $@, qr/^No appropriate valgrind executable/, 'nonexistant valgrind';
26 unless (-e $perl and -x $perl) {
27 $perl = $Config::Config{perlpath};
28 unless (-e $perl and -x $perl) {
35 if (\@ARGV == 1 && \$ARGV[0] eq '--version') {
36 print "valgrind-$version\n";
44 skip 'Only on linux or darwin' => 5 unless $^O eq 'linux' or $^O eq 'darwin';
46 my $fake_vg_code = fake_vg('3.0.0');
47 skip 'Could not generate the dummy valgrind executable' => 5
48 unless defined $fake_vg_code;
50 my $vg_old = File::Temp->new(UNLINK => 1);
51 print $vg_old $fake_vg_code;
53 chmod 0755, $vg_old->filename;
55 my $sess = eval { Test::Valgrind::Session->new(
56 valgrind => $vg_old->filename,
57 min_version => '3.1.0',
59 like $@, qr/^No appropriate valgrind executable/, 'old valgrind';
61 $fake_vg_code = fake_vg('3.4.0');
62 skip 'Could not generate the dummy valgrind executable' => 4
63 unless defined $fake_vg_code;
65 my $vg_new = File::Temp->new(UNLINK => 1);
66 print $vg_new $fake_vg_code;
68 chmod 0755, $vg_new->filename;
70 $sess = eval { Test::Valgrind::Session->new(
71 valgrind => $vg_new->filename,
72 min_version => '3.1.0',
74 is $@, '', 'new valgrind';
75 isa_ok $sess, 'Test::Valgrind::Session', 'new valgrind isa Test::Valgrind::Session';
77 $sess = eval { Test::Valgrind::Session->new(
79 valgrind => [ $vg_old->filename, $vg_new->filename ],
80 min_version => '3.1.0',
82 is $@, '', 'old and new valgrind';
83 isa_ok $sess, 'Test::Valgrind::Session', 'old and new valgrind isa Test::Valgrind::Session';