Commit Graph
11 Commits
Author SHA1 Message Date
Alexander KiselevandClaude Opus 4.6 872d893729 ci: add ghidra-setup job, unify project names for cache sharing
All test files now use "ci-test" as the project name so they share a
single import+analyze cycle. A dedicated ghidra-setup job runs first to
install Ghidra and create the test project, seeding caches for the test
jobs that follow via `needs:`. This solves the chicken-and-egg problem
where Windows cold runs timeout before caches can be saved.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 16:36:16 -08:00
Alexander Kiselev 660cb33014 test consolidation and CI fixes 2026-02-06 08:40:18 -08:00
Alexander KiselevandClaude Opus 4.6 a5a7ed1423 fix: type apply test - accept instruction conflict at code address
Applying a data type at a function entry point conflicts with
existing instructions in Ghidra's listing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 20:08:47 -08:00
Alexander KiselevandClaude Opus 4.6 a8d6c687a6 fix: fix find/symbol/type test assertions for CI compatibility
- find_tests: remove "results" wrapper assertions (output is JSON array),
  use add_numbers instead of printf for find calls test
- symbol_tests: use dynamic address resolution instead of hardcoded 0x1000/0x2000,
  remove "symbols" wrapper assertion
- type_tests: use dynamic address resolution for type apply test,
  remove "types" wrapper assertion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 15:26:01 -08:00
Alexander KiselevandClaude Opus 4.6 ae2d882f26 fix: add --project/--program to BatchArgs and fix arg order in tests
BatchArgs was missing --project and --program fields, so batch commands
couldn't specify which project to use. Also fixed argument ordering in
all test files to place --project/--program after the subcommand name,
matching clap's per-subcommand argument parsing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 13:19:16 -08:00
Alexander KiselevandClaude Opus 4.6 5b595ab58a fix: add require_ghidra!() guard to all integration tests
Tests that use DaemonTestHarness or ensure_test_project were missing the
require_ghidra!() macro, causing them to attempt bridge startup in CI
where Ghidra is not installed, resulting in 120s timeouts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 12:44:11 -08:00
Alexander Kiselev a550ad1d35 more work on v2 java bridge 2026-02-04 14:14:15 -08:00
Alexander Kiselev ac1fb7b931 v2 wip 2026-02-04 14:04:32 -08:00
Alexander Kiselev 76fde9c3f7 Getting ready for v0.1.0 2026-01-26 16:04:00 -08:00
Alexander Kiselev 912cd0137b feat: Add PyGhidra installation support and enhance daemon command handling
- Implemented `install_pyghidra` function to set up PyGhidra in a Python virtual environment for Ghidra installations.
- Enhanced `install_ghidra` to call `install_pyghidra` after Ghidra installation.
- Updated daemon command handling to include program name in start, restart, and stop commands.
- Refactored project path resolution to streamline project management.
- Improved socket path handling to respect `GHIDRA_CLI_SOCKET` environment variable for testing.
- Modified tests to remove ignore flags, allowing for automated testing without Ghidra installation.
- Added analysis step in test project setup to ensure comments and other features work correctly.
2026-01-25 16:39:23 -08:00
Alexander KiselevandClaude Opus 4.5 a1cf872189 feat: Implement all analysis commands with daemon routing
Add complete implementation for all stub commands:
- Symbol operations (list, get, create, rename, delete)
- Type operations (list, get, create, apply)
- Comment operations (list, get, set, delete)
- Graph operations (calls, callers, callees, export)
- Find operations (string, bytes, function, calls, crypto, interesting)
- Diff operations (programs, functions)
- Patch operations (bytes, nop, export)
- Script operations (list, run, python inline)
- Disasm command (disassembly at address)
- Batch operations (execute commands from file)
- Stats command (program statistics)

Fix critical routing bug where new commands fell through to
"Command not yet implemented" instead of being routed to daemon.

Add ExecuteCli IPC command for forwarding CLI commands through daemon.
Add comprehensive integration tests for all new commands.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 07:08:59 -08:00