Skip to content

ci(nightly): upscale QuickCheck tests in nightly test suite#7758

Open
knoal wants to merge 1 commit intoIntersectMBO:masterfrom
knoal:test/quickcheck-nightly-upscale-6322
Open

ci(nightly): upscale QuickCheck tests in nightly test suite#7758
knoal wants to merge 1 commit intoIntersectMBO:masterfrom
knoal:test/quickcheck-nightly-upscale-6322

Conversation

@knoal
Copy link
Copy Markdown

@knoal knoal commented May 1, 2026

What

Mirror the existing nightly HEDGEHOG_TESTS upscaling for QuickCheck so nightly runs also exercise QuickCheck-based generators with a larger sample count and size parameter (per #6322).

How

  • Adds two env vars in nightly-testsuite.yml:
    • QUICKCHECK_TESTS (default 100000)
    • QUICKCHECK_MAX_SIZE (default 500)
  • Adds matching workflow_dispatch inputs so they can be overridden manually.
  • Passes --quickcheck-tests $QUICKCHECK_TESTS --quickcheck-max-size $QUICKCHECK_MAX_SIZE to every test invocation that already passes --hedgehog-tests.

tasty-quickcheck recognises these flags out of the box, so no Haskell-side change is needed and the flags are inert in non-nightly runs.

Closes #6322.

…ntersectMBO#6322)

Mirror the existing HEDGEHOG_TESTS upscaling for QuickCheck so nightly
property runs also exercise QuickCheck-based generators with a larger
sample count and size parameter.

* Add QUICKCHECK_TESTS / QUICKCHECK_MAX_SIZE env vars (defaults
  100000 / 500), plus matching workflow_dispatch inputs.
* Pass --quickcheck-tests / --quickcheck-max-size to every test
  invocation that already passes --hedgehog-tests.

These flags are recognised by tasty-quickcheck and only take effect
in the nightly run.
@Unisay Unisay requested a review from Copilot May 4, 2026 08:07
@Unisay Unisay added the No Changelog Required Add this to skip the Changelog Check label May 4, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the nightly GitHub Actions test workflow to upscale QuickCheck property testing parameters (mirroring the existing Hedgehog upscaling), enabling more exhaustive generator testing in nightly runs and allowing manual overrides via workflow_dispatch inputs.

Changes:

  • Adds workflow_dispatch inputs for quickcheck-tests and quickcheck-max-size with high nightly defaults.
  • Introduces QUICKCHECK_TESTS and QUICKCHECK_MAX_SIZE environment variables with fallback defaults.
  • Passes --quickcheck-tests and --quickcheck-max-size to the nightly plutus-core-test and plutus-ir-test invocations.

Comment on lines 29 to +31
HEDGEHOG_TESTS: ${{ github.event.inputs.hedgehog-tests || 100000 }}
QUICKCHECK_TESTS: ${{ github.event.inputs.quickcheck-tests || 100000 }}
QUICKCHECK_MAX_SIZE: ${{ github.event.inputs.quickcheck-max-size || 500 }}
Copy link
Copy Markdown
Contributor

@Unisay Unisay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style nit: the existing hedgehog-tests block uses unquoted scalar descriptions and double-quoted defaults. Suggestion below normalizes the new inputs to the same convention so the file stays internally consistent.

Comment on lines +19 to +26
quickcheck-tests:
description: 'Number of QuickCheck tests to run per property'
required: false
default: '100000'
quickcheck-max-size:
description: 'Max QuickCheck size parameter'
required: false
default: '500'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
quickcheck-tests:
description: 'Number of QuickCheck tests to run per property'
required: false
default: '100000'
quickcheck-max-size:
description: 'Max QuickCheck size parameter'
required: false
default: '500'
quickcheck-tests:
description: Number of QuickCheck tests to run per property
required: false
default: "100000"
quickcheck-max-size:
description: Max QuickCheck size parameter
required: false
default: "500"

@Unisay Unisay self-assigned this May 4, 2026
@Unisay
Copy link
Copy Markdown
Contributor

Unisay commented May 4, 2026

Smoke-tested locally with the exact CI invocation (counts reduced to 1 to keep it fast):

nix run path:..#plutus-core-test  -- --hedgehog-tests 1 --quickcheck-tests 1 --quickcheck-max-size 1 --no-create
nix run path:..#plutus-ir-test    -- --hedgehog-tests 1 --quickcheck-tests 1 --quickcheck-max-size 1 --no-create

Both suites accept --quickcheck-tests / --quickcheck-max-size and run to green:

  • plutus-core-test: All 2294 tests passed (0.66s)
  • plutus-ir-test: All 332 tests passed (0.39s)

So my earlier concern about tasty rejecting unknown ingredient flags is unfounded — both suites link tasty-quickcheck. LGTM modulo the quoting nit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

No Changelog Required Add this to skip the Changelog Check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upscale QuickCheck tests in the nightly test suite

3 participants