#!/usr/bin/perl -w
use
lib
$ENV
{PERL_CORE} ?
'../lib/Module/Build/t/lib'
:
't/lib'
;
use_ok
'Module::Build'
;
ensure_blib(
'Module::Build'
);
my
$tmp
= MBTest->tmpdir;
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;
$::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'
);
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"
);
$dist
->remove;