BEGIN {
if ($^O =~ /cygwin/i) {
- plan tests => 13;
+ plan tests => 14;
} else {
plan skip_all => "This is not cygwin";
}
use Config;
use File::Spec;
use ExtUtils::MM;
+use Config;
use_ok( 'ExtUtils::MM_Cygwin' );
like( $res, qr/pure_all.*foo.*foo.1/s, '... should add MAN3PODS targets' );
-SKIP: {
- skip "Only relevent in the core", 2 unless $ENV{PERL_CORE};
- $MM->{PERL_SRC} = File::Spec->updir;
- $MM->{MAN1PODS} = { bar => 1 };
- my $out = tie *STDOUT, 'FakeOut';
- $res = $MM->manifypods();
- is( $$out, '', '... should not warn if PERL_SRC provided' );
- like( $res, qr/bar \\\n\t1 \\\n\tfoo/,
- '... should join MAN1PODS and MAN3PODS');
-}
-
-
# init_linker
{
my $libperl = $Config{libperl} || 'libperl.a';
- $libperl =~ s/\.a/.dll.a/ if $] >= 5.007;
+ $libperl =~ s/\.a/.dll.a/ if $] >= 5.006002;
$libperl = "\$(PERL_INC)/$libperl";
my $export = '';
is( $MM->{EXPORT_LIST}, $export, 'EXPORT_LIST' );
}
+# Tests for correct handling of maybe_command in /cygdrive/*
+# and c:/*. $ENV{COMSPEC}, if it exists, should always be executable.
+
+SKIP: {
+ my $comspec = $ENV{COMSPEC};
+
+ skip("\$ENV{COMSPEC} does not exist", 3) unless $comspec;
+ # Convert into cygwin-flavoured '/cygdrive/c/...' path.
+ # Is there a better way than direct munging? A File::*
+ # module perhaps?
+
+ $comspec =~ s{^(\w):} {/cygdrive/\l$1}x;
+ $comspec =~ s{\\ } {/}gx;
+
+ ok(MM->maybe_command($comspec),"$comspec should be executable");
+
+ # /cygdrive/c should *never* be executable, it's a directory.
+
+ ok(! MM->maybe_command(q{/cygdrive/c}),
+ qq{/cygdrive/c should never be executable}
+ );
+
+ # Our copy of Perl (with a unix-path) should always be executable.
+
+ ok(MM->maybe_command($Config{perlpath}),
+ qq{$Config{perlpath} should be executable}
+ );
+
+}
package FakeOut;