Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
"""Regression tests for Desktop-owned ``hermes serve`` lifecycle tracking."""
|
||||
|
||||
from hermes_cli.web_server import _is_serve_orphaned, _valid_parent_start_marker
|
||||
|
||||
|
||||
def test_parent_watchdog_tracks_recorded_desktop_pid_not_immediate_ppid():
|
||||
"""Windows venv launch shims must not make a live Desktop look orphaned."""
|
||||
|
||||
assert _is_serve_orphaned(4242, pid_exists=lambda pid: pid == 4242) is False
|
||||
assert _is_serve_orphaned(4242, pid_exists=lambda _pid: False) is True
|
||||
|
||||
|
||||
def test_parent_watchdog_fails_safe_when_liveness_probe_errors():
|
||||
def broken_probe(_pid: int) -> bool:
|
||||
raise OSError("process table temporarily unavailable")
|
||||
|
||||
assert _is_serve_orphaned(4242, pid_exists=broken_probe) is False
|
||||
|
||||
|
||||
def test_parent_watchdog_accepts_electron_windows_creation_time_marker():
|
||||
unix_ms = 1_723_456_789_123
|
||||
dotnet_ticks = 621_355_968_000_000_000 + unix_ms * 10_000 + 9_999
|
||||
|
||||
assert _valid_parent_start_marker(f"winms:{unix_ms}") is True
|
||||
assert (
|
||||
_is_serve_orphaned(
|
||||
4242,
|
||||
f"winms:{unix_ms}",
|
||||
process_start_marker=lambda _pid: f"win:{dotnet_ticks}",
|
||||
)
|
||||
is False
|
||||
)
|
||||
|
||||
|
||||
def test_parent_watchdog_rejects_reused_pid_with_different_windows_creation_time():
|
||||
unix_ms = 1_723_456_789_123
|
||||
next_process_ticks = 621_355_968_000_000_000 + (unix_ms + 1) * 10_000
|
||||
|
||||
assert (
|
||||
_is_serve_orphaned(
|
||||
4242,
|
||||
f"winms:{unix_ms}",
|
||||
process_start_marker=lambda _pid: f"win:{next_process_ticks}",
|
||||
)
|
||||
is True
|
||||
)
|
||||
|
||||
|
||||
def test_parent_watchdog_preserves_legacy_exact_windows_marker():
|
||||
marker = "win:638908765432109876"
|
||||
|
||||
assert (
|
||||
_is_serve_orphaned(
|
||||
4242,
|
||||
marker,
|
||||
process_start_marker=lambda _pid: marker,
|
||||
)
|
||||
is False
|
||||
)
|
||||
Reference in New Issue
Block a user