diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index f9a48c9..48e699b 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -47,8 +47,36 @@ jobs: - uses: actions/checkout@v4 - uses: jdx/mise-action@v2 - run: just mutants-import + - run: just mutants-config - if: always() uses: actions/upload-artifact@v4 with: name: mutants-import - path: mutants-import/mutants.out + path: | + mutants-import/mutants.out + mutants-config/mutants.out + mutants-mcp: + runs-on: ubuntu-24.04 + timeout-minutes: 350 + steps: + - uses: actions/checkout@v4 + - uses: jdx/mise-action@v2 + - run: just mutants-mcp + - if: always() + uses: actions/upload-artifact@v4 + with: + name: mutants-mcp + path: mutants-mcp/mutants.out + mutants-gui: + runs-on: ubuntu-24.04 + timeout-minutes: 350 + steps: + - uses: actions/checkout@v4 + - uses: jdx/mise-action@v2 + - run: sudo apt-get update && sudo apt-get install -y libxkbcommon-dev libgtk-3-dev + - run: just mutants-gui + - if: always() + uses: actions/upload-artifact@v4 + with: + name: mutants-gui + path: mutants-gui/mutants.out diff --git a/.gitignore b/.gitignore index 00a2377..d17ecbb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ site/dist/ /mutants.out*/ /mutants-store/ /mutants-import/ +/mutants-config/ +/mutants-mcp/ +/mutants-gui/ diff --git a/justfile b/justfile index fd7570d..bc7136c 100644 --- a/justfile +++ b/justfile @@ -76,6 +76,19 @@ mutants-store: mutants-import: cargo mutants -p ledger-import --test-package ledger-import -j 4 --timeout 300 -o mutants-import +# Mutation testing of the settings parser and the receipt policy. +mutants-config: + cargo mutants -p ledger-config --test-package ledger-config -j 4 --timeout 120 -o mutants-config + +# Mutation testing of the MCP server (every mutant runs the stdio suites). +mutants-mcp: + cargo mutants -p ledger-mcp --test-package ledger-mcp -j 4 --timeout 600 -o mutants-mcp + +# Mutation testing of the viewer's logic (formatting, file names, history, +# search, ticks, the view model, the attention list; not the painting). +mutants-gui: + cargo mutants -p ledger-gui --test-package ledger-gui -j 4 --timeout 300 -o mutants-gui -f crates/ledger-gui/src/fmt.rs -f crates/ledger-gui/src/export.rs -f crates/ledger-gui/src/nav.rs -f crates/ledger-gui/src/attention.rs -f crates/ledger-gui/src/books.rs -f crates/ledger-gui/src/palette.rs -f crates/ledger-gui/src/charts.rs + # Benchmarks of the core's hot paths (no budget gates them yet) bench: cargo bench -p ledger-core --bench books