#!/usr/bin/perl use strict; BEGIN { $| = 1; $^W = 1; } use Test::More; use File::Spec; use t::lib::Test; plan tests => 18; SCOPE: { # runtime error ok( create_dist('Foo', { 'Makefile.PL' => <<"END_DSL" }), 'create_dist' ); use strict; use warnings; use inc::Module::Install 0.81; name 'Foo'; perl_version '5.005'; all_from 'lib/Foo.pm'; unknown_func('args'); warn "after unknown func"; WriteAll; END_DSL if ( supports_capture() ) { my $error = capture_build_dist(); ok $?, 'build fails'; ok( $error =~ /Unknown function is found/, 'correct error'); ok( $error !~ /after unknown func/, 'no bogus warning'); diag $error if $ENV{TEST_VERBOSE}; } else { ok( !build_dist, 'build fails' ); SKIP : { skip 'this platform does not support 2>&1', 2; } } my $file = makefile(); ok(!-f $file, 'Makefile is not created'); ok( kill_dist(), 'kill_dist' ); } SCOPE: { # Bareword not allowed while "strict subs" in use ok( create_dist('Foo', { 'Makefile.PL' => <<"END_DSL" }), 'create_dist' ); use strict; use warnings; use inc::Module::Install 0.81; name 'Foo'; perl_version '5.005'; all_from 'lib/Foo.pm'; unknown_func; warn "after unknown func"; WriteAll; END_DSL if ( supports_capture() ) { my $error = capture_build_dist(); ok $?, 'build fails'; ok( $error =~ /Bareword .+ not allowed/, 'correct error'); ok( $error !~ /after unknown func/, 'no bogus warning'); diag $error if $ENV{TEST_VERBOSE}; } else { ok( !build_dist, 'build fails' ); SKIP : { skip "this platform does not support 2>&1", 2; } } my $file = makefile(); ok(!-f $file, 'Makefile is not created'); ok( kill_dist(), 'kill_dist' ); } SCOPE: { # String found where operator expected ok( create_dist('Foo', { 'Makefile.PL' => <<"END_DSL" }), 'create_dist' ); use strict; use warnings; use inc::Module::Install 0.81; name 'Foo'; perl_version '5.005'; all_from 'lib/Foo.pm'; unknown_func 'args'; warn "after unknown func"; WriteAll; END_DSL if ( supports_capture() ) { my $error = capture_build_dist(); ok $?, 'build fails'; ok( $error =~ /String found where operator expected/, 'correct error'); ok( $error !~ /after unknown func/, 'no bogus warning'); diag $error if $ENV{TEST_VERBOSE}; } else { ok( !build_dist, 'build fails' ); SKIP : { skip "this platform does not support 2>&1", 2; } } my $file = makefile(); ok(!-f $file, 'Makefile is not created'); ok( kill_dist(), 'kill_dist' ); }