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