mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-21 21:05:09 +00:00
89 lines
3.3 KiB
Python
Generated
89 lines
3.3 KiB
Python
Generated
#!/usr/bin/env python3
|
|
"""Tests for the shared server-binary sign table."""
|
|
|
|
import plistlib
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
from .server_binaries import (
|
|
MACOS_SERVER_BINARIES,
|
|
WINDOWS_SERVER_BINARIES,
|
|
expected_windows_binary_paths,
|
|
macos_sign_spec_for,
|
|
)
|
|
|
|
ENTITLEMENTS_DIR = Path(__file__).resolve().parents[2] / "resources" / "entitlements"
|
|
|
|
|
|
class MacosServerBinariesTest(unittest.TestCase):
|
|
def test_every_entry_has_identifier_and_options(self):
|
|
for stem, spec in MACOS_SERVER_BINARIES.items():
|
|
self.assertTrue(spec.identifier_suffix, f"{stem} missing identifier_suffix")
|
|
self.assertTrue(spec.options, f"{stem} missing options")
|
|
|
|
def test_every_entitlements_plist_exists_on_disk(self):
|
|
for stem, spec in MACOS_SERVER_BINARIES.items():
|
|
if spec.entitlements is None:
|
|
continue
|
|
plist = ENTITLEMENTS_DIR / spec.entitlements
|
|
self.assertTrue(plist.exists(), f"{stem}: entitlements {plist} missing")
|
|
|
|
def test_macos_sign_spec_for_resolves_by_stem(self):
|
|
spec = macos_sign_spec_for(Path("/x/limactl"))
|
|
assert spec is not None
|
|
self.assertEqual(spec.identifier_suffix, "limactl")
|
|
self.assertIsNone(macos_sign_spec_for(Path("/x/not_a_known_binary")))
|
|
|
|
def test_limactl_uses_vz_entitlement(self):
|
|
spec = macos_sign_spec_for(Path("/x/limactl"))
|
|
assert spec is not None
|
|
self.assertEqual(spec.entitlements, "lima-vz-entitlements.plist")
|
|
|
|
entitlements_name = spec.entitlements
|
|
assert entitlements_name is not None
|
|
entitlements = plistlib.loads((ENTITLEMENTS_DIR / entitlements_name).read_bytes())
|
|
self.assertIs(entitlements.get("com.apple.security.virtualization"), True)
|
|
|
|
def test_matches_lima_bundle_layout(self):
|
|
keys = set(MACOS_SERVER_BINARIES.keys())
|
|
self.assertIn("limactl", keys)
|
|
forbidden = {"podman", "gvproxy", "vfkit", "krunkit", "podman-mac-helper"}
|
|
leftover = forbidden & keys
|
|
self.assertFalse(leftover, f"podman-era entries still present: {leftover}")
|
|
|
|
|
|
class WindowsServerBinariesTest(unittest.TestCase):
|
|
def test_no_duplicates(self):
|
|
self.assertEqual(
|
|
len(WINDOWS_SERVER_BINARIES), len(set(WINDOWS_SERVER_BINARIES))
|
|
)
|
|
|
|
def test_paths_within_expected_layout(self):
|
|
for rel in WINDOWS_SERVER_BINARIES:
|
|
self.assertTrue(
|
|
rel == "browseros_server.exe" or rel.startswith("third_party/"),
|
|
f"{rel} outside expected layout",
|
|
)
|
|
|
|
def test_expected_windows_binary_paths_joins_root(self):
|
|
root = Path("/tmp/fake/resources/bin")
|
|
resolved = expected_windows_binary_paths(root)
|
|
self.assertEqual(len(resolved), len(WINDOWS_SERVER_BINARIES))
|
|
for rel, abs_path in zip(WINDOWS_SERVER_BINARIES, resolved):
|
|
self.assertEqual(abs_path, root / rel)
|
|
|
|
def test_windows_has_no_stale_third_party(self):
|
|
forbidden = {
|
|
"third_party/podman/podman.exe",
|
|
"third_party/podman/gvproxy.exe",
|
|
"third_party/podman/win-sshproxy.exe",
|
|
"third_party/bun.exe",
|
|
"third_party/rg.exe",
|
|
}
|
|
leftover = forbidden & set(WINDOWS_SERVER_BINARIES)
|
|
self.assertFalse(leftover, f"stale entries still present: {leftover}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|