community/pueue: remove skip tests except loongarch64 and riscv64 and add ignore zombie pids

This commit is contained in:
Robert Mongold 2026-05-11 21:13:24 -04:00 committed by Jakub Jirutka
parent 73f125446b
commit 8624b3a435
2 changed files with 37 additions and 11 deletions

View File

@ -2,7 +2,7 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=pueue
pkgver=4.0.4
pkgrel=0
pkgrel=1
pkgdesc="Manage your shell commands"
url="https://github.com/nukesor/pueue"
arch="all"
@ -14,7 +14,9 @@ subpackages="
$pkgname-fish-completion
$pkgname-zsh-completion
"
source="https://github.com/Nukesor/pueue/archive/v$pkgver/pueue-$pkgver.tar.gz"
source="https://github.com/Nukesor/pueue/archive/v$pkgver/pueue-$pkgver.tar.gz
process-helper-tests-ignore-zombies.patch
"
options="net"
prepare() {
@ -32,28 +34,31 @@ build() {
done
}
# process_helper kill tests: see process-helper-tests-ignore-zombies.patch (no per-arch --skip).
# loongarch64 / riscv64: flaky or race-sensitive integration tests on slow hardware.
check() {
# kill tests fail in CI and builders due to PID 1 reaping behavior
local _skip_tests="--skip process_helper::unix::tests::test_normal_command_children_are_killed \
--skip process_helper::unix::tests::test_shell_command_children_are_killed \
--skip process_helper::unix::tests::test_shell_command_is_killed \
--skip process_helper::unix::tests::test_shell_command_is_killed_with_signal"
local _skip_tests=
case "$CARCH" in
loongarch64)
# flaky timeout/race-sensitive tests on slow hardware
_skip_tests="$_skip_tests \
--skip client::integration::wait::multiple_tasks \
--skip client::integration::wait::single_task_target_status \
--skip client::integration::wait::success_failure \
--skip client::integration::wait::success_success \
--skip client::integration::wait::target_status \
--skip daemon::integration::stashed::test_delayed_tasks"
--skip daemon::integration::callback::test_callback_variables \
--skip daemon::integration::start::test_start_stashed_tasks \
--skip daemon::integration::stashed::test_delayed_tasks \
--skip daemon::integration::restore::test_start_paused::case_2"
;;
riscv64)
# flaky timeout/race-sensitive tests on slow hardware
# flaky follow output / timing on slow hardware
_skip_tests="$_skip_tests \
--skip client::integration::follow::default::case_1"
--skip client::integration::follow::default::case_1 \
--skip client::integration::follow::default::case_2 \
--skip client::integration::follow::last_lines::case_1 \
--skip client::integration::follow::last_lines::case_2"
;;
esac
@ -73,4 +78,5 @@ package() {
sha512sums="
fc79d9dd2acd8861e67a2a52ddf935c7e923b89899abbd487aa8f30b85a9272d56f94a92442380576850e9eacac0e71817e8a852565712f08e17e9921c523845 pueue-4.0.4.tar.gz
8563b4db5eb234295c52b0db5e1ca8b76f89eb1bf9585efe13f00067ac6b8aaab7e004891a557d53b8f4703d7a734ef57c694955f1fa7492c1cdcfa9b5ff4bde process-helper-tests-ignore-zombies.patch
"

View File

@ -0,0 +1,20 @@
From: Alpine Linux packaging
Subject: [PATCH] process_helper tests: ignore zombie PIDs in process group listing
libproc may still return PIDs in the target process group after SIGKILL while
those processes are zombies waiting to be reaped. procfs::Process::is_alive
(and thus process_exists) excludes zombies, so filtering the libproc list
matches the intent of the tests: no live stray processes.
--- a/pueue/src/process_helper/unix.rs
+++ b/pueue/src/process_helper/unix.rs
@@ -96,6 +96,9 @@ mod tests {
if !processes.iter().any(|pid| pid == &pgrp) && !process_is_gone(pgrp) {
processes.push(pgrp)
}
+ // Zombies remain visible to libproc until reaped; `process_exists` reflects
+ // /proc liveness and excludes defunct entries for stable post-kill checks.
+ processes.retain(|&pid| process_exists(pid));
processes
}
}