mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-06-09 08:21:50 +00:00
Daemon thread polls _is_orphaned (original ppid check + psutil create_time PID-reuse guard, no PR_SET_PDEATHSIG). On orphan, drains an in-flight command up to a grace window then os._exit(0). Started before the HermesCLI build to cover the spawn window. Task: swl-qrf.8
21 lines
694 B
Python
21 lines
694 B
Python
import psutil
|
|
|
|
from tui_gateway import slash_worker
|
|
|
|
|
|
def test_is_orphaned_true_when_ppid_changes():
|
|
# Our parent went away and we were reparented to a subreaper/init.
|
|
assert slash_worker._is_orphaned(1234, 1.0, getppid=lambda: 999999) is True
|
|
|
|
|
|
def test_is_orphaned_true_when_parent_create_time_mismatch():
|
|
# Same ppid but a different create_time means the PID was reused.
|
|
me = psutil.Process()
|
|
assert slash_worker._is_orphaned(me.pid, 0.0, getppid=lambda: me.pid) is True
|
|
|
|
|
|
def test_is_orphaned_false_when_parent_alive_and_matches():
|
|
me = psutil.Process()
|
|
assert (
|
|
slash_worker._is_orphaned(me.pid, me.create_time(), getppid=lambda: me.pid) is False
|
|
)
|