1use strict;
2use Test;
3use Win32;
4
5my @paths = qw(
6    /
7    //
8    .
9    ..
10    c:
11    c:/
12    c:./
13    c:/.
14    c:/..
15    c:./..
16    //./
17    //.
18    //..
19    //./..
20);
21push @paths, map { my $x = $_; $x =~ s,/,\\,g; $x } @paths;
22push @paths, qw(
23    ../\
24    c:.\\../\
25    c:/\..//
26    c://.\/./\
27    \\.\\../\
28    //\..//
29    //.\/./\
30);
31
32my $drive = $ENV{SYSTEMDRIVE};
33if ($drive) {
34    for (@paths) {
35	s/^c:/$drive/;
36    }
37    push @paths, $ENV{SYSTEMROOT} if $ENV{SYSTEMROOT};
38}
39my %expect;
40@expect{@paths} = map { my $x = $_;
41                        $x =~ s,(.[/\\])[/\\]+,$1,g;
42                        $x =~ s,^(\w):,\U$1:,;
43                        $x } @paths;
44
45plan tests => scalar(@paths);
46
47my $i = 1;
48for (@paths) {
49    my $got = Win32::GetLongPathName($_);
50    print "# '$_' => expect '$expect{$_}' => got '$got'\n";
51    print "not " unless $expect{$_} eq $got;
52    print "ok $i\n";
53    ++$i;
54}
55