Test your Plugin
This guide shows you how to thoroughly test your IDA plugin before publishing it to the plugin repository, ensuring it meets quality standards and works correctly across different environments.
Problem Statement
You've developed an IDA plugin and want to test it comprehensively before releasing it to ensure:
The plugin metadata is valid
It installs correctly
It works across supported IDA versions
Python dependencies are properly declared
There are no common packaging errors
Prerequisites
HCLI installed (see Installation)
Your plugin with
ida-plugin.jsonfileValid IDA Pro installation (for runtime testing)
Authentication configured (for dependency installation)
Quick Validation Checklist
Before deep testing, ensure these basics:
Step-by-Step Testing Guide
Step 1: Validate Plugin Metadata with Lint
The first step is to validate your plugin structure and metadata:
For a directory:
For a ZIP archive:
For a GitHub release:
Step 2: Understand Lint Output
Success output:
Error output:
Step 3: Fix Common Validation Errors
Error: "Invalid JSON syntax"
Cause: Trailing commas or syntax errors in ida-plugin.json.
Solution: Use a JSON validator or jq:
Fix trailing commas:
Error: "Missing required field: plugin.version"
Cause: Version field is missing or empty.
Solution: Add semantic version:
Error: "Entry point file not found"
Cause: File specified in entryPoint doesn't exist.
Solution: Verify the file exists and path is correct. This path is relative to ida-plugin.json:
Error: "Python dependency not found on PyPI"
Cause: Typo in dependency name or package doesn't exist.
Solution: Verify package exists:
Fix in ida-plugin.json:
Error: "Invalid version specifier"
Cause: Version doesn't follow semantic versioning.
Solution: Use format MAJOR.MINOR.PATCH:
Step 4: Test Local Installation
Install your plugin from the local directory:
Expected output:
Step 5: Verify Installation
Check that the plugin is installed:
Output should include your plugin:
Verify plugin files were copied:
Step 6: Test in IDA Pro
Launch IDA Pro and verify:
Plugin loads without errors:
Check IDA console output for Python errors
Look for your plugin in Edit → Plugins menu
Plugin functionality works:
Execute main plugin features
Test edge cases
Verify hotkeys (if any)
Check for errors:
Step 7: Test Across IDA Versions
If your plugin supports multiple IDA versions, test each one:
Verify:
No API compatibility issues
All features work as expected
No deprecation warnings
Step 8: Test Plugin Configuration (if applicable)
If your plugin uses settings:
Step 9: Test Uninstallation
Verify clean removal:
Check that files are removed:
Re-install to continue testing:
Pre-Publishing Checklist
Before creating a GitHub release:
Metadata Completeness
Testing Complete
Documentation
Repository Setup
Common Testing Pitfalls
1. Not Testing on Clean IDA Installation
Problem: Plugin works on your system but fails for users.
Solution: Test with fresh IDA installation:
2. Hardcoded Paths
Problem: Plugin uses absolute paths that don't exist on other systems.
Solution: Use IDA SDK functions:
3. Missing Python Dependency Versions
Problem: Plugin works with latest dependency but breaks with older versions.
Solution: Specify minimum versions:
Prefer not to pin to specific versions (==2.28.0) because it's difficult for many plugins to agree on precisely the same version.
Reference Documentation
For more detailed information:
Getting Help
If you encounter issues:
Check the linter output:
hcli plugin lintprovides detailed error messages
Publishing Your Plugin
Once all tests pass:
Create a GitHub release with a semantic version tag (e.g.,
v1.0.0)Attach ZIP archive (if needed for native plugins)
Wait for the daily indexer run
Verify plugin appears:
hcli plugin search your-plugin
The plugin repository automatically discovers and indexes plugins with valid ida-plugin.json files!
Last updated
Was this helpful?
