-
Notifications
You must be signed in to change notification settings - Fork 8
45 lines (35 loc) · 1.47 KB
/
mutants.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 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
# TODO: maybe un-exclude fmt()
run: cargo mutants --package all-is-cubes --exclude-re '::fmt ->' --exclude tests.rs -- --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"