From c9e2c0a953e92b442b66ac8b3830a8f77d81e24f Mon Sep 17 00:00:00 2001 From: Aditya Mukhopadhyay Date: Sat, 7 Nov 2026 09:45:58 +0530 Subject: [PATCH] ci: run the #863 nightly candidate acceptance suite on v3 smoke.yml's v3 acceptance matrix gains nightly-candidates, and the verifier requires its six named tests (#863). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01H2a7QoYX6tc5G3sKVzvLjD --- .github/acceptance/test_verify.py | 11 ++++++++++- .github/acceptance/verify.py | 6 ++++++ .github/workflows/smoke.yml | 10 ++++++++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/.github/acceptance/test_verify.py b/.github/acceptance/test_verify.py index 063a7524d..7359dbcaf 100644 --- a/.github/acceptance/test_verify.py +++ b/.github/acceptance/test_verify.py @@ -1,7 +1,7 @@ """Regression checks for false-green acceptance output (no third-party modules).""" import unittest -from verify import verify +from verify import SUITES, verify class AcceptanceOutputTests(unittest.TestCase): @@ -46,6 +46,15 @@ def test_storage_test_full_name_is_required(self): with self.assertRaises(ValueError): verify(self.output(['unrelated']), [name], []) + def test_nightly_candidates_suite_needs_all_six(self): + names, rss = SUITES['nightly-candidates'] + self.assertEqual(len(names), 6) + # The port check is not ignored, so `--ignored` filters it out. + output = self.output(names).replace('0 filtered out', '1 filtered out') + verify(output, names, rss) + with self.assertRaises(ValueError): + verify(self.output(names[:5]), names, rss) + if __name__ == '__main__': unittest.main() diff --git a/.github/acceptance/verify.py b/.github/acceptance/verify.py index b3c58790e..47ae0b2a9 100644 --- a/.github/acceptance/verify.py +++ b/.github/acceptance/verify.py @@ -18,6 +18,12 @@ [], ), 'size-per-fact': (['storage::persistent_facts::tests::size_per_fact_in_433_shape_1m'], []), + 'nightly-candidates': ( + ['n1_skew_running_sum_streams_by_partition', 'n2_set_membership_k256', + 'n3_sort_heap_holds_offset_plus_limit', 'n4_small_tree_takes_ancestor_alternative', + 'n5_committed_tree_uses_bound_value_probes', 'n6_held_cursor_quarantine_and_reuse'], + [], + ), } diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index 221bea3e4..a64542efb 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -43,7 +43,7 @@ jobs: echo "sha=$sha" >> "$GITHUB_OUTPUT" echo "Measured source: $sha; workflow: ${{ github.workflow_sha }}" >> "$GITHUB_STEP_SUMMARY" acceptance=true - for test in recursive memory_limit limit large_transaction; do + for test in recursive memory_limit limit large_transaction nightly_candidates; do if [ ! -f "tests/${test}_acceptance_test.rs" ]; then acceptance=false fi @@ -105,6 +105,12 @@ jobs: - name: size-per-fact timeout: 15 command: cargo test --lib size_per_fact_in_433_shape_1m -- --include-ignored --nocapture + # #863: answers, path events and charged memory of the qualified #841 + # candidates (times are in bench.yml). Six tests took 37-57 s on + # ubuntu-latest after the build. + - name: nightly-candidates + timeout: 30 + command: cargo test --profile bench --features test-hooks --test nightly_candidates_acceptance_test -- --ignored --nocapture --test-threads=1 steps: - uses: actions/checkout@v4 with: @@ -163,6 +169,6 @@ jobs: merge-multiple: false - name: Require the complete test inventory and measured RSS checks run: | - for suite in recursive memory-limit limit large-transaction size-per-fact; do + for suite in recursive memory-limit limit large-transaction size-per-fact nightly-candidates; do python3 -I .github/acceptance/verify.py "$suite" "acceptance-artifacts/acceptance-$suite/acceptance.txt" done