File tree Expand file tree Collapse file tree 1 file changed +7
-9
lines changed Expand file tree Collapse file tree 1 file changed +7
-9
lines changed Original file line number Diff line number Diff line change @@ -365,15 +365,13 @@ sub command_exit_is
365
365
my $h = start $cmd ;
366
366
$h -> finish();
367
367
368
- # On Windows, the exit status of the process is returned directly as the
369
- # process's exit code, while on Unix, it's returned in the high bits
370
- # of the exit code (see WEXITSTATUS macro in the standard <sys/wait.h>
371
- # header file). IPC::Run's result function always returns exit code >> 8,
372
- # assuming the Unix convention, which will always return 0 on Windows as
373
- # long as the process was not terminated by an exception. To work around
374
- # that, use $h->full_result on Windows instead.
375
- my $result = ($Config {osname } eq " MSWin32" ) ?
376
- ($h -> full_results)[0] : $h -> result(0);
368
+ # Normally, if the child called exit(N), IPC::Run::result() returns N. On
369
+ # Windows, with IPC::Run v20220807.0 and earlier, full_results() is the
370
+ # method that returns N (https://github.com/toddr/IPC-Run/issues/161).
371
+ my $result =
372
+ ($Config {osname } eq " MSWin32" && $IPC::Run::VERSION <= 20220807.0)
373
+ ? ($h -> full_results)[0]
374
+ : $h -> result(0);
377
375
is($result , $expected , $test_name );
378
376
}
379
377
You can’t perform that action at this time.
0 commit comments