#! /usr/bin/perl -w use strict; # $Id: smoked_config.t 845 2005-04-24 16:29:11Z abeltje $ use File::Spec; my $findbin; use File::Basename; BEGIN { $findbin = dirname $0; } use lib $findbin; use TestLib; use Test::More tests => 38; BEGIN { use_ok( 'Test::Smoke::Util', 'get_smoked_Config' ) } # make it work for all require POSIX; my( $osname, undef, $osvers, undef, $arch ) = map lc $_ => POSIX::uname(); my $version = '5.9.0'; my $config_sh = <<"!END!"; osname='$osname' osvers='$osvers' archname='$arch' cf_email='abeltje\@cpan.org' version='$version' !END! my( $Config_heavy, $Config_pm, $Config_sh, $patchlevel_h ); SKIP: { my $cfg_nm = 'Config_heavy.pl'; my $to_skip = 5; my $libpath = File::Spec->catdir( $findbin, 'lib' ); -d $libpath or mkpath( $libpath ) or skip "Can't create '$libpath': $!", $to_skip; $Config_heavy = File::Spec->catfile( $libpath, $cfg_nm ); local *CONFIGPM; open CONFIGPM, "> $Config_heavy" or skip "Can't create '$Config_heavy': $!", $to_skip; print CONFIGPM <catdir( $findbin, 'lib' ); -d $libpath or mkpath( $libpath ) or skip "Can't create '$libpath': $!", $to_skip; $Config_pm = File::Spec->catfile( $libpath, 'Config.pm' ); local *CONFIGPM; open CONFIGPM, "> $Config_pm" or skip "Can't create '$Config_pm': $!", $to_skip; print CONFIGPM <catdir( $findbin ); $Config_sh = File::Spec->catfile( $libpath, 'config.sh' ); local *CONFIGSH; open CONFIGSH, "> $Config_sh" or skip "Can't create '$Config_sh': $!", $to_skip; print CONFIGSH < ( $Config_heavy, $Config_pm, $Config_sh ); ok( $no_files, "Config from: fallback" ); is( $Config{archname}, $arch, "Architecture $arch" ); is( $Config{osname}, $osname, "OS name: $osname" ); is( $Config{osvers}, $osvers, "OS version: $osvers" ); is( $Config{version}, '5.?.?', "Perl version: $Config{version}" ); } $patchlevel_h = File::Spec->catfile( $findbin, 'patchlevel.h' ); SKIP: { my $to_skip = 4; local *PL_H; open PL_H, "> $patchlevel_h" or skip "Can't create '$Config_pm': $!", $to_skip; print PL_H < $patchlevel_h" or skip "Can't create '$Config_pm': $!", $to_skip; print PL_H < $Config_pm" or skip "Can't create '$Config_pm': $!", $to_skip; print CONFIGPM <catdir( $findbin, 'lib' ) ) }