Follow-up from PR #305
The Kani tooling and local smoke targets introduced in #305 require automated tests and improved documentation for the new shell scripts and Makefile targets.
Note: Tests for shell scripts must be written in Python using pytest and pytest-bdd (where appropriate), using:
❌ Errors
1. Testing (Overall)
Substantial functionality was added (installer, version checks, Makefile targets) with only manual smoke validation. No automated tests prevent future regressions or catch broken implementations.
Resolution: Add tests for:
scripts/install-kani.sh — version format validation, missing-file handling
scripts/check-kani-version.sh — version mismatch detection, missing pin file, malformed version output
- Makefile targets (
kani, kani-full, formal-pr) via shell integration tests
2. Module-Level Documentation
New Bash scripts contain only single-line doc comments. The project requires comprehensive header comments explaining purpose, utility, function, and relationships to other components.
Resolution: Expand module-level documentation in:
scripts/install-kani.sh
scripts/check-kani-version.sh
Each script's header must cover: purpose, utility, function, parameters, exit codes, and Makefile integration.
⚠️ Warnings
3. Docstring Coverage
Docstring coverage is 0.00%, below the required threshold of 80.00%.
Resolution: Write docstrings for all functions in the new scripts (at minimum fail() and require_command() in scripts/install-kani.sh).
4. Testing (Unit and Behavioural)
PR adds Makefile targets and shell scripts for command-line execution but provides no tests for them. The project requires tests for system-level behaviour changes.
Resolution: Add tests covering:
- Shell scripts' error paths (e.g., missing
cargo, malformed version pin, version mismatch)
- Edge cases and invariants for
check-kani-version.sh
- Makefile target invocation and expected output
Raised by @leynos from review of #305.
Follow-up from PR #305
The Kani tooling and local smoke targets introduced in #305 require automated tests and improved documentation for the new shell scripts and Makefile targets.
❌ Errors
1. Testing (Overall)
Substantial functionality was added (installer, version checks, Makefile targets) with only manual smoke validation. No automated tests prevent future regressions or catch broken implementations.
Resolution: Add tests for:
scripts/install-kani.sh— version format validation, missing-file handlingscripts/check-kani-version.sh— version mismatch detection, missing pin file, malformed version outputkani,kani-full,formal-pr) via shell integration tests2. Module-Level Documentation
New Bash scripts contain only single-line doc comments. The project requires comprehensive header comments explaining purpose, utility, function, and relationships to other components.
Resolution: Expand module-level documentation in:
scripts/install-kani.shscripts/check-kani-version.shEach script's header must cover: purpose, utility, function, parameters, exit codes, and Makefile integration.
3. Docstring Coverage
Docstring coverage is 0.00%, below the required threshold of 80.00%.
Resolution: Write docstrings for all functions in the new scripts (at minimum
fail()andrequire_command()inscripts/install-kani.sh).4. Testing (Unit and Behavioural)
PR adds Makefile targets and shell scripts for command-line execution but provides no tests for them. The project requires tests for system-level behaviour changes.
Resolution: Add tests covering:
cargo, malformed version pin, version mismatch)check-kani-version.shRaised by @leynos from review of #305.