54 lines
1.5 KiB
Perl
54 lines
1.5 KiB
Perl
use strict;
|
|
use Test::More tests => 8;
|
|
|
|
# Grab all of the plain routines from File::Spec
|
|
use File::Spec;
|
|
use File::Spec::Win32;
|
|
|
|
require_ok($_) foreach qw(File::Spec File::Spec::Win32);
|
|
|
|
|
|
if ($^O eq 'VMS') {
|
|
# hack:
|
|
# Need to cause the %ENV to get populated or you only get the builtins at
|
|
# first, and then something else can cause the hash to get populated.
|
|
my %look_env = %ENV;
|
|
}
|
|
my $num_keys = keys %ENV;
|
|
File::Spec->tmpdir;
|
|
is scalar keys %ENV, $num_keys, "tmpdir() shouldn't change the contents of %ENV";
|
|
|
|
SKIP: {
|
|
skip("Can't make list assignment to %ENV on this system", 1)
|
|
if $^O eq 'VMS';
|
|
|
|
local %ENV;
|
|
File::Spec::Win32->tmpdir;
|
|
is(scalar keys %ENV, 0, "Win32->tmpdir() shouldn't change the contents of %ENV");
|
|
}
|
|
|
|
File::Spec::Win32->tmpdir;
|
|
is(scalar keys %ENV, $num_keys, "Win32->tmpdir() shouldn't change the contents of %ENV");
|
|
|
|
# Changing tmpdir dynamically
|
|
for ('File::Spec', "File::Spec::Win32") {
|
|
SKIP: {
|
|
skip('sys$scratch: takes precedence over env on vms', 1)
|
|
if $^O eq 'VMS';
|
|
local $ENV{TMPDIR} = $_->catfile($_->curdir, 'lib');
|
|
-d $ENV{TMPDIR} && -w _
|
|
or skip "Can't create usable TMPDIR env var", 1;
|
|
my $tmpdir1 = $_->tmpdir;
|
|
$ENV{TMPDIR} = $_->catfile($_->curdir, 't');
|
|
-d $ENV{TMPDIR} && -w _
|
|
or skip "Can't create usable TMPDIR env var", 1;
|
|
my $tmpdir2 = $_->tmpdir;
|
|
isn't $tmpdir2, $tmpdir1, "$_->tmpdir works with changing env";
|
|
}
|
|
}
|
|
|
|
ok(
|
|
File::Spec->file_name_is_absolute(File::Spec->tmpdir()),
|
|
"tmpdir() always returns an absolute path"
|
|
);
|