summaryrefslogtreecommitdiffstats
path: root/debug/risc-v-gsp-rm-vm/harness/value_demos/s10_full_session_evidence.py
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-02 12:41:52 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-10-02 12:41:52 -0400
commit271bb3251267fec68f5c9cec63314b22cfaefe75 (patch)
tree7807872b74b49ba77a145c51c405f690425c6b43 /debug/risc-v-gsp-rm-vm/harness/value_demos/s10_full_session_evidence.py
parent05797fd8cf884bb680540dfc188f36836a215c9f (diff)
downloadopen-iov-271bb3251267fec68f5c9cec63314b22cfaefe75.tar.gz
open-iov-271bb3251267fec68f5c9cec63314b22cfaefe75.zip
debug: risc-v-gsp-rm-debugger final pass - remove in-development notices, complete rename, adversarial-review fixes
Remove the '# TOOL IN DEVELOPMENT - NOT READY YET!' notices from the tool docs/README/scripts and the project docs; record the removal (2026-10-02) against the tool audit (debug/risc-v-gsp-rm-vm/docs/27-TOOL-AUDIT.md), the 194-test suite and the value-validation demos (docs/25-VALUE-VALIDATION.md). Complete the cosmetic rename to risc-v-gsp-rm-debugger in user-facing prose and commands (launcher, roadmap, docs); internal greeneye package and code identifiers unchanged. Adversarial-review fixes: deterministic control-discovery sweep (flaky test root-caused), UUID session dirs + atomic JSON writes for concurrent runs, Ghidra bridge loopback enforcement and clean shutdown, fp register restore in Session.call, version_diff --dry-run, 30 s interrupt budget, dry-run non-destructiveness verified. Docs: flag-removal records, link fixes, command/flag corrections (fdematch arity, port_new_device --out, trace filename), F2 orchestration note in future-eng-ops; STATE-CURRENT status refreshed.
Diffstat (limited to 'debug/risc-v-gsp-rm-vm/harness/value_demos/s10_full_session_evidence.py')
-rw-r--r--debug/risc-v-gsp-rm-vm/harness/value_demos/s10_full_session_evidence.py22
1 files changed, 12 insertions, 10 deletions
diff --git a/debug/risc-v-gsp-rm-vm/harness/value_demos/s10_full_session_evidence.py b/debug/risc-v-gsp-rm-vm/harness/value_demos/s10_full_session_evidence.py
index f6cd48f..75d7b1e 100644
--- a/debug/risc-v-gsp-rm-vm/harness/value_demos/s10_full_session_evidence.py
+++ b/debug/risc-v-gsp-rm-vm/harness/value_demos/s10_full_session_evidence.py
@@ -67,7 +67,7 @@ def _trace_overhead(ge, out: str) -> dict:
import time
def timed(trace):
- record = os.path.join(out, "trace-off" if not trace else "trace-on")
+ record = C.session_dir(out, "trace-on" if trace else "trace-off")
start = time.monotonic()
session = ge.launch(kernel=C.DEMO_ELF, backend="native", record=record, trace=trace, name="vd-s10-trace")
run_start = time.monotonic()
@@ -134,19 +134,21 @@ def run() -> dict:
)
start = time.monotonic()
- session_a = _stimulus(ge, os.path.join(out, "session-A"), backend)
- session_b = _stimulus(ge, os.path.join(out, "session-B"), backend)
+ session_a_dir = C.session_dir(out, "session-A")
+ session_b_dir = C.session_dir(out, "session-B")
+ session_a = _stimulus(ge, session_a_dir, backend)
+ session_b = _stimulus(ge, session_b_dir, backend)
symbols = ge.SymbolDB()
symbols.load_elf(ge.load_elf(C.DEMO_ELF))
- report = render_summary(os.path.join(out, "session-A"), symbols=symbols, max_rows=30)
+ report = render_summary(session_a_dir, symbols=symbols, max_rows=30)
C.write_text(os.path.join(out, "analyze.md"), report)
- compare = compare_sessions(os.path.join(out, "session-A"), os.path.join(out, "session-B"), symbols=symbols, max_rows=30)
+ compare = compare_sessions(session_a_dir, session_b_dir, symbols=symbols, max_rows=30)
C.write_text(os.path.join(out, "compare.md"), compare)
- hits = export_hits(os.path.join(out, "session-A"), os.path.join(out, "greeneye_hits.tsv"), symbols=symbols)
+ hits = export_hits(session_a_dir, os.path.join(out, "greeneye_hits.tsv"), symbols=symbols)
trace = _trace_overhead(ge, out)
- size_a = _dir_size(os.path.join(out, "session-A"))
- size_b = _dir_size(os.path.join(out, "session-B"))
+ size_a = _dir_size(session_a_dir)
+ size_b = _dir_size(session_b_dir)
deltas_match = session_a["dispatches"] == session_b["dispatches"] and session_a["ping_reply"] == session_b["ping_reply"]
manifest = {
"format": "greeneye-value-evidence/1",
@@ -155,8 +157,8 @@ def run() -> dict:
"sha256": C.sha256_file(C.DEMO_ELF),
},
"sessions": {
- "a": {"path": os.path.relpath(os.path.join(out, "session-A"), C.TOOL_ROOT), "bytes": size_a, "sha256_manifest": C.sha256_file(os.path.join(out, "session-A", "events.jsonl"))},
- "b": {"path": os.path.relpath(os.path.join(out, "session-B"), C.TOOL_ROOT), "bytes": size_b, "sha256_manifest": C.sha256_file(os.path.join(out, "session-B", "events.jsonl"))},
+ "a": {"path": os.path.relpath(session_a_dir, C.TOOL_ROOT), "bytes": size_a, "sha256_manifest": C.sha256_file(os.path.join(session_a_dir, "events.jsonl"))},
+ "b": {"path": os.path.relpath(session_b_dir, C.TOOL_ROOT), "bytes": size_b, "sha256_manifest": C.sha256_file(os.path.join(session_b_dir, "events.jsonl"))},
},
"stimulus": {"commands": [1, 5], "arg0": 0x1234, "note": "PING then STATE"},
"observed": {"a": session_a, "b": session_b, "delta_match": deltas_match},