Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 22 additions & 4 deletions docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,34 @@

## Testing of Reductionist

A majority of the application code in Reductionist is unit tested, and any new code should include unit tests where practical.
Unit tests in Rust code typically reside in the same file as the module being tested.

The [S3 Active Storage compliance test suite](https://github.com/stackhpc/s3-active-storage-compliance-suite/) should be updated to test any new features added to Reductionist.
Reductionist is tested at various levels.

### Continuous Integration (CI)

GitHub Actions is used for CI for pull requests.
It checks that the package builds, and passes various checks, unit and integration tests.

### Compliance/integration tests

The [S3 Active Storage compliance test suite](https://github.com/stackhpc/s3-active-storage-compliance-suite/) should be updated to test any new features added to Reductionist.

### Code style

Rust code style is enforced using `cargo fmt`.
This command will modify the source code to resolve any code style issues.
To check for code style issues without making changes, use `cargo fmt -- --check`.

### Linting

[Clippy](https://github.com/rust-lang/rust-clippy) is used to lint the source code.
Use `cargo clippy --all-targets -- -D warnings`.

### Unit tests

A majority of the application code in Reductionist is unit tested, and any new code should include unit tests where practical.
Unit tests in Rust code typically reside in the same file as the module being tested.
Unit tests can be run using `cargo test`.

### Benchmarks

Benchmark tests in the `benches` directory were created for various modules and used to make performance improvements.
Expand Down
Loading