prereq_print.t revision 1
3d63ea05cb8474d8036d3588cf8299306a994b8cas#!/usr/bin/perl -w
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8casBEGIN {
3d63ea05cb8474d8036d3588cf8299306a994b8cas if( $ENV{PERL_CORE} ) {
3d63ea05cb8474d8036d3588cf8299306a994b8cas chdir 't' if -d 't';
3d63ea05cb8474d8036d3588cf8299306a994b8cas @INC = ('../lib', 'lib');
3d63ea05cb8474d8036d3588cf8299306a994b8cas }
3d63ea05cb8474d8036d3588cf8299306a994b8cas else {
3d63ea05cb8474d8036d3588cf8299306a994b8cas unshift @INC, 't/lib';
3d63ea05cb8474d8036d3588cf8299306a994b8cas }
3d63ea05cb8474d8036d3588cf8299306a994b8cas}
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8casuse strict;
3d63ea05cb8474d8036d3588cf8299306a994b8casuse Config;
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8casuse Test::More tests => 8;
3d63ea05cb8474d8036d3588cf8299306a994b8casuse MakeMaker::Test::Utils;
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8cas# 'make disttest' sets a bunch of environment variables which interfere
3d63ea05cb8474d8036d3588cf8299306a994b8cas# with our testing.
3d63ea05cb8474d8036d3588cf8299306a994b8casdelete @ENV{qw(PREFIX LIB MAKEFLAGS)};
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8casmy $Perl = which_perl();
3d63ea05cb8474d8036d3588cf8299306a994b8casmy $Makefile = makefile_name();
3d63ea05cb8474d8036d3588cf8299306a994b8casmy $Is_VMS = $^O eq 'VMS';
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8caschdir($Is_VMS ? 'BFD_TEST_ROOT:[t]' : 't');
3d63ea05cb8474d8036d3588cf8299306a994b8casperl_lib;
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8cas$| = 1;
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8casok( chdir('Big-Dummy'), "chdir'd to Big-Dummy" ) ||
3d63ea05cb8474d8036d3588cf8299306a994b8cas diag("chdir failed: $!");
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8casunlink $Makefile;
3d63ea05cb8474d8036d3588cf8299306a994b8casmy $prereq_out = run(qq{$Perl Makefile.PL "PREREQ_PRINT=1"});
3d63ea05cb8474d8036d3588cf8299306a994b8casok( !-r $Makefile, "PREREQ_PRINT produces no $Makefile" );
3d63ea05cb8474d8036d3588cf8299306a994b8casis( $?, 0, ' exited normally' );
3d63ea05cb8474d8036d3588cf8299306a994b8cas{
3d63ea05cb8474d8036d3588cf8299306a994b8cas package _Prereq::Print;
3d63ea05cb8474d8036d3588cf8299306a994b8cas no strict;
3d63ea05cb8474d8036d3588cf8299306a994b8cas $PREREQ_PM = undef; # shut up "used only once" warning.
3d63ea05cb8474d8036d3588cf8299306a994b8cas eval $prereq_out;
3d63ea05cb8474d8036d3588cf8299306a994b8cas ::is_deeply( $PREREQ_PM, { strict => 0 }, 'prereqs dumped' );
3d63ea05cb8474d8036d3588cf8299306a994b8cas ::is( $@, '', ' without error' );
3d63ea05cb8474d8036d3588cf8299306a994b8cas}
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8cas$prereq_out = run(qq{$Perl Makefile.PL "PRINT_PREREQ=1"});
3d63ea05cb8474d8036d3588cf8299306a994b8casok( !-r $Makefile, "PRINT_PREREQ produces no $Makefile" );
3d63ea05cb8474d8036d3588cf8299306a994b8casis( $?, 0, ' exited normally' );
3d63ea05cb8474d8036d3588cf8299306a994b8cas::like( $prereq_out, qr/^perl\(strict\) \s* >= \s* 0 \s*$/x,
3d63ea05cb8474d8036d3588cf8299306a994b8cas 'prereqs dumped' );
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8cas# Currently a bug.
3d63ea05cb8474d8036d3588cf8299306a994b8cas#my $prereq_out = run(qq{$Perl Makefile.PL "PREREQ_PRINT=0"});
3d63ea05cb8474d8036d3588cf8299306a994b8cas#ok( -r $Makefile, "PREREQ_PRINT=0 produces a $Makefile" );
3d63ea05cb8474d8036d3588cf8299306a994b8cas#is( $?, 0, ' exited normally' );
3d63ea05cb8474d8036d3588cf8299306a994b8cas#unlink $Makefile;
3d63ea05cb8474d8036d3588cf8299306a994b8cas
3d63ea05cb8474d8036d3588cf8299306a994b8cas# Currently a bug.
3d63ea05cb8474d8036d3588cf8299306a994b8cas#my $prereq_out = run(qq{$Perl Makefile.PL "PRINT_PREREQ=1"});
3d63ea05cb8474d8036d3588cf8299306a994b8cas#ok( -r $Makefile, "PRINT_PREREQ=0 produces a $Makefile" );
3d63ea05cb8474d8036d3588cf8299306a994b8cas#is( $?, 0, ' exited normally' );
3d63ea05cb8474d8036d3588cf8299306a994b8cas#unlink $Makefile;
3d63ea05cb8474d8036d3588cf8299306a994b8cas