1N/A#!/usr/bin/perl -w
1N/A
1N/A# Wherein we ensure that postamble works ok.
1N/A
1N/ABEGIN {
1N/A if( $ENV{PERL_CORE} ) {
1N/A chdir 't' if -d 't';
1N/A @INC = ('../lib', 'lib');
1N/A }
1N/A else {
1N/A unshift @INC, 't/lib';
1N/A }
1N/A}
1N/A
1N/Ause strict;
1N/Ause Test::More tests => 5;
1N/Ause MakeMaker::Test::Utils;
1N/Ause ExtUtils::MakeMaker;
1N/Ause TieOut;
1N/A
1N/Achdir 't';
1N/Aperl_lib;
1N/A$| = 1;
1N/A
1N/Amy $Makefile = makefile_name;
1N/A
1N/Aok( chdir 'Big-Dummy', q{chdir'd to Big-Dummy} ) ||
1N/A diag("chdir failed: $!");
1N/A
1N/A{
1N/A my $warnings = '';
1N/A local $SIG{__WARN__} = sub {
1N/A $warnings = join '', @_;
1N/A };
1N/A
1N/A my $stdout = tie *STDOUT, 'TieOut' or die;
1N/A my $mm = WriteMakefile(
1N/A NAME => 'Big::Dummy',
1N/A VERSION_FROM => 'lib/Big/Dummy.pm',
1N/A postamble => {
1N/A FOO => 1,
1N/A BAR => "fugawazads"
1N/A }
1N/A );
1N/A is( $warnings, '', 'postamble argument not warned about' );
1N/A}
1N/A
1N/Asub MY::postamble {
1N/A my($self, %extra) = @_;
1N/A
1N/A is_deeply( \%extra, { FOO => 1, BAR => 'fugawazads' },
1N/A 'postamble args passed' );
1N/A
1N/A return <<OUT;
1N/A# This makes sure the postamble gets written
1N/AOUT
1N/A
1N/A}
1N/A
1N/A
1N/Aok( open(MAKEFILE, $Makefile) ) or diag "Can't open $Makefile: $!";
1N/A{ local $/;
1N/A like( <MAKEFILE>, qr/^\# This makes sure the postamble gets written\n/m,
1N/A 'postamble added to the Makefile' );
1N/A}