Add regression test suite, CI workflow, and codebase cleanup#37
Add regression test suite, CI workflow, and codebase cleanup#37
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request adds a comprehensive regression test suite, CI workflow automation, and performs codebase cleanup to enforce code quality standards. The changes enable fully automated testing of the CLI pipeline without requiring external tools like probe-verus, using a mock binary for end-to-end testing.
Changes:
- Added 26 regression tests in
tests/regression_test.rscovering atomize, specify, verify, and create commands with a mockprobe-verusbinary - Added GitHub Actions CI workflow (
.github/workflows/ci.yml) running fmt, clippy, and tests on every PR - Implemented
load_stubs_from_md_files()insrc/commands/atomize.rsto parse .md frontmatter directly when using--no-probe, making atomize self-contained for CI - Applied
cargo fmtacross all source files and fixed 12 clippy warnings - Added
#![allow(dead_code)]suppressions with issue references (#36) to 5 WIP modules not yet exposed in CLI
Reviewed changes
Copilot reviewed 35 out of 36 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
tests/regression_test.rs |
New comprehensive test suite with 26 behavioral tests covering full CLI pipeline |
tests/helpers/mock_probe_verus.rs |
Mock probe-verus binary that returns fixture data for testing |
tests/fixtures/tracked_functions.csv |
CSV fixture for mock probe-verus tracked-csv command |
tests/fixtures/config_auto_validate.json |
Config fixture enabling auto-validate for specify tests |
tests/structure_commands_test.rs |
Deleted old test file (replaced by regression_test.rs) |
.github/workflows/ci.yml |
New CI workflow running fmt, clippy, and tests on ubuntu-latest |
src/commands/atomize.rs |
Added load_stubs_from_md_files() for --no-probe frontmatter parsing |
src/executor.rs |
Simplified ExecutionMode to use derive(Default) instead of manual impl |
src/commands/{api,deploy,types}.rs |
Added dead_code suppressions with issue #36 references |
src/download/{client,types}.rs |
Added dead_code suppressions with issue #36 references |
src/**/*.rs (17 files) |
Applied cargo fmt formatting and fixed clippy warnings |
Cargo.toml |
Added mock-probe-verus binary target for tests |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
dd95923 to
247858a
Compare
Replace structure_commands_test.rs with 26 behavioral regression tests covering atomize, specify, verify, create, and the full pipeline. Tests use a mock probe-verus binary so they run without external tools. Also fix atomize --no-probe to parse .md frontmatter directly instead of calling probe-verus stubify, making it fully self-contained for CI. Made-with: Cursor Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…modules - Format entire codebase with cargo fmt - Fix 12 clippy warnings: empty else branch, is_some_and, derive Default, needless borrows, ptr_arg, unnecessary_unwrap, too_many_arguments - Add #![allow(dead_code)] to modules not yet wired into the CLI: api.rs, deploy.rs, commands/types.rs, download/client.rs, download/types.rs Made-with: Cursor Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Made-with: Cursor
247858a to
d304d2c
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 34 out of 35 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Convert struct_verif_proj.pdf into docs/design.md (excluding deprecated appendices) and add (design: Section X.Y) references to regression test doc comments that trace back to specific requirements. Co-authored-by: Shaowei Lin <shaowei@gmail.com> Made-with: Cursor Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Made-with: Cursor
Summary
probe-verusbinary so tests run without external toolscargo fmt --check,cargo clippy -D warnings, andcargo teston every PRatomize --no-probeto parse.mdfrontmatter directly instead of callingprobe-verus stubify, making it fully self-contained for CIcargo fmtacross the codebase and fix 12 clippy warningsdead_codewarnings in 5 WIP modules not yet wired into the CLI (tracked in Clean up dead code suppressed with #[allow(dead_code)] #36)Test plan
cargo fmt -- --checkpassescargo clippy --all-targets --keep-going -- -D warningspassescargo test --workspace --no-fail-fastpasses (17 unit + 26 regression)Made with Cursor