You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#### Overview
Reduce normal hermetic test execution time by building dynamic-plugin fixtures once per test command and reusing them across Rust, Python, FFI, and Go tests. The updated suites keep all observed individual tests below five seconds while preserving package-build coverage outside normal test cases.
- [x] I confirm this contribution is my own work, or I have the right to submit it under this project's license.
- [x] I searched existing issues and open pull requests, and this does not duplicate existing work.
#### Details
- Add `just build-test-plugin-fixtures` and a stable, platform-specific fixture path contract under `target/test-plugin-fixtures`.
- Prepare fixtures automatically in the Rust, Python, and Go test recipes; focused raw tests now fail quickly with preparation instructions when fixtures are missing.
- Move the Python wheel/sdist/rebuild/import regression from pytest into `package-python-plugin`.
- Make every Redis integration test honor `NEMO_RELAY_RUN_REDIS_TESTS` before connecting.
- Reduce test-only real-time guards to five seconds, add pytest slow-duration reporting, and lower reusable Rust, Python, Node, and Go test-job limits from 120 to 30 minutes.
- Document the fixture workflow and five-second test design expectation in contributor guidance and affected maintainer skills.
- No public runtime, binding, ABI, or package API changes.
Validation:
- `just ci=true test-rust`: 3,850 passed in 33.1s; slowest test 3.687s.
- `just ci=true test-python`: 639 passed in 14.94s; slowest test 2.01s.
- `just test-python-plugin`: 124 passed in 2.36s; Python worker round trip passed in 1.03s.
- `just ci=true test-go`: passed; main package completed in 3.52s.
- `just test-node`: 353 passed; slowest individual test 1.115s.
- Focused native, worker, and FFI plugin suites completed in 0.95s, 1.53s, and 0.16s respectively; non-opted-in Redis tests skipped in effectively 0.00s.
- `just package-python-plugin`
- `cargo fmt --all`
- `cargo clippy --workspace --all-targets -- -D warnings`
- `uv run pre-commit run --all-files`
- `just docs`
`just ci=true test-node` could not run locally because the installed executable reports Node 26.5.0, outside the repository's supported Node 24 toolchain, and the pinned `c8`/`yargs` coverage wrapper fails before starting tests. The underlying Node suite passes as reported above.
#### Where should the reviewer start?
Start with the shared fixture preparation in `justfile`, then review the native and worker consumers in `crates/core/tests/integration/` and the package validation moved to `scripts/validate_python_plugin_package.py`.
#### Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)
- Relates to: none
## Summary by CodeRabbit
- **Tests**
- Dynamic plugin tests now use prebuilt fixtures, improving consistency and reducing test setup time.
- Redis integration tests skip cleanly unless explicitly enabled.
- Test and process timeouts were standardized at five seconds, helping failures surface sooner.
- Added comprehensive validation for Python plugin packages, including wheels, source archives, rebuilding, installation, and generated bindings.
- **Documentation**
- Updated testing guidance and validation commands for plugin fixtures and package checks.
- **Chores**
- Reduced CI job limits from 120 minutes to 30 minutes.
Authors:
- Will Killian (https://github.com/willkill07)
Approvers:
- Eric Evans II (https://github.com/ericevans-nv)
URL: #726
0 commit comments