From: Vincent Pit Date: Tue, 22 Sep 2009 17:14:02 +0000 (+0200) Subject: Test Session->new arguments in a new t/70-session.t X-Git-Tag: v1.10~2 X-Git-Url: http://git.vpit.fr/?a=commitdiff_plain;h=1676ebac042f1bf93c0639beb6b33ee471c063db;p=perl%2Fmodules%2FTest-Valgrind.git Test Session->new arguments in a new t/70-session.t --- diff --git a/MANIFEST b/MANIFEST index 158ed90..e0c368b 100644 --- a/MANIFEST +++ b/MANIFEST @@ -31,6 +31,7 @@ samples/xml-output-protocol4.txt t/00-load.t t/10-good.t t/20-bad.t +t/70-session.t t/80-suppressions.t t/91-pod.t t/92-pod-coverage.t diff --git a/t/70-session.t b/t/70-session.t new file mode 100644 index 0000000..3bfa7d0 --- /dev/null +++ b/t/70-session.t @@ -0,0 +1,63 @@ +#!perl + +use strict; +use warnings; + +use Test::Valgrind::Session; + +use File::Temp; + +use Test::More tests => 7; + +my $sess = eval { Test::Valgrind::Session->new( + search_dirs => [ ], +) }; +like $@, qr/^Empty valgrind candidates list/, 'no search_dirs'; + +$sess = eval { Test::Valgrind::Session->new( + valgrind => 'wut', +) }; +like $@, qr/^No appropriate valgrind executable/, 'nonexistant valgrind'; + +sub fake_vg { + my ($version) = @_; + return <<" FAKE_VG"; +#!$^X +if (\@ARGV == 1 && \$ARGV[0] eq '--version') { + print "valgrind-$version\n"; +} else { + print "hlagh\n"; +} + FAKE_VG +} + +my $vg_old = File::Temp->new(UNLINK => 1); +print $vg_old fake_vg('3.0.0'); +close $vg_old; +chmod 0755, $vg_old->filename; + +my $sess = eval { Test::Valgrind::Session->new( + valgrind => $vg_old->filename, + min_version => '3.1.0', +) }; +like $@, qr/^No appropriate valgrind executable/, 'old valgrind'; + +my $vg_new = File::Temp->new(UNLINK => 1); +print $vg_new fake_vg('3.4.0'); +close $vg_new; +chmod 0755, $vg_new->filename; + +$sess = eval { Test::Valgrind::Session->new( + valgrind => $vg_new->filename, + min_version => '3.1.0', +) }; +is $@, '', 'new valgrind'; +isa_ok $sess, 'Test::Valgrind::Session', 'new valgrind isa Test::Valgrind::Session'; + +$sess = eval { Test::Valgrind::Session->new( + search_dirs => [ ], + valgrind => [ $vg_old->filename, $vg_new->filename ], + min_version => '3.1.0', +) }; +is $@, '', 'old and new valgrind'; +isa_ok $sess, 'Test::Valgrind::Session', 'old and new valgrind isa Test::Valgrind::Session';