Skip to content

fix: skip heavy recursion tests in debug builds#22446

Merged
ludamad merged 1 commit into
merge-train/barretenbergfrom
claudebox/selective-debug-tests
Apr 9, 2026
Merged

fix: skip heavy recursion tests in debug builds#22446
ludamad merged 1 commit into
merge-train/barretenbergfrom
claudebox/selective-debug-tests

Conversation

@AztecBot

@AztecBot AztecBot commented Apr 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Instead of bumping timeouts for slow tests in debug mode, skip them entirely.

HonkRecursionConstraintTest and ChonkRecursionConstraintTest take 400-600s in debug builds, hitting the 600s default timeout. These are heavy recursion constraint tests that build full recursive circuits — the same code paths are already exercised (with debug assertions) by faster tests in the suite.

This replaces the timeout-bump approach from PR #22347 with Adam's suggestion to be selective about what runs in debug mode.

Supersedes #22427

ClaudeBox log: https://claudebox.work/s/c3fd56d2f55c879c?run=2

…meouts

HonkRecursionConstraintTest and ChonkRecursionConstraintTest take 400-600s in
debug mode, hitting the 600s timeout. Rather than increasing the timeout, skip
them entirely in debug builds — the same code paths are exercised by faster
tests in the suite, and the debug build's purpose (catching UB/assertions) is
well-served without these slow recursion tests.
@AztecBot AztecBot added ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR. labels Apr 9, 2026
@ludamad ludamad marked this pull request as ready for review April 9, 2026 16:05
@ludamad ludamad enabled auto-merge (squash) April 9, 2026 16:05
@ludamad ludamad merged commit 484b133 into merge-train/barretenberg Apr 9, 2026
31 of 39 checks passed
@ludamad ludamad deleted the claudebox/selective-debug-tests branch April 9, 2026 16:16
federicobarbacovi pushed a commit that referenced this pull request Apr 10, 2026
…on coverage (#22389)

## Summary
Fixes nightly barretenberg debug build failure (CI run
https://github.com/AztecProtocol/aztec-packages/actions/runs/24228497408).

**Root cause:** `AvmRecursionInnerCircuitTests.Tampering` from
`vm2_tests` timed out at 600s. CI log:
http://ci.aztec-labs.com/ee4d306df4cbfd3c

**Fix:**
1. Add `AvmRecursionInnerCircuitTests` to the debug build skip list
(matching PR #22446 pattern)
2. Reinstate
`HonkRecursionConstraintTestWithoutPredicate/1.GenerateVKFromConstraints`
(241s, well within timeout) so the debug-only
`native_verification_debug` code path in
`honk_recursion_constraint.cpp:126` is still exercised

**Debug assertion audit of all skipped suites:**
- `HonkRecursionConstraintTest`: The only unique debug code is
`native_verification_debug` (`#ifndef NDEBUG`, line 126) — a native
side-verification sanity check. All tampering tests call
`BB_DISABLE_ASSERTS()` so no debug assertions fire there. We keep
`/1.GenerateVKFromConstraints` to cover this.
- `ChonkRecursionConstraintTest`: All `BB_ASSERT_DEBUG` in `chonk.cpp`
are disabled by `BB_DISABLE_ASSERTS()` in the test. `ChonkTests`
tampering (separate binary, not skipped) still runs.
- `AvmRecursionInnerCircuitTests`: Only `BB_ASSERT_LTE` (circuit size
bounds) which is hit on the happy path by `AvmRecursiveTests`.

ClaudeBox log: https://claudebox.work/s/7d8cbad767a56122?run=5
github-merge-queue Bot pushed a commit that referenced this pull request Apr 13, 2026
BEGIN_COMMIT_OVERRIDE
fix: skip heavy recursion tests in debug builds (#22446)
fix: add clear error for unsatisfiable ACIR AssertZero opcode (#22417)
feat: enforce accumulator_not_empty = 0 at ECCVM lagrange_first row
(#22461)
fix: skip heavy recursion tests in debug builds, keep one for assertion
coverage (#22389)
fix: external audit fixes for Pedersen (#22434)
chore!: fix BASE off-by-one in create_small_range_constraint in theta
step of keccak (#22404)
fix: external audit fixes for Keccak (#22436)
fix: external audit fixes for BLAKE (#22443)
chore: misc hash gadget updates  (#22452)
END_COMMIT_OVERRIDE
critesjosh pushed a commit that referenced this pull request Apr 14, 2026
## Summary
Instead of bumping timeouts for slow tests in debug mode, skip them
entirely.

`HonkRecursionConstraintTest` and `ChonkRecursionConstraintTest` take
400-600s in debug builds, hitting the 600s default timeout. These are
heavy recursion constraint tests that build full recursive circuits —
the same code paths are already exercised (with debug assertions) by
faster tests in the suite.

This replaces the timeout-bump approach from PR #22347 with Adam's
suggestion to be selective about what runs in debug mode.

Supersedes #22427

ClaudeBox log: https://claudebox.work/s/c3fd56d2f55c879c?run=2
critesjosh pushed a commit that referenced this pull request Apr 14, 2026
…on coverage (#22389)

## Summary
Fixes nightly barretenberg debug build failure (CI run
https://github.com/AztecProtocol/aztec-packages/actions/runs/24228497408).

**Root cause:** `AvmRecursionInnerCircuitTests.Tampering` from
`vm2_tests` timed out at 600s. CI log:
http://ci.aztec-labs.com/ee4d306df4cbfd3c

**Fix:**
1. Add `AvmRecursionInnerCircuitTests` to the debug build skip list
(matching PR #22446 pattern)
2. Reinstate
`HonkRecursionConstraintTestWithoutPredicate/1.GenerateVKFromConstraints`
(241s, well within timeout) so the debug-only
`native_verification_debug` code path in
`honk_recursion_constraint.cpp:126` is still exercised

**Debug assertion audit of all skipped suites:**
- `HonkRecursionConstraintTest`: The only unique debug code is
`native_verification_debug` (`#ifndef NDEBUG`, line 126) — a native
side-verification sanity check. All tampering tests call
`BB_DISABLE_ASSERTS()` so no debug assertions fire there. We keep
`/1.GenerateVKFromConstraints` to cover this.
- `ChonkRecursionConstraintTest`: All `BB_ASSERT_DEBUG` in `chonk.cpp`
are disabled by `BB_DISABLE_ASSERTS()` in the test. `ChonkTests`
tampering (separate binary, not skipped) still runs.
- `AvmRecursionInnerCircuitTests`: Only `BB_ASSERT_LTE` (circuit size
bounds) which is hit on the happy path by `AvmRecursiveTests`.

ClaudeBox log: https://claudebox.work/s/7d8cbad767a56122?run=5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants