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
* Use cargo-nextest for Rust tests
Signed-off-by: lucarlig <luca.carlig@ibm.com>
* Address PR #68 review follow-ups for CI tooling and validation.
Use binary installs for cargo-nextest/cargo-mutants, extract CI selection validation into a maintainable Python script, and document why Python::initialize() is required in the rate_limiter test under nextest process isolation.
Signed-off-by: lucarlig <luca.carlig@ibm.com>
* Remove taiki-e action usage from CI workflows.
Install cargo-nextest via the official nexte.st binary script on Linux and keep a cargo-install fallback for non-Linux matrix jobs so IBM org action allowlists are no longer required.
Signed-off-by: lucarlig <luca.carlig@ibm.com>
* Fix CI workflow contract expected by plugin-catalog tests.
Keep the IBM-allowed nextest installer path while restoring canonical step names and single-step install blocks so workflow-shape tests pass without reintroducing disallowed actions.
Signed-off-by: lucarlig <luca.carlig@ibm.com>
* Use nextest binary installer on macOS CI
Install cargo-nextest from official macOS binaries to avoid source builds on macOS runners while keeping the existing Windows fallback.
Signed-off-by: lucarlig <luca.carlig@ibm.com>
* Fix nextest macOS installer URL
Signed-off-by: lucarlig <luca.carlig@ibm.com>
* Fix PR mutation diff scope
Signed-off-by: lucarlig <luca.carlig@ibm.com>
---------
Signed-off-by: lucarlig <luca.carlig@ibm.com>
Set `NEXTEST_PROFILE=ci` to use the repository CI profile locally. The CI profile is defined in `.config/nextest.toml`; it disables fail-fast so all Rust test failures are reported in one run.
39
+
37
40
Equivalent repo-level helper:
38
41
39
42
```bash
@@ -51,6 +54,7 @@ To run the same coverage check locally for all managed Rust plugins:
Rust unit tests use `cargo nextest run`. Coverage uses `cargo llvm-cov nextest --no-report` for the Rust test phase, then runs pytest before generating the final report so PyO3 paths stay covered. CI uses the `ci` nextest profile, which disables fail-fast and prints failure output immediately and again at the end. Nextest does not run Rust doctests; this repo currently has no Rust doctest code blocks, so there is no separate doctest step.
85
+
86
+
Criterion benchmarks are verified in CI with `cargo nextest run --benches -E 'kind(bench)' --no-run`, which compiles benchmark test targets without rerunning normal unit tests or collecting noisy performance measurements on shared CI runners.
87
+
88
+
## 4. Mutation Testing
89
+
90
+
Mutation testing runs in PR CI on Ubuntu for Rust code touched by the pull request diff. It is also available locally through cargo-mutants and runs Rust tests with nextest.
make plugin-mutants-list PLUGIN=retry_with_backoff
96
+
make plugin-mutants PLUGIN=retry_with_backoff
97
+
```
98
+
99
+
`.cargo/mutants.toml` sets `test_tool = "nextest"`, selects the `mutants` nextest profile, and keeps `cap_lints = false` so Rust warnings are not downgraded during mutant builds. The `mutants` profile keeps fail-fast enabled because cargo-mutants only needs one failing test to mark a mutant as caught. CI installs `cargo-mutants` with `cargo install cargo-mutants --version 27.0.0 --locked` and runs `cargo mutants "${cargo_args[@]}"`, using `--in-diff cargo-mutants.diff` for Rust source changes and full-package mutation for mutation-tooling config changes.
100
+
80
101
## CI Behavior
81
102
82
103
Repo contract tests run in their own CI workflow. The Rust plugin CI workflow uses the same plugin catalog to select affected plugin build, integration, and coverage jobs.
0 commit comments