This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
d31a5b4dce02332acb2bf58a3bd26fb6d3608bb8
[perl5.git] / t / win32 / longpath.t
1 #!perl -w
2
3 # tests for Win32::GetLongPathName()
4
5 $^O =~ /^MSWin/ or print("1..0 # not win32\n" ), exit;
6
7 my @paths = qw(
8     /
9     //
10     .
11     ..
12     c:
13     c:/
14     c:./
15     c:/.
16     c:/..
17     c:./..
18     //./
19     //.
20     //..
21     //./..
22 );
23 push @paths, map { my $x = $_; $x =~ s,/,\\,g; $x } @paths;
24 push @paths, qw(
25     ../\
26     c:.\\../\
27     c:/\..//
28     c://.\/./\
29     \\.\\../\
30     //\..//
31     //.\/./\
32 );
33
34 my $drive = $ENV{SystemDrive};
35 if ($drive) {
36     for (@paths) {
37         s/^c:/$drive/;
38     }
39     push @paths, $ENV{SystemRoot} if $ENV{SystemRoot};
40 }
41 my %expect;
42 @expect{@paths} = map { my $x = $_; $x =~ s,(.[/\\])[/\\]+,$1,g; $x } @paths;
43
44 print "1.." . @paths . "\n";
45 my $i = 1;
46 for (@paths) {
47     my $got = Win32::GetLongPathName($_);
48     print "# '$_' => expect '$expect{$_}' => got '$got'\n";
49     print "not " unless $expect{$_} eq $got;
50     print "ok $i\n";
51     ++$i;
52 }