Importing exemplars from the Fedora37 disk image doesn't make regression failures obvious. We want instead that each imported object - either from the imported disk image or compiled via the toolchain - has an associated Ghidra postAnalysis script. Tests in those scripts write json test result files, which can be processed by a Python integration test harness.
This plan has several steps:
Generate postAnalysis test scripts for igc.ko and relocationTests.o, emitting *.json files
Create a shared TestRunner.java script which inherits from GhidraScript and defines various memory assertions
Refactor integrationTest.py so that it runs in the top level directory, invoking Makefile targets and toolchain builds as necessary
Scrub the Makefile and other dependencies to avoid processing stale imports or test result files.
Decide how to mark 'skipped' tests examining Ghidra import features that are not yet implemented.
Rewrite Readme.md and other files to show how to do a full or partial integration test.
Start a TechnicalDebt.md page enumerating the shortcuts taken that ought to get more design work.
We can merge with the main branch as soon as we get a top-level integrationTest.py that detects relocation failures in both igc.ko and relocationTests.o.
Importing exemplars from the Fedora37 disk image doesn't make regression failures obvious. We want instead that each imported object - either from the imported disk image or compiled via the toolchain - has an associated Ghidra postAnalysis script. Tests in those scripts write json test result files, which can be processed by a Python integration test harness.
This plan has several steps:
igc.ko
andrelocationTests.o
, emitting*.json
filesReadme.md
and other files to show how to do a full or partial integration test.TechnicalDebt.md
page enumerating the shortcuts taken that ought to get more design work.We can merge with the main branch as soon as we get a top-level integrationTest.py that detects relocation failures in both
igc.ko
andrelocationTests.o
.