summaryrefslogtreecommitdiffstats
path: root/debug/risc-v-gsp-rm-vm/tests/test_gpgpu_sim_setup.py
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-03 14:05:38 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-03 14:05:38 -0400
commitcc79b478843f0230fe6aa8ecd822de7ba71c891e (patch)
tree5de760ddec4e45cc23d39ce7502635f5c0711217 /debug/risc-v-gsp-rm-vm/tests/test_gpgpu_sim_setup.py
parent40351167dd209012ab485e6164ce94f0b8965422 (diff)
downloadopen-iov-cc79b478843f0230fe6aa8ecd822de7ba71c891e.tar.gz
open-iov-cc79b478843f0230fe6aa8ecd822de7ba71c891e.zip
vgsp: host CUDA bridge + sema release recovery; greeneye simulator wave
- kernel: gsp_cuda_bridge (QMD launch capture, debugfs job/out/done, param+output resolution cached from inline writes), sema drain fixes (never hold/starve a channel), GR ring autopin + counter autoreg, per-page push reads, counter-derive gate; module builds clean - tools/cuda-bridge: CUDA driver-API daemon executing mail/vadd kernels on the physical GPU, CUBB2/CBD2 v2 protocol, layout check + self-tests - tools/guest-diag + tools/cuda-ab: scanner/pin fixes, victory push-only mode - debug/risc-v-gsp-rm-vm: Phase S simulator wave (GSP device model, boot ladder, triage/re-demo harnesses, docs 30-41), GPGPU-sim scaffolding - STATE-CURRENT/docs updates
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/tests/test_gpgpu_sim_setup.py')
-rw-r--r--debug/risc-v-gsp-rm-vm/tests/test_gpgpu_sim_setup.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/debug/risc-v-gsp-rm-vm/tests/test_gpgpu_sim_setup.py b/debug/risc-v-gsp-rm-vm/tests/test_gpgpu_sim_setup.py
new file mode 100644
index 0000000..c52f75f
--- /dev/null
+++ b/debug/risc-v-gsp-rm-vm/tests/test_gpgpu_sim_setup.py
@@ -0,0 +1,43 @@
+"""Regression guard for ``gpgpu-sim/setup.sh`` clone-source policy.
+
+The script must default to the upstream URL and use a local mirror only via
+the explicit ``GPGPUSIM_CLONE_SOURCE`` environment variable; no personal host
+path may be hardcoded. These checks are static (plus ``bash -n``/``--help``)
+so they need neither a network nor a GPGPU-Sim checkout.
+"""
+import os
+import subprocess
+import sys
+import unittest
+
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+TOOL_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+SETUP = os.path.join(TOOL_ROOT, "gpgpu-sim", "setup.sh")
+PIN = "90ec3399763d7c8512cfe7dc193473086c38ca38"
+UPSTREAM_URL = "https://github.com/gpgpu-sim/gpgpu-sim_distribution.git"
+
+
+class SetupShTests(unittest.TestCase):
+ def test_clone_source_policy(self):
+ with open(SETUP, "r", encoding="utf-8") as fh:
+ text = fh.read()
+ self.assertNotIn("LOCAL_SRC=", text)
+ self.assertNotIn("/home/rmcore", text)
+ self.assertIn("GPGPUSIM_CLONE_SOURCE", text)
+ self.assertIn(UPSTREAM_URL, text)
+ self.assertIn(PIN, text) # pin enforcement stays in the script
+
+ def test_script_syntax_and_help(self):
+ result = subprocess.run(["bash", "-n", SETUP],
+ capture_output=True, text=True)
+ self.assertEqual(result.returncode, 0, result.stderr)
+ result = subprocess.run(["bash", SETUP, "--help"],
+ capture_output=True, text=True)
+ self.assertEqual(result.returncode, 0, result.stderr)
+ self.assertIn("GPGPUSIM_CLONE_SOURCE", result.stdout)
+ self.assertIn("upstream URL", result.stdout)
+
+
+if __name__ == "__main__":
+ unittest.main()