#!/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