#!/usr/bin/perl -w
if
(
eval
{
require
TAP::Harness && TAP::Harness->VERSION(3) }) {
plan
tests
=> 9;
}
else
{
plan
skip_all
=>
'TAP::Harness 3+ not installed'
}
blib_load(
'Module::Build'
);
my
$tmp
= MBTest->tmpdir;
my
$dist
= DistGen->new(
dir
=>
$tmp
);
$dist
->regen;
$dist
->chdir_in;
$dist
->change_build_pl(
module_name
=>
$dist
->name,
use_tap_harness
=> 1,
quiet
=> 1,
);
$dist
->regen;
ok
my
$mb
=
$dist
->new_from_context,
'Construct build object with test_file_exts parameter'
;
$mb
->add_to_cleanup(
'save_out'
);
my
$out
=
uc
(stdout_of(
sub
{
$mb
->dispatch(
'test'
,
verbose
=> 1)}
));
like
$out
,
qr/^OK 1/
m,
'Should see first test output'
;
like
$out
,
qr/^ALL TESTS SUCCESSFUL/
m,
'Should see test success message'
;
$dist
->change_build_pl(
module_name
=>
$dist
->name,
use_tap_harness
=> 1,
tap_harness_args
=> {
verbosity
=> 0 },
quiet
=> 1,
);
$dist
->regen;
ok
$mb
=
$dist
->new_from_context,
'Construct build object with test_file_exts parameter'
;
$mb
->add_to_cleanup(
'save_out'
);
$out
=
uc
(stdout_of(
sub
{
$mb
->dispatch(
'test'
,
verbose
=> 1)}
));
unlike
$out
,
qr/^OK 1/
m,
'Should not see first test output'
;
like
$out
,
qr/^ALL TESTS SUCCESSFUL/
m,
'Should see test success message'
;
$dist
->change_build_pl(
module_name
=>
$dist
->name,
use_tap_harness
=> 1,
tap_harness_args
=> {
verbosity
=> 1 },
quiet
=> 1,
);
$dist
->change_file(
't/basic.t'
,
<<"---");
use Test::More tests => 1;
use strict;
use $dist->{name};
ok 0;
---
$dist
->regen;
ok
$mb
=
$dist
->new_from_context,
'Construct build object after setting tests to fail'
;
$out
= stdout_stderr_of(
sub
{
$dist
->run_build(
'test'
)} );
ok( $?,
"'Build test' had non-zero exit code"
);
like(
$out
,
qr{Errors in testing\. Cannot continue\.}
,
"Saw emulated Test::Harness die() message"
);