Files
truf-server/tests/test_process_identity_linux.py
T
2026-09-30 20:30:56 +03:00

36 lines
1.1 KiB
Python

from pathlib import Path
import subprocess
import sys
import unittest
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / 'app'))
import process_identity
@unittest.skipUnless(sys.platform.startswith('linux'), 'requires Linux pidfds')
class LinuxProcessIdentityTests(unittest.TestCase):
def test_pidfd_is_bound_before_exact_identity_and_drives_termination(self):
process = subprocess.Popen([
sys.executable, '-I', '-S', '-B', '-c', 'import time; time.sleep(60)',
])
try:
retained = process_identity.open_process(process.pid, terminate=True)
self.assertIsNotNone(retained._pidfd)
self.assertEqual(retained.identity.pid, process.pid)
retained.terminate()
self.assertTrue(retained.wait(5))
retained.close()
process.wait(timeout=5)
self.assertIsNotNone(process.returncode)
finally:
if process.poll() is None:
process.kill()
process.wait(timeout=5)
if __name__ == '__main__':
unittest.main()