Harden Windows deferred update wait
ci / test (push) Canceled after 0s
ci / fuzz-smoke (push) Canceled after 0s
ci / macos-client (macos-aarch64, macos-14) (push) Canceled after 0s
ci / macos-client (macos-x86_64, macos-13) (push) Canceled after 0s
ci / windows-client (push) Canceled after 0s
ci / package-release (linux-x86_64, ubuntu-latest, , , ) (push) Canceled after 0s
ci / package-release (macos-aarch64, macos-14, , , ) (push) Canceled after 0s
ci / package-release (macos-x86_64, macos-13, , , ) (push) Canceled after 0s
ci / package-release (windows-aarch64, windows-latest, aarch64, windows, aarch64-pc-windows-msvc) (push) Canceled after 0s
ci / package-release (windows-x86_64, windows-latest, , , ) (push) Canceled after 0s
ci / remote-bench (push) Canceled after 0s
ci / publish-gitea-release (push) Canceled after 0s
ci / test (push) Canceled after 0s
ci / fuzz-smoke (push) Canceled after 0s
ci / macos-client (macos-aarch64, macos-14) (push) Canceled after 0s
ci / macos-client (macos-x86_64, macos-13) (push) Canceled after 0s
ci / windows-client (push) Canceled after 0s
ci / package-release (linux-x86_64, ubuntu-latest, , , ) (push) Canceled after 0s
ci / package-release (macos-aarch64, macos-14, , , ) (push) Canceled after 0s
ci / package-release (macos-x86_64, macos-13, , , ) (push) Canceled after 0s
ci / package-release (windows-aarch64, windows-latest, aarch64, windows, aarch64-pc-windows-msvc) (push) Canceled after 0s
ci / package-release (windows-x86_64, windows-latest, , , ) (push) Canceled after 0s
ci / remote-bench (push) Canceled after 0s
ci / publish-gitea-release (push) Canceled after 0s
This commit is contained in:
+16
-2
@@ -4809,7 +4809,12 @@ fn windows_deferred_update_script(parent_pid: u32, installer_script: &str) -> St
|
||||
format!(
|
||||
"$ErrorActionPreference='Stop';\
|
||||
$ProgressPreference='SilentlyContinue';\
|
||||
while (Get-Process -Id {parent_pid} -ErrorAction SilentlyContinue) {{ \
|
||||
$parent=Get-Process -Id {parent_pid} -ErrorAction SilentlyContinue;\
|
||||
$parentStart=if ($parent) {{ $parent.StartTime }} else {{ $null }};\
|
||||
while ($true) {{ \
|
||||
$current=Get-Process -Id {parent_pid} -ErrorAction SilentlyContinue;\
|
||||
if (-not $current) {{ break }};\
|
||||
if ($parentStart -and $current.StartTime -ne $parentStart) {{ break }};\
|
||||
Start-Sleep -Milliseconds 100 \
|
||||
}};\
|
||||
{installer_script}"
|
||||
@@ -13172,6 +13177,15 @@ mod tests {
|
||||
);
|
||||
let deferred = windows_deferred_update_script(4242, &installer);
|
||||
assert!(deferred.contains("Get-Process -Id 4242 -ErrorAction SilentlyContinue"));
|
||||
assert!(
|
||||
deferred.contains("$parentStart=if ($parent) { $parent.StartTime } else { $null }")
|
||||
);
|
||||
assert!(deferred.contains("$current=Get-Process -Id 4242 -ErrorAction SilentlyContinue"));
|
||||
assert!(deferred.contains("if (-not $current) { break }"));
|
||||
assert!(
|
||||
deferred
|
||||
.contains("if ($parentStart -and $current.StartTime -ne $parentStart) { break }")
|
||||
);
|
||||
assert!(deferred.contains("Start-Sleep -Milliseconds 100"));
|
||||
assert!(
|
||||
deferred.contains(
|
||||
@@ -13179,7 +13193,7 @@ mod tests {
|
||||
)
|
||||
);
|
||||
assert!(
|
||||
deferred.find("Get-Process -Id 4242").unwrap()
|
||||
deferred.find("$parentStart").unwrap()
|
||||
< deferred.find("irm 'https://git.palav.dev").unwrap()
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user