Commit | Line | Data |
ed4a5f99 |
1 | #!./perl |
2 | |
3 | BEGIN { |
4 | chdir 't' if -d 't'; |
5 | @INC = '../lib'; |
6 | } |
7 | |
8 | use Config; |
9 | use Cwd; |
10 | use strict; |
11 | use warnings; |
12 | |
13 | print "1..14\n"; |
14 | |
15 | # check imports |
16 | print +(defined(&cwd) && |
17 | defined(&getcwd) && |
18 | defined(&fastcwd) && |
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"; |
25 | |
26 | # XXX these tests rely on a working pwd program or shell command |
27 | chomp(my $start = `pwd 2>/dev/null`); |
28 | if ($?) { |
29 | print "ok 3 # skipped\n"; |
30 | print "ok 4 # skipped\n"; |
31 | print "ok 5 # skipped\n"; |
32 | print "ok 6 # skipped\n"; |
33 | } else { |
34 | my $cwd = cwd; |
35 | my $getcwd = getcwd; |
36 | my $fastcwd = fastcwd; |
37 | my $fastgetcwd = fastgetcwd; |
38 | print +($cwd eq $start ? "" : "not "), "ok 3\n"; |
39 | print +($getcwd eq $start ? "" : "not "), "ok 4\n"; |
40 | print +($fastcwd eq $start ? "" : "not "), "ok 5\n"; |
41 | print +($fastgetcwd eq $start ? "" : "not "), "ok 6\n"; |
42 | } |
43 | |
44 | mkdir "pteerslt", 0777; |
45 | mkdir "pteerslt/path", 0777; |
46 | mkdir "pteerslt/path/to", 0777; |
47 | mkdir "pteerslt/path/to/a", 0777; |
48 | mkdir "pteerslt/path/to/a/dir", 0777; |
49 | Cwd::chdir "pteerslt/path/to/a/dir"; |
50 | my $cwd = cwd; |
51 | my $getcwd = getcwd; |
52 | my $fastcwd = fastcwd; |
53 | my $fastgetcwd = fastgetcwd; |
54 | my $want = "t/pteerslt/path/to/a/dir"; |
55 | print +($cwd =~ m|$want$| ? "" : "not "), "ok 7\n"; |
56 | print +($getcwd =~ m|$want$| ? "" : "not "), "ok 8\n"; |
57 | print +($fastcwd =~ m|$want$| ? "" : "not "), "ok 9\n"; |
58 | print +($fastgetcwd =~ m|$want$| ? "" : "not "), "ok 10\n"; |
59 | |
60 | # Cwd::chdir should also update $ENV{PWD} |
61 | print +($ENV{PWD} =~ m|$want$| ? "" : "not "), "ok 11\n"; |
62 | Cwd::chdir ".."; rmdir "dir"; |
63 | Cwd::chdir ".."; rmdir "a"; |
64 | Cwd::chdir ".."; rmdir "to"; |
65 | Cwd::chdir ".."; rmdir "path"; |
66 | Cwd::chdir ".."; rmdir "pteerslt"; |
67 | print +($ENV{PWD} =~ m|\bt$| ? "" : "not "), "ok 12\n"; |
68 | |
69 | if ($Config{d_symlink}) { |
70 | my @dirs = split " " => $Config{libpth}; |
71 | my $target = pop @dirs; |
72 | symlink $target => "linktest"; |
73 | mkdir "pteerslt"; |
74 | chdir "pteerslt"; |
75 | my $rel = "../../t/linktest"; |
76 | |
77 | my $abs_path = Cwd::abs_path($rel); |
78 | my $fast_abs_path = Cwd::fast_abs_path($rel); |
79 | print +($abs_path eq $target ? "" : "not "), "ok 13\n"; |
80 | print +($fast_abs_path eq $target ? "" : "not "), "ok 14\n"; |
81 | |
82 | chdir ".."; |
83 | rmdir "pteerslt"; |
84 | unlink "linktest"; |
85 | } else { |
86 | print "ok 13 # skipped\n"; |
87 | print "ok 14 # skipped\n"; |
88 | } |