tests: fixup checkcmd PATH on non-unixy platforms

Do not add unixy system directories to `PATH` when looking up commands
on Windows, MS-DOS or OS/2.

Cherry-picked from #14949
Closes #15106
This commit is contained in:
Viktor Szakats 2024-10-01 12:25:21 +02:00
parent f88fb1c83e
commit aa092012bd
No known key found for this signature in database
GPG Key ID: B5ABD165E2AEF201

View File

@ -155,13 +155,15 @@ our $stunnel; # path to stunnel command
#
sub checkcmd {
my ($cmd, @extrapaths)=@_;
my $sep = '[:]';
my @paths;
if ($^O eq 'MSWin32' || $^O eq 'dos' || $^O eq 'os2') {
# PATH separator is different
$sep = '[;]';
@paths=(split(';', $ENV{'PATH'}), @extrapaths);
}
else {
@paths=(split(':', $ENV{'PATH'}), "/usr/sbin", "/usr/local/sbin",
"/sbin", "/usr/bin", "/usr/local/bin", @extrapaths);
}
my @paths=(split(m/$sep/, $ENV{'PATH'}), "/usr/sbin", "/usr/local/sbin",
"/sbin", "/usr/bin", "/usr/local/bin", @extrapaths);
for(@paths) {
if( -x "$_/$cmd" . exe_ext('SYS') && ! -d "$_/$cmd" . exe_ext('SYS')) {
# executable bit but not a directory!