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} 38my %expect; 39@expect{@paths} = map { my $x = $_; 40 $x =~ s,(.[/\\])[/\\]+,$1,g; 41 $x =~ s,^(\w):,\U$1:,; 42 $x } @paths; 43 44plan tests => scalar(@paths); 45 46my $i = 1; 47for (@paths) { 48 my $got = Win32::GetLongPathName($_); 49 print "# '$_' => expect '$expect{$_}' => got '$got'\n"; 50 print "not " unless $expect{$_} eq $got; 51 print "ok $i\n"; 52 ++$i; 53} 54