# Copyright 1999-2001 Steven Knight. All rights reserved. This program
# is free software; you can redistribute it and/or modify it under the
# same terms as Perl itself.
######################### We start with some black magic to print on failure.
use Test;
my $iswin32;
BEGIN {
$| = 1;
if ($] < 5.003) {
eval("require Win32");
$iswin32 = ! $@;
} else {
$iswin32 = $^O eq "MSWin32";
}
plan tests => 21, onfail => sub { $? = 1 if $ENV{AEGIS_TEST} }
}
END {print "not ok 1\n" unless $loaded;}
use Test::Cmd;
$loaded = 1;
ok(1);
######################### End of black magic.
my($test, $ret, $wdir);
$test = Test::Cmd->new(workdir => '', subdir => ['no', 'such', 'subdir']);
ok(! $test);
$test = Test::Cmd->new(workdir => '', subdir => 'foo');
ok($test);
$ret = $test->subdir('bar');
ok($ret == 1);
$wdir = $test->workdir;
ok($wdir);
$ret = chdir($wdir);
ok($ret);
$ret = $test->subdir([qw(foo succeed)]);
ok($ret == 1);
# I don't understand why, but setting read-only on a Windows NT
# directory on Windows NT still allows you to create a file.
# That doesn't make sense to my UNIX-centric brain, but it does
# mean we need to skip the related tests on Win32 platforms.
$ret = chmod(0500, 'foo');
skip($iswin32, $ret == 1);
$ret = $test->subdir([qw(foo fail)]);
skip($iswin32 || $> == 0, ! $ret);
$ret = $test->subdir([qw(sub dir ectory)], 'sub');
ok($ret == 1);
$ret = $test->subdir('one', ['one', 'two'], [qw(one two three)]);
ok($ret == 3);
$ret = $test->subdir([$wdir, 'a'], [$wdir, 'a', 'b']);
ok($ret == 2);
ok(-d 'foo');
ok(-d 'bar');
ok(-d $test->workpath('foo', 'succeed'));
skip($iswin32 || $> == 0, ! -d $test->workpath('foo', 'fail'));
ok( -d 'sub');
ok(! -d $test->workpath(qw(sub dir)));
ok(! -d $test->workpath(qw(sub dir ectory)));
ok(-d $test->workpath(qw(one two three)));
ok(-d $test->workpath(qw(a b)));