thixotropist / ghidra_import_tests

Experimental framework for testing Ghidra binary import support
1 stars 0 forks source link

Integrate toolchain tests with imported exemplars #3

Closed thixotropist closed 9 months ago

thixotropist commented 10 months ago

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:

  1. Generate postAnalysis test scripts for igc.ko and relocationTests.o, emitting *.json files
  2. Create a shared TestRunner.java script which inherits from GhidraScript and defines various memory assertions
  3. Refactor integrationTest.py so that it runs in the top level directory, invoking Makefile targets and toolchain builds as necessary
  4. Scrub the Makefile and other dependencies to avoid processing stale imports or test result files.
  5. Decide how to mark 'skipped' tests examining Ghidra import features that are not yet implemented.
  6. Rewrite Readme.md and other files to show how to do a full or partial integration test.
  7. 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.

thixotropist commented 9 months ago

Close as completed - more specific follow on issues are likely