Try ExtUtils::Command.t everywhere, not just on Win32
Jarkko Hietaniemi [Sat, 22 Sep 2001 21:18:43 +0000 (21:18 +0000)]
(as suggested by NI-S).  Also allow running it either
in t/ or in the main directory.

p4raw-id: //depot/perl@12143

lib/ExtUtils/Command.t

index 7596e75..763ae0c 100644 (file)
@@ -3,19 +3,21 @@
 BEGIN {
        chdir 't' if -d 't';
        @INC = '../lib';
+}
+
+BEGIN {
        1 while unlink 'ecmdfile';
        # forcibly remove ecmddir/temp2, but don't import mkpath
        use File::Path ();
        File::Path::rmtree( 'ecmddir' );
 }
 
-use Test::More tests => 21;
-use File::Spec;
-
-SKIP: {
-       skip( 'ExtUtils::Command is a Win32 module', 21 )
-           unless $^O =~ /Win32/;
+BEGIN {
+       use Test::More tests => 21;
+       use File::Spec;
+}
 
+{
        use vars qw( *CORE::GLOBAL::exit );
 
        # bad neighbor, but test_f() uses exit()
@@ -49,7 +51,15 @@ SKIP: {
        # concatenate this file with itself
        # be extra careful the regex doesn't match itself
        my $out = tie *STDOUT, 'TieOut';
-       @ARGV = ($0, $0);
+       my $self = $0;
+       unless (-f $self) {
+           my ($vol, $dirs, $file) = File::Spec->splitpath($self);
+           my @dirs = File::Spec->splitdir($dirs);
+           unshift(@dirs, File::Spec->updir);
+           $dirs = File::Spec->catdir(@dirs);
+           $self = File::Spec->catpath($vol, $dirs, $file);
+       }
+       @ARGV = ($self, $self);
 
        cat();
        is( scalar( $$out =~ s/use_ok\( 'ExtUtils::Command'//g), 2,