diff --git a/.github/scripts/typos.toml b/.github/scripts/typos.toml index 28dcad73be..3495823c1b 100644 --- a/.github/scripts/typos.toml +++ b/.github/scripts/typos.toml @@ -4,7 +4,7 @@ [default] extend-ignore-identifiers-re = [ - "^(ba|pn|PN|UE)$", + "^(ba|fo|pn|PN|UE)$", "^(CNA|ser)$", "^(ECT0|ECT1|HELO|htpt|PASE)$", "^[A-Za-z0-9_-]*(EDE|GOST)[A-Z0-9_-]*$", # ciphers diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 8214cbb310..bcb846d806 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -37,6 +37,7 @@ permissions: {} env: CURL_CI: github + CURL_TEST_NO_TASKKILL: '1' jobs: cygwin: diff --git a/tests/processhelp.pm b/tests/processhelp.pm index f1f8ef525a..8c436d5eab 100644 --- a/tests/processhelp.pm +++ b/tests/processhelp.pm @@ -169,10 +169,29 @@ sub pidterm { if($has_win32_process) { Win32::Process::KillProcess($pid, 0); } else { - # https://ss64.com/nt/taskkill.html - my $cmd = "taskkill -f -t -pid $pid >$dev_null 2>&1"; - print "Executing: '$cmd'\n"; - system($cmd); + # https://ss64.com/nt/tasklist.html + my $result = `tasklist -v -fo list -fi "PID eq $pid" 2>&1`; + $result =~ s/\r//g; + $result =~ s/\n/ | /g; + print "Task info for $pid before taskkill: '$result'\n"; + + $result = `powershell -Command "Get-CimInstance -ClassName Win32_Process -Filter 'ParentProcessId=$pid' | Select ProcessId,ParentProcessId,Name,CommandLine"`; + $result =~ s/\r//g; + print "Task child processes for $pid before taskkill:\n"; + print "$result\n"; + + if(!$ENV{'CURL_TEST_NO_TASKKILL'}) { + # https://ss64.com/nt/taskkill.html + my $cmd; + if($ENV{'CURL_TEST_NO_TASKKILL_TREE'}) { + $cmd = "taskkill -f -pid $pid >$dev_null 2>&1"; + } + else { + $cmd = "taskkill -f -t -pid $pid >$dev_null 2>&1"; + } + print "Executing: '$cmd'\n"; + system($cmd); + } } return; } @@ -198,10 +217,29 @@ sub pidkill { if($has_win32_process) { Win32::Process::KillProcess($pid, 0); } else { - # https://ss64.com/nt/taskkill.html - my $cmd = "taskkill -f -t -pid $pid >$dev_null 2>&1"; - print "Executing: '$cmd'\n"; - system($cmd); + # https://ss64.com/nt/tasklist.html + my $result = `tasklist -v -fo list -fi "PID eq $pid" 2>&1`; + $result =~ s/\r//g; + $result =~ s/\n/ | /g; + print "Task info for $pid before taskkill: '$result'\n"; + + $result = `powershell -Command "Get-CimInstance -ClassName Win32_Process -Filter 'ParentProcessId=$pid' | Select ProcessId,ParentProcessId,Name,CommandLine"`; + $result =~ s/\r//g; + print "Task child processes for $pid before taskkill:\n"; + print "$result\n"; + + if(!$ENV{'CURL_TEST_NO_TASKKILL'}) { + # https://ss64.com/nt/taskkill.html + my $cmd; + if($ENV{'CURL_TEST_NO_TASKKILL_TREE'}) { + $cmd = "taskkill -f -pid $pid >$dev_null 2>&1"; + } + else { + $cmd = "taskkill -f -t -pid $pid >$dev_null 2>&1"; + } + print "Executing: '$cmd'\n"; + system($cmd); + } } return; }