Mutation Testing #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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" |