summaryrefslogtreecommitdiff
path: root/introspect/test/adversarial.sh
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-19 21:26:05 -0300
committerGabriel Schneider <[email protected]>2026-09-19 21:26:05 -0300
commitb05abcba3ea09ea106ad28364c6e40a3ec31b890 (patch)
tree9170fac5e7e5d8bde108de34a182aaa9d6844117 /introspect/test/adversarial.sh
parentae310a207534b33b7321dd2b9f423a73b1969159 (diff)
downloadcloud9-b05abcba3ea09ea106ad28364c6e40a3ec31b890.tar.gz
cloud9-b05abcba3ea09ea106ad28364c6e40a3ec31b890.zip
Add 9player and introspect as programs beside the library
9player/: FUSE mount CLI that mounts a 9P2000 tree into a fresh user+mount namespace and runs a program in it (no root, no libfuse, no libc). introspect/: the 9P debug/introspection library (freestanding core, value renderers, Linux probe with threads/stacks/memory/breakpoints/panics) and its demo server. Each has its own build fragment; the root build.zig wires them behind -D9player/-Dintrospect with namespaced steps (9player-itest, introspect-check-freestanding, programs-test, ...) and exports the introspect module for dependents. This is the layout for related programs. Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to 'introspect/test/adversarial.sh')
-rwxr-xr-xintrospect/test/adversarial.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/introspect/test/adversarial.sh b/introspect/test/adversarial.sh
new file mode 100755
index 0000000..918bb9a
--- /dev/null
+++ b/introspect/test/adversarial.sh
@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+# Runs every introspect adversarial suite in sequence: hostile raw-9P clients
+# against the demo (framing, tags, floods; the core's /vars, snapshots, fids)
+# and the Linux layer through one 9player mount (memory, signals, poll loop).
+# Usage: bash introspect/test/adversarial.sh <9player> <introspect> [--fast]
+# `zig build introspect-adv` runs the same suites as separate steps.
+set -u
+PLAYER=${1:?path to 9player}
+INTROSPECT=${2:?path to introspect}
+shift 2
+HERE=$(cd "$(dirname "$0")" && pwd)
+status=0
+for suite in adv_introspect_hostile adv_core_hostile; do
+ echo "### $suite"
+ if bash "$HERE/$suite.sh" "$INTROSPECT" "$@"; then echo "### $suite: ok"; else echo "### $suite: FAILED"; status=1; fi
+done
+echo "### adv_linux_probe"
+if bash "$HERE/adv_linux_probe.sh" "$PLAYER" "$INTROSPECT"; then echo "### adv_linux_probe: ok"; else echo "### adv_linux_probe: FAILED"; status=1; fi
+exit $status