16 print +(defined(&cwd) &&
19 defined(&fastgetcwd) ?
20 "" : "not "), "ok 1\n";
21 print +(!defined(&chdir) &&
22 !defined(&abs_path) &&
23 !defined(&fast_abs_path) ?
24 "" : "not "), "ok 2\n";
26 # Must find an external pwd (or equivalent) command.
29 ($^O eq "MSWin32") ? "cd" : (grep { -x && -f } map { "$_/pwd" }
30 split m/$Config{path_sep}/, $ENV{PATH})[0];
32 if (defined $pwd_cmd) {
33 chomp(my $start = `$pwd_cmd`);
34 # Win32's cd returns native C:\ style
35 $start =~ s,\\,/,g if $^O eq 'MSWin32';
38 print "ok $_ # Skip: '$pwd_cmd' failed\n";
43 my $fastcwd = fastcwd;
44 my $fastgetcwd = fastgetcwd;
45 print +($cwd eq $start ? "" : "not "), "ok 3\n";
46 print +($getcwd eq $start ? "" : "not "), "ok 4\n";
47 print +($fastcwd eq $start ? "" : "not "), "ok 5\n";
48 print +($fastgetcwd eq $start ? "" : "not "), "ok 6\n";
52 print "ok $_ # Skip: no pwd command found\n";
56 mkdir "pteerslt", 0777;
57 mkdir "pteerslt/path", 0777;
58 mkdir "pteerslt/path/to", 0777;
59 mkdir "pteerslt/path/to/a", 0777;
60 mkdir "pteerslt/path/to/a/dir", 0777;
61 Cwd::chdir "pteerslt/path/to/a/dir";
64 my $fastcwd = fastcwd;
65 my $fastgetcwd = fastgetcwd;
66 my $want = "t/pteerslt/path/to/a/dir";
67 print +($cwd =~ m|$want$| ? "" : "not "), "ok 7\n";
68 print +($getcwd =~ m|$want$| ? "" : "not "), "ok 8\n";
69 print +($fastcwd =~ m|$want$| ? "" : "not "), "ok 9\n";
70 print +($fastgetcwd =~ m|$want$| ? "" : "not "), "ok 10\n";
72 # Cwd::chdir should also update $ENV{PWD}
74 print +($ENV{PWD} =~ m|$want$| ? "" : "not "), "ok 11\n";
75 Cwd::chdir ".."; rmdir "dir";
77 Cwd::chdir ".."; rmdir "a";
79 Cwd::chdir ".."; rmdir "to";
81 Cwd::chdir ".."; rmdir "path";
83 Cwd::chdir ".."; rmdir "pteerslt";
85 print +($ENV{PWD} =~ m|\bt$| ? "" : "not "), "ok 12\n";
87 if ($Config{d_symlink}) {
88 my @dirs = split " " => $Config{libpth};
89 my $target = pop @dirs;
90 symlink $target => "linktest";
93 my $rel = "../../t/linktest";
95 my $abs_path = Cwd::abs_path($rel);
96 my $fast_abs_path = Cwd::fast_abs_path($rel);
97 print +($abs_path eq $target ? "" : "not "), "ok 13\n";
98 print +($fast_abs_path eq $target ? "" : "not "), "ok 14\n";
104 print "ok 13 # skipped\n";
105 print "ok 14 # skipped\n";