test_sandbox.py | Read-only rootfs, binary permissions (chmod 555), no setuid/setgid, kernel hardening (no modules, no debugfs, no IPv6, no swap, no kallsyms), process integrity (pty-agent, dnsmasq running; no systemd, sshd, cron), network isolation (dummy0, fake DNS, iptables, no real NICs) |
test_network.py | MITM CA in system store + certifi, curl without -k works, Python urllib HTTPS, CA env vars set (SSL_CERT_FILE, REQUESTS_CA_BUNDLE, NODE_EXTRA_CA_CERTS), HTTP/80 blocked, non-443 ports blocked, direct IP blocked, multi-domain DNS faking, AI provider domains reachable |
test_environment.py | TERM/HOME/PATH env vars correct, shell is bash, kernel version, aarch64 arch, mount points (/proc, /sys, /dev, /dev/pts), tmpfs verification |
test_runtimes.py | Python3, Node.js, npm, pip3, git version checks; Python file I/O; Node file I/O; git init+commit workflow |
test_utilities.py | ~36 unix utilities available (coreutils, text processing, network, system tools, capsem-bench) |
test_workflows.py | Text write/read, JSON roundtrip (Python + Node), shell pipes, large file (10MB) |
test_ai_cli.py | claude, gemini, codex installed and executable without crashing |
test_virtiofs.py | VirtioFS root mount, ext4 loopback upper, loop device active, workspace write/read/large file/subdir, system overlay writable, pip install works, file delete+recreate (skipped in block mode) |
test_mcp.py | Guest MCP endpoint tool routing, domain blocking via MCP |
test_injection.py | Security injection tests |
conftest.py | Test infrastructure (auto-skip outside VM, run() helper, output dir fixture) |