Commit | Line | Data |
---|---|---|
49fd6edc YST |
1 | #!perl |
2 | ||
3 | BEGIN { | |
4 | chdir 't' if -d 't'; | |
5 | @INC = ('../lib'); | |
6 | unless ($^O eq "cygwin") { | |
7 | print "1..0 # skipped: cygwin specific test\n"; | |
8 | exit 0; | |
9 | } | |
10 | } | |
11 | ||
74dc058d | 12 | use Test::More tests => 16; |
49fd6edc YST |
13 | |
14 | is(Cygwin::winpid_to_pid(Cygwin::pid_to_winpid($$)), $$, | |
15 | "perl pid translates to itself"); | |
16 | ||
17 | my $parent = getppid; | |
18 | SKIP: { | |
19 | skip "test not run from cygwin process", 1 if $parent <= 1; | |
20 | is(Cygwin::winpid_to_pid(Cygwin::pid_to_winpid($parent)), $parent, | |
21 | "parent pid translates to itself"); | |
22 | } | |
23 | ||
24 | my $catpid = open my $cat, "|cat" or die "Couldn't cat: $!"; | |
25 | open my $ps, "ps|" or die "Couldn't do ps: $!"; | |
26 | my ($catwinpid) = map /^.\s+$catpid\s+\d+\s+\d+\s+(\d+)/, <$ps>; | |
27 | close($ps); | |
28 | ||
29 | is(Cygwin::winpid_to_pid($catwinpid), $catpid, "winpid to pid"); | |
30 | is(Cygwin::pid_to_winpid($catpid), $catwinpid, "pid to winpid"); | |
31 | close($cat); | |
15414d2b RU |
32 | |
33 | is(Cygwin::win_to_posix_path("t\\lib"), "t/lib", "win to posix path: t/lib"); | |
34 | is(Cygwin::posix_to_win_path("t/lib"), "t\\lib", "posix to win path: t\\lib"); | |
35 | ||
36 | use Win32; | |
37 | use Cwd; | |
a25ce5f3 | 38 | my $pwd = getcwd(); |
15414d2b | 39 | chdir("/"); |
a25ce5f3 | 40 | my $winpath = Win32::GetCwd(); |
15414d2b RU |
41 | is(Cygwin::posix_to_win_path("/", 1), $winpath, "posix to absolute win path"); |
42 | chdir($pwd); | |
43 | is(Cygwin::win_to_posix_path($winpath, 1), "/", "win to absolute posix path"); | |
a25ce5f3 RU |
44 | |
45 | my $mount = join '', `/usr/bin/mount`; | |
d685c22b | 46 | $mount =~ m|on /usr/bin type .+ \((\w+mode)[,\)]|m; |
a25ce5f3 RU |
47 | my $binmode = $1 eq 'binmode'; |
48 | is(Cygwin::is_binmount("/"), $binmode ? 1 : '', "check / for binmount"); | |
a25ce5f3 RU |
49 | |
50 | my $rootmnt = Cygwin::mount_flags("/"); | |
51 | ok($binmode ? ($rootmnt =~ /,binmode/) : ($rootmnt =~ /,textmode/), "check / mount_flags"); | |
52 | is(Cygwin::mount_flags("/cygdrive") =~ /,cygdrive/, 1, "check cygdrive mount_flags"); | |
53 | ||
74dc058d JH |
54 | # Cygdrive mount prefix |
55 | my @flags = split(/,/, Cygwin::mount_flags('/cygdrive')); | |
56 | my $prefix = pop(@flags); | |
57 | ok($prefix, "cygdrive mount prefix = " . (($prefix) ? $prefix : '<none>')); | |
58 | chomp(my $prefix2 = `df | grep -i '^c: ' | cut -d% -f2 | xargs`); | |
59 | $prefix2 =~ s/\/c$//i; | |
60 | if (! $prefix2) { | |
61 | $prefix2 = '/'; | |
62 | } | |
63 | is($prefix, $prefix2, 'cygdrive mount prefix'); | |
64 | ||
a25ce5f3 RU |
65 | my @mnttbl = Cygwin::mount_table(); |
66 | ok(@mnttbl > 0, "non empty mount_table"); | |
67 | for $i (@mnttbl) { | |
68 | if ($i->[0] eq '/') { | |
69 | is($i->[2].",".$i->[3], $rootmnt, "same root mount flags"); | |
fa5b08bc | 70 | last; |
a25ce5f3 RU |
71 | } |
72 | } | |
482150a7 JH |
73 | |
74 | ok(Cwd->cwd(), "bug#38628 legacy"); |