Skip to content

Add regression test suite, CI workflow, and codebase cleanup#37

Merged
astefano merged 3 commits intomasterfrom
la/add_regression_tests_v2
Feb 27, 2026
Merged

Add regression test suite, CI workflow, and codebase cleanup#37
astefano merged 3 commits intomasterfrom
la/add_regression_tests_v2

Conversation

@astefano
Copy link
Copy Markdown
Collaborator

Summary

  • Add 26 behavioral regression tests covering the full CLI pipeline (atomize, specify, verify, create) with a mock probe-verus binary so tests run without external tools
  • Add GitHub Actions CI workflow that runs cargo fmt --check, cargo clippy -D warnings, and cargo test on every PR
  • Fix atomize --no-probe to parse .md frontmatter directly instead of calling probe-verus stubify, making it fully self-contained for CI
  • Run cargo fmt across the codebase and fix 12 clippy warnings
  • Suppress dead_code warnings 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 -- --check passes
  • cargo clippy --all-targets --keep-going -- -D warnings passes
  • cargo test --workspace --no-fail-fast passes (17 unit + 26 regression)

Made with Cursor

Copilot AI review requested due to automatic review settings February 27, 2026 07:13
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.rs covering atomize, specify, verify, and create commands with a mock probe-verus binary
  • Added GitHub Actions CI workflow (.github/workflows/ci.yml) running fmt, clippy, and tests on every PR
  • Implemented load_stubs_from_md_files() in src/commands/atomize.rs to parse .md frontmatter directly when using --no-probe, making atomize self-contained for CI
  • Applied cargo fmt across 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.

astefano and others added 2 commits February 27, 2026 08:41
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
@astefano astefano force-pushed the la/add_regression_tests_v2 branch from 247858a to d304d2c Compare February 27, 2026 07:41
Copilot AI review requested due to automatic review settings February 27, 2026 07:41
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@astefano astefano requested a review from avrevic February 27, 2026 07:46
avrevic
avrevic previously approved these changes Feb 27, 2026
Copy link
Copy Markdown
Contributor

@avrevic avrevic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks solid!

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
@astefano astefano merged commit 5a34076 into master Feb 27, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants