From: Steve Hay Date: Mon, 30 Jun 2008 07:37:29 +0000 (+0000) Subject: Upgrade to Win32-0.38 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a7aed57248a1b7f3990887d947f738c29c496209;p=p5sagit%2Fp5-mst-13.2.git Upgrade to Win32-0.38 (including changes to GetCurrentThreadId.t which should have gone into the 0.37 upgrade, but which I missed then) p4raw-id: //depot/perl@34094 --- diff --git a/ext/Win32/Changes b/ext/Win32/Changes index 1f80899..62077ba 100644 --- a/ext/Win32/Changes +++ b/ext/Win32/Changes @@ -1,5 +1,9 @@ Revision history for the Perl extension Win32. +0.38 [2008-06-27] + - Fix Cygwin releated problems in t/GetCurrentThreadId.t + (Jerry D. Hedden). + 0.37 [2008-06-26] - Add Win32::GetCurrentProcessId() function diff --git a/ext/Win32/Win32.pm b/ext/Win32/Win32.pm index b032d99..7091783 100644 --- a/ext/Win32/Win32.pm +++ b/ext/Win32/Win32.pm @@ -8,7 +8,7 @@ BEGIN { require DynaLoader; @ISA = qw|Exporter DynaLoader|; - $VERSION = '0.37'; + $VERSION = '0.38'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; diff --git a/ext/Win32/t/GetCurrentThreadId.t b/ext/Win32/t/GetCurrentThreadId.t index 4db2c14..ce98f3e 100644 --- a/ext/Win32/t/GetCurrentThreadId.t +++ b/ext/Win32/t/GetCurrentThreadId.t @@ -3,16 +3,34 @@ use Config qw(%Config); use Test; use Win32; -plan tests => 1; +my $fork_emulation = $Config{ccflags} =~ /PERL_IMPLICIT_SYS/; -# This test relies on the implementation detail that the fork() emulation -# uses the negative value of the thread id as a pseudo process id. -if ($Config{ccflags} =~ /PERL_IMPLICIT_SYS/) { - if (my $pid = fork) { - waitpid($pid, 0); +my $tests = $fork_emulation ? 4 : 2; +plan tests => $tests; + +my $pid = $$+0; # make sure we don't copy any magic to $pid + +if ($^O eq "cygwin") { + skip(!defined &Cygwin::pid_to_winpid, + Cygwin::pid_to_winpid($pid), + Win32::GetCurrentProcessId()); +} +else { + ok($pid, Win32::GetCurrentProcessId()); +} + +if ($fork_emulation) { + # This test relies on the implementation detail that the fork() emulation + # uses the negative value of the thread id as a pseudo process id. + if (my $child = fork) { + waitpid($child, 0); exit 0; } ok(-$$, Win32::GetCurrentThreadId()); + + # GetCurrentProcessId() should still return the real PID + ok($pid, Win32::GetCurrentProcessId()); + ok($$ != Win32::GetCurrentProcessId()); } else { # here we just want to see something.