use strict; use Test; use Win32; my @paths = qw( / // . .. c: c:/ c:./ c:/. c:/.. c:./.. //./ //. //.. //./.. ); push @paths, map { my $x = $_; $x =~ s,/,\\,g; $x } @paths; push @paths, qw( ../\ c:.\\../\ c:/\..// c://.\/./\ \\.\\../\ //\..// //.\/./\ ); my $drive = $ENV{SYSTEMDRIVE}; if ($drive) { for (@paths) { s/^c:/$drive/; } push @paths, $ENV{SYSTEMROOT} if $ENV{SYSTEMROOT}; } my %expect; @expect{@paths} = map { my $x = $_; $x =~ s,(.[/\\])[/\\]+,$1,g; $x =~ s,^(\w):,\U$1:,; $x } @paths; plan tests => scalar(@paths); my $i = 1; for (@paths) { my $got = Win32::GetLongPathName($_); print "# '$_' => expect '$expect{$_}' => got '$got'\n"; print "not " unless $expect{$_} eq $got; print "ok $i\n"; ++$i; }