Skip to content

Mutation Testing

Mutation Testing #6

Workflow file for this run

# Note that incremental mutation testing is done in ci.yml
name: Mutation Testing
permissions: {}
on: [workflow_dispatch]
env:
CARGO_TERM_COLOR: always
jobs:
mutants:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
# Not sure if this is strictly necessary -- but it is if GitHub Actions images aren't
# always as up to date than we want.
run: rustup toolchain install stable --profile=minimal
- name: Install cargo-mutants
run: cargo install --version 24.1.0 cargo-mutants
- name: Run mutation testing for all-is-cubes
timeout-minutes: 60
run: cargo mutants --package all-is-cubes -- --all-features
# TODO: Other crates' reasons for non-inclusion:
# all-is-cubes-content: insufficient test coverage
# all-is-cubes-desktop: insufficient test coverage, unclear if even feasible
# all-is-cubes-gpu: mainly tested via test-renderers which won't run directly
# all-is-cubes-port: TODO add it
# all-is-cubes-mesh: TODO add it
# all-is-cubes-server: TODO write enough tests that this is workable
# all-is-cubes-wasm: not relevantly testable
- name: Save results
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: mutation-report
path: "mutants.out"