Skip to content

Commit aca93b5

Browse files
committed
Account for IPC::Run::result() Windows behavior change.
This restores compatibility with the not-yet-released successor of version 20220807.0. Back-patch to 9.4, which introduced this code. Reviewed by Andrew Dunstan. Discussion: https://postgr.es/m/20221117061805.GA4020280@rfd.leadboat.com
1 parent bbf9c28 commit aca93b5

File tree

1 file changed

+4
-8
lines changed

1 file changed

+4
-8
lines changed

src/test/perl/PostgreSQL/Test/Utils.pm

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -782,15 +782,11 @@ sub command_exit_is
782782
my $h = IPC::Run::start $cmd;
783783
$h->finish();
784784

785-
# On Windows, the exit status of the process is returned directly as the
786-
# process's exit code, while on Unix, it's returned in the high bits
787-
# of the exit code (see WEXITSTATUS macro in the standard <sys/wait.h>
788-
# header file). IPC::Run's result function always returns exit code >> 8,
789-
# assuming the Unix convention, which will always return 0 on Windows as
790-
# long as the process was not terminated by an exception. To work around
791-
# that, use $h->full_results on Windows instead.
785+
# Normally, if the child called exit(N), IPC::Run::result() returns N. On
786+
# Windows, with IPC::Run v20220807.0 and earlier, full_results() is the
787+
# method that returns N (https://github.com/toddr/IPC-Run/issues/161).
792788
my $result =
793-
($Config{osname} eq "MSWin32")
789+
($Config{osname} eq "MSWin32" && $IPC::Run::VERSION <= 20220807.0)
794790
? ($h->full_results)[0]
795791
: $h->result(0);
796792
is($result, $expected, $test_name);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy