mirror of
https://github.com/minio/minio-rs.git
synced 2025-12-06 15:26:51 +08:00
Reorganize project structure to improve maintainability and add comprehensive testing documentation and tooling support.
83 lines
3.3 KiB
Markdown
83 lines
3.3 KiB
Markdown
# Check Test Coverage
|
|
|
|
Analyze code coverage for the MinIO Rust SDK and provide a detailed report.
|
|
|
|
## Your Task
|
|
|
|
1. **Install cargo-llvm-cov if needed**
|
|
- Check if llvm-cov is installed: `cargo llvm-cov --version`
|
|
- If not installed: `cargo install cargo-llvm-cov`
|
|
- This tool works well on Windows and all platforms
|
|
|
|
2. **Run Coverage Analysis**
|
|
- First try: `cargo llvm-cov --lib --tests` (includes unit tests only)
|
|
- Try to also include integration tests: `cargo llvm-cov --all-targets --tests`
|
|
- For HTML report: `cargo llvm-cov --lib --tests --html --output-dir target/coverage`
|
|
- For detailed output: `cargo llvm-cov --lib --tests --text`
|
|
- Focus on library code, not test code itself
|
|
- **Important**: Integration tests in `tests/` directory may cover API functions and client operations
|
|
|
|
3. **Parse and Present Results**
|
|
- Show overall coverage percentage (from both unit and integration tests)
|
|
- List files with their coverage percentages
|
|
- Identify files/functions with <100% coverage
|
|
- Highlight critical uncovered code paths in `src/madmin` and `src/s3`
|
|
- Separate coverage by module (madmin vs s3)
|
|
- **Note**: Report which coverage comes from unit tests vs integration tests
|
|
- Call out API/client methods that are covered by integration tests
|
|
|
|
4. **Provide Actionable Report**
|
|
Present findings in this format:
|
|
|
|
```
|
|
## Coverage Summary
|
|
- Overall: XX.XX% (from unit + integration tests combined)
|
|
- Unit Test Coverage: XX.XX%
|
|
- Integration Test Coverage: XX.XX%
|
|
- Lines covered: XXXX / XXXX
|
|
- Functions covered: XXX / XXX
|
|
|
|
### Module Breakdown
|
|
- src/madmin: XX.XX% (XXXX/XXXX lines) [Unit XX% / Integration XX%]
|
|
- src/s3: XX.XX% (XXXX/XXXX lines) [Unit XX% / Integration XX%]
|
|
|
|
## API/Client Methods Covered by Integration Tests
|
|
- src/s3/client/put_object.rs - covered by integration tests
|
|
- src/s3/response/list_objects.rs - covered by integration tests
|
|
- [List all methods with integration test coverage]
|
|
|
|
## Files Below 100% Coverage
|
|
|
|
### MinIO Admin (madmin)
|
|
#### src/madmin/builders/some_file.rs (XX.XX%)
|
|
- Line 45-52: Error handling path not tested (both unit and integration)
|
|
- Line 78: Builder method combination not covered
|
|
|
|
#### src/madmin/response/other_file.rs (XX.XX%)
|
|
- Line 23-25: JSON parsing error path missing test
|
|
|
|
### S3 API (s3)
|
|
#### src/s3/client.rs (XX.XX%)
|
|
- Line 123-130: Error handling for network failures
|
|
- Line 245: Retry logic not tested
|
|
|
|
#### src/s3/args/some_arg.rs (XX.XX%)
|
|
- Line 67-70: Validation edge case
|
|
|
|
## Recommendations
|
|
1. [madmin] Add test for error case in some_file.rs:45-52
|
|
2. [madmin] Test builder method combinations in some_file.rs:78
|
|
3. [s3] Add network failure test in client.rs:123-130
|
|
4. [s3] Test validation edge case in args/some_arg.rs:67-70
|
|
5. Investigate which integration tests are failing and fix them to improve coverage
|
|
```
|
|
|
|
5. **Suggest Next Steps**
|
|
- Recommend which tests to write first (prioritize critical paths)
|
|
- Indicate which API methods ARE covered by integration tests vs which are not
|
|
- Note which integration tests are failing/skipped and why
|
|
- Suggest whether to run `/test-coverage` to auto-generate tests for uncovered paths
|
|
- Identify if any coverage gaps are in trivial code that can be ignored
|
|
|
|
Do not make any code changes - only analyze and report.
|