curl/tests
Viktor Szakats 2388b0e587
processhelp.pm: use Win32::Process* perl modules if available
`Win32::Process::List` and `Win32::Process`.

To replace external calls to `tasklist.exe` and `taskkill.exe`.

The perl modules are wrappers/binding to Win32 API calls. They avoid
launching external processes with a command shell (including MSYS2),
the external tool, and creating command-lines and parsing tool output.

According to local tests and the CI, one test session calls
`tasklist.exe` 350-400 times. `taskkill.exe` is rarely called:
https://github.com/curl/curl/actions/runs/17012376726?pr=18296

It's hard to predict any possible side-effect of dynamically loading
the two necessary, module DLLs into the Perl process. The MSYS2 runtime
if prone to fail when doing this in fork operations, as seen earlier
with the Win32.DLL module. But, is looks like a symptom, not the root
cause for these failures, because the failures are present with or
without perl.exe loading the Win32.DLL.
Ref: be01b60ce5 #18287

Cherry-picked from #18296
Closes #18308
2025-08-18 23:46:56 +02:00
..
certs configure: if no perl, disable unity and shell completion, related tidy ups 2025-08-04 14:55:10 +02:00
cmake cmake: ExternalProject test tidy-ups 2025-08-07 10:37:10 +02:00
data test1549: verify CURLOPT_COOKIEFILE after expired cookies 2025-08-17 22:52:18 +02:00
http websocket: support CURLOPT_READFUNCTION 2025-08-11 23:28:54 +02:00
libtest test1549: verify CURLOPT_COOKIEFILE after expired cookies 2025-08-17 22:52:18 +02:00
server hostip: cache negative name resolves 2025-08-05 08:05:31 +02:00
tunit tests: constify command-line arguments 2025-07-29 13:44:50 +02:00
unit lib: replace getsock() logic with pollsets 2025-08-04 23:43:13 +02:00
.gitignore tidy-up: .gitignore lines mostly 2025-01-27 20:59:46 +01:00
allversions.pm scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
appveyor.pm tidy-up: whitespace (more in Perl) 2025-07-12 08:59:44 +02:00
azure.pm runtests: fix quoting in Appveyor and Azure test integration 2023-04-22 11:50:03 -07:00
CMakeLists.txt cmake: honor CMAKE_C_FLAGS in test 1119 and 1167 2025-08-18 11:08:53 +02:00
config.in copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
configurehelp.pm.in build: use configurehelp.pm.in with autotools and cmake 2024-09-21 12:21:14 +02:00
devtest.pl tidy-up: whitespace 2025-07-11 13:32:54 +02:00
dictserver.py tidy-up: align MSYS2/Cygwin codepaths, follow Cygwin MAX_PID bump 2025-02-21 11:58:05 +01:00
directories.pm scripts: fix perl indentation, whitespace, semicolons 2025-04-29 19:35:55 +02:00
ech_combos.py tidy-up: whitespace [ci skip] 2024-04-16 09:53:39 +02:00
ech_tests.sh tests/ech_tests.sh: indent, if/for style, inline ifs 2025-08-06 15:07:04 +02:00
ftpserver.pl runtests: assume Time::HiRes, drop Perl Win32 dependency 2025-08-14 16:34:06 +02:00
getpart.pm tidy-up: whitespace 2025-07-11 13:32:54 +02:00
globalconfig.pm runtests: add --ci option, show Env: only when non-empty 2025-08-04 14:55:10 +02:00
http-server.pl runtests: support multi-target cmake, drop workarounds from CI 2025-02-24 21:00:30 +01:00
http2-server.pl tests: fix perl warnings in http2-server, http3-server 2025-07-30 14:21:17 +02:00
http3-server.pl tests: fix perl warnings in http2-server, http3-server 2025-07-30 14:21:17 +02:00
Makefile.am runtests: add --ci option, show Env: only when non-empty 2025-08-04 14:55:10 +02:00
memanalyze.pl memanalyze: fix warnings 2025-07-28 12:43:02 +02:00
negtelnetserver.py tidy-up: align MSYS2/Cygwin codepaths, follow Cygwin MAX_PID bump 2025-02-21 11:58:05 +01:00
nghttpx.conf copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
pathhelp.pm tidy-up: whitespace (more in Perl) 2025-07-12 08:59:44 +02:00
processhelp.pm processhelp.pm: use Win32::Process* perl modules if available 2025-08-18 23:46:56 +02:00
requirements.txt tests/http: more tests with specific clients 2023-04-26 23:24:46 +02:00
rtspserver.pl runtests: support multi-target cmake, drop workarounds from CI 2025-02-24 21:00:30 +01:00
runner.pm runtests: assume Time::HiRes, drop Perl Win32 dependency 2025-08-14 16:34:06 +02:00
runtests.pl runtests: assume Time::HiRes, drop Perl Win32 dependency 2025-08-14 16:34:06 +02:00
secureserver.pl tests: Add https-mtls server to force client auth 2025-04-07 08:46:56 +02:00
serverhelp.pm runtests: assume Time::HiRes, drop Perl Win32 dependency 2025-08-14 16:34:06 +02:00
servers.pm runtests: assume Time::HiRes, drop Perl Win32 dependency 2025-08-14 16:34:06 +02:00
smbserver.py GHA/checksrc: expand spellcheck, fix issues found 2025-07-21 16:09:01 +02:00
sshhelp.pm runtests: fix test key format for libssh2 WinCNG (and others) 2025-03-23 20:26:26 +01:00
sshserver.pl tidy-up: whitespace 2025-07-11 13:32:54 +02:00
test745.pl tidy-up: whitespace (more in Perl) 2025-07-12 08:59:44 +02:00
test971.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
test1119.pl docs: add CURLOPT type change history, drop casts where present 2025-08-02 00:05:33 +02:00
test1132.pl tests: rename tests scripts to the test number 2023-12-08 12:53:17 +01:00
test1135.pl tidy-up: whitespace (more in Perl) 2025-07-12 08:59:44 +02:00
test1139.pl tidy-up: whitespace (more in Perl) 2025-07-12 08:59:44 +02:00
test1140.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
test1165.pl tidy-up: whitespace (more in Perl) 2025-07-12 08:59:44 +02:00
test1167.pl tidy-up: whitespace (more in Perl) 2025-07-12 08:59:44 +02:00
test1173.pl GHA/checksrc: expand spellcheck, fix issues found 2025-07-21 16:09:01 +02:00
test1175.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
test1177.pl NTLM_WB: drop support 2024-04-08 13:58:58 +02:00
test1222.pl test1222: fix for out-of-tree and no-libcurl-manual builds 2025-07-11 12:28:46 +02:00
test1275.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
test1276.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
test1477.pl test1175: fix to run, and fix documentation issues detected 2025-07-11 12:28:46 +02:00
test1486.pl writeout: add %time{} 2025-08-04 23:45:48 +02:00
test1488.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
test1544.pl scripts: fix perl indentation, whitespace, semicolons 2025-04-29 19:35:55 +02:00
test1707.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
testcurl.pl scripts: enable strict warnings in Perl where missing, fix fallouts 2025-07-27 22:35:18 +02:00
testutil.pm tidy-up: whitespace 2025-07-11 13:32:54 +02:00
tftpserver.pl tests: Remove unused variables 2025-03-22 11:12:29 -07:00
util.py tests: enable additional ruff Python lint options 2024-10-04 14:03:17 -07:00
valgrind.pm tests/valgrind.pm: fix warnings with no valgrind report to show 2024-09-20 15:40:07 +02:00
valgrind.supp hyper: drop support 2024-12-21 11:33:05 +01:00