use strict;
use warnings;
-print "1..10\n";
+print "1..14\n";
# check imports
print +(defined(&cwd) &&
!defined(&fast_abs_path) ?
"" : "not "), "ok 2\n";
+# Must find an external pwd (or equivalent) command.
+
+my $pwd_cmd =
+ ($^O eq "Win32") ? "cd" : (grep { -x && -f } map { "$_/pwd" }
+ split m/$Config{path_sep}/, $ENV{PATH})[0];
+
+if (defined $pwd_cmd) {
+ chomp(my $start = `$pwd_cmd`);
+ if ($?) {
+ for (3..6) {
+ print "ok $_ # Skip: '$pwd_cmd' failed\n";
+ }
+ } else {
+ my $cwd = cwd;
+ my $getcwd = getcwd;
+ my $fastcwd = fastcwd;
+ my $fastgetcwd = fastgetcwd;
+ print +($cwd eq $start ? "" : "not "), "ok 3\n";
+ print +($getcwd eq $start ? "" : "not "), "ok 4\n";
+ print +($fastcwd eq $start ? "" : "not "), "ok 5\n";
+ print +($fastgetcwd eq $start ? "" : "not "), "ok 6\n";
+ }
+} else {
+ for (3..6) {
+ print "ok $_ # Skip: no pwd command found\n";
+ }
+}
+
mkdir "pteerslt", 0777;
mkdir "pteerslt/path", 0777;
mkdir "pteerslt/path/to", 0777;
my $fastcwd = fastcwd;
my $fastgetcwd = fastgetcwd;
my $want = "t/pteerslt/path/to/a/dir";
-print +($cwd =~ m|$want$| ? "" : "not "), "ok 3\n";
-print +($getcwd =~ m|$want$| ? "" : "not "), "ok 4\n";
-print +($fastcwd =~ m|$want$| ? "" : "not "), "ok 5\n";
-print +($fastgetcwd =~ m|$want$| ? "" : "not "), "ok 6\n";
+print +($cwd =~ m|$want$| ? "" : "not "), "ok 7\n";
+print +($getcwd =~ m|$want$| ? "" : "not "), "ok 8\n";
+print +($fastcwd =~ m|$want$| ? "" : "not "), "ok 9\n";
+print +($fastgetcwd =~ m|$want$| ? "" : "not "), "ok 10\n";
# Cwd::chdir should also update $ENV{PWD}
-print +($ENV{PWD} =~ m|$want$| ? "" : "not "), "ok 7\n";
+print +($ENV{PWD} =~ m|$want$| ? "" : "not "), "ok 11\n";
Cwd::chdir ".."; rmdir "dir";
Cwd::chdir ".."; rmdir "a";
Cwd::chdir ".."; rmdir "to";
Cwd::chdir ".."; rmdir "path";
Cwd::chdir ".."; rmdir "pteerslt";
-print +($ENV{PWD} =~ m|\bt$| ? "" : "not "), "ok 8\n";
+print +($ENV{PWD} =~ m|\bt$| ? "" : "not "), "ok 12\n";
if ($Config{d_symlink}) {
my @dirs = split " " => $Config{libpth};
my $abs_path = Cwd::abs_path($rel);
my $fast_abs_path = Cwd::fast_abs_path($rel);
- print +($abs_path eq $target ? "" : "not "), "ok 9\n";
- print +($fast_abs_path eq $target ? "" : "not "), "ok 10\n";
+ print +($abs_path eq $target ? "" : "not "), "ok 13\n";
+ print +($fast_abs_path eq $target ? "" : "not "), "ok 14\n";
chdir "..";
rmdir "pteerslt";
unlink "linktest";
} else {
- print "ok 9 # Skip: no symlink\n";
- print "ok 10 # Skip: no symlink\n";
+ print "ok 13 # skipped\n";
+ print "ok 14 # skipped\n";
}