#!/usr/bin/env python3 """Disposable actual process-tree oracles; never invoke runtime, SSH or bwrap.""" import ctypes import importlib.util import json import os from pathlib import Path import select import signal import subprocess import sys import tempfile import time import unittest HERE=Path(__file__).resolve().parent SPEC=importlib.util.spec_from_file_location('supervised',HERE/'process_supervision.py') S=importlib.util.module_from_spec(SPEC);SPEC.loader.exec_module(S) CANARY='fixture-private-stderr-must-not-appear' # A session-escaping grandchild remains owned by the subreaper even after the # intermediate process exits. No namespace or application launcher is involved. LEAF="import os,time,sys;from pathlib import Path;Path(sys.argv[1]).write_text(str(os.getpid()));print(sys.argv[2],file=sys.stderr,flush=True);time.sleep(30)" LEADER="import subprocess,sys,time;subprocess.Popen([sys.executable,'-c',sys.argv[1],sys.argv[2],sys.argv[3]],start_new_session=True);time.sleep(30)" def wait_until(predicate,timeout=8): end=time.monotonic()+timeout while time.monotonic()