1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
#!/usr/bin/perl -w
BEGIN {
if ($^O eq 'VMS') {
print '1..0 # Child test output confuses harness';
exit;
}
}
use strict;
use lib 't/lib';
use MBTest tests => 7;
blib_load('Module::Build');
my $tmp = MBTest->tmpdir;
use DistGen;
my $dist = DistGen->new( dir => $tmp );
$dist->add_file('t/special_ext.st', <<'---' );
#!perl
use Test::More tests => 2;
ok(1, 'first test in special_ext');
ok(1, 'second test in special_ext');
---
$dist->regen;
$dist->chdir_in;
#########################
# Here we make sure we can define an action that will test a particular type
$::x = 0;
my $mb = Module::Build->subclass(
code => q#
sub ACTION_testspecial {
$::x++;
shift->generic_test(type => 'special');
}
#
)->new(
module_name => $dist->name,
test_types => { special => '.st' }
);
ok $mb;
$mb->dispatch('testspecial');
is($::x, 1, "called once");
$mb->add_to_cleanup('save_out');
# Use uc() so we don't confuse the current test output
my $verbose_output = uc(stdout_of(
sub {$mb->dispatch('testspecial', verbose => 1)}
));
like($verbose_output, qr/^OK 1 - FIRST TEST IN SPECIAL_EXT/m);
like($verbose_output, qr/^OK 2 - SECOND TEST IN SPECIAL_EXT/m);
is( $::x, 2, "called again");
my $output = uc(stdout_of(
sub {$mb->dispatch('testspecial', verbose => 0)}
));
like($output, qr/\.\. ?OK/);
is($::x, 3, "called a third time");
# vim:ts=4:sw=4:et:sta
|