#! perl -w use strict; # $Id: regenstuff.t 763 2004-10-17 16:28:54Z abeltje $ my $findbin; use File::Basename; BEGIN { $findbin = dirname $0; } use lib $findbin; use TestLib; use Test::More tests => 11; BEGIN { use_ok( 'Test::Smoke::Util', qw( get_regen_headers run_regen_headers ) ); } my $ddir = File::Spec->catdir( $findbin, 'perl-current' ); -d $ddir or mkpath( $ddir, 0, 0755 ) or die "Cannot mkpath($ddir): $!"; END { -d $ddir and rmtree( $ddir ); } { my $regen = get_regen_headers( $ddir ); is( $regen, undef, "Found none" ); } SKIP: { # Find 'regen_headers.pl' my $to_skip = 2; local *FILE; my $regen_headers_pl = File::Spec->catfile( $ddir, 'regen_headers.pl' ); open( FILE, "> $regen_headers_pl" ) or skip "Cannot create '$regen_headers_pl': $!", $to_skip; print FILE < ); close REGENRUN; is( $output, "This is '$regen_headers_pl'", "Run regen_headers manually" ); } else { skip "Could not run regen_headers", $to_skip--; } } SKIP: { # Prefer 'regen_headers.pl' over 'regen.pl' my $to_skip = 2; local *FILE; my $regen_headers_pl = File::Spec->catfile( $ddir, 'regen_headers.pl' ); my $regen_pl = File::Spec->catfile( $ddir, 'regen.pl' ); open( FILE, "> $regen_pl" ) or skip "Cannot create '$regen_pl': $!", $to_skip; print FILE < ); close REGENRUN; is( $output, "This is '$regen_headers_pl'", "Run regen_headers manually" ); } else { skip "Could not run regen_headers", $to_skip--; } } SKIP: { # as of 18852: 'regen_headers.pl' is now 'regen.pl' my $to_skip = 2; my $regen_headers_pl = File::Spec->catfile( $ddir, 'regen_headers.pl' ); my $regen_pl = File::Spec->catfile( $ddir, 'regen.pl' ); unlink $regen_headers_pl or skip "Cannot unlink($regen_headers_pl): $!", $to_skip--; my $regen = get_regen_headers( $ddir ); is( $regen, qq[$^X "$regen_pl"], "Found '$regen'" ) or skip "Not found [$regen_pl]", $to_skip--; local *REGENRUN; if ( ok open( REGENRUN, "$regen |" ), "Start pipe" ) { chomp( my $output = ); close REGENRUN; is( $output, "This is '$regen_pl'", "Run regen_headers manually" ); } else { skip "Could not run regen_headers", $to_skip--; } }