fix: fix unbounded trace row generation for rv32im_hintbuffer #4549
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Extension Tests | |
| on: | |
| workflow_call: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["**"] | |
| paths: | |
| - "crates/circuits/**" | |
| - "crates/vm/**" | |
| - "crates/toolchain/**" | |
| - "extensions/**" | |
| - "Cargo.toml" | |
| - ".github/workflows/extension-tests.yml" | |
| concurrency: | |
| group: ${{ github.workflow_ref }}-extension-tests-${{ github.event.pull_request.number || github.sha }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| OPENVM_FAST_TEST: "1" | |
| OPENVM_SKIP_DEBUG: "1" | |
| jobs: | |
| extension-tests: | |
| strategy: | |
| matrix: | |
| extension: | |
| - { name: "rv32im", path: "rv32im", aot: false } | |
| - { name: "native", path: "native", aot: false } | |
| - { name: "keccak256", path: "keccak256", aot: false } | |
| - { name: "sha256", path: "sha256", aot: false } | |
| - { name: "bigint", path: "bigint", aot: false } | |
| - { name: "algebra", path: "algebra", aot: false } | |
| - { name: "ecc", path: "ecc", aot: false } | |
| - { name: "pairing", path: "pairing", aot: false } | |
| - { name: "rv32im", path: "rv32im", aot: true } | |
| - { name: "native", path: "native", aot: true } | |
| - { name: "keccak256", path: "keccak256", aot: true } | |
| - { name: "sha256", path: "sha256", aot: true } | |
| - { name: "bigint", path: "bigint", aot: true } | |
| - { name: "algebra", path: "algebra", aot: true } | |
| - { name: "ecc", path: "ecc", aot: true } | |
| - { name: "pairing", path: "pairing", aot: true } | |
| platform: | |
| - { runner: "64cpu-linux-x64", image: "ubuntu24-full-x64" } | |
| # Ensure tests run in parallel even if one fails | |
| fail-fast: false | |
| runs-on: | |
| - runs-on=${{ github.run_id }}-extension-tests-${{ github.run_attempt }}-${{ strategy.job-index }}/runner=${{ matrix.platform.runner }}/image=${{ matrix.platform.image }}/extras=s3-cache | |
| steps: | |
| - uses: runs-on/action@v2 | |
| - uses: actions/checkout@v5 | |
| - uses: dorny/paths-filter@v3 | |
| id: filter | |
| with: | |
| filters: | | |
| - "crates/circuits/**" | |
| - "crates/vm/**" | |
| - "crates/toolchain/**" | |
| - "extensions/${{ matrix.extension.path }}/**" | |
| - ".github/workflows/extension-tests.yml" | |
| - name: Skip if no changes | |
| if: steps.filter.outputs.matched == 'false' | |
| run: | | |
| echo "No relevant changes, skipping tests." | |
| exit 0 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| cache-on-failure: true | |
| - uses: taiki-e/install-action@nextest | |
| - name: Run ${{ format('{0}{1}', matrix.extension.name, matrix.extension.aot && '-aot' || '') }} circuit crate tests | |
| working-directory: extensions/${{ matrix.extension.path }}/circuit | |
| run: | | |
| TEST_THREADS="--test-threads=32" | |
| if [[ "${{ matrix.extension.name }}" == "algebra" ]]; then | |
| TEST_THREADS="--test-threads=4" | |
| fi | |
| if [[ "${{ matrix.extension.aot }}" == 'true' ]]; then | |
| cargo nextest run --cargo-profile=fast --features aot $TEST_THREADS --no-tests=pass --success-output=immediate | |
| else | |
| cargo nextest run --cargo-profile=fast $TEST_THREADS --no-tests=pass --success-output=immediate | |
| fi | |
| # We only need to run guest crate tests on CPU since we are not testing prover functionality | |
| - name: Run ${{ matrix.extension.name }} guest crate tests | |
| if: hashFiles(format('extensions/{0}/guest', matrix.extension.path)) != '' | |
| working-directory: extensions/${{ matrix.extension.path }}/guest | |
| run: | | |
| GUEST_FEATURE_ARGS="" | |
| if [[ "${{ matrix.extension.name }}" == "pairing" ]]; then | |
| GUEST_FEATURE_ARGS="--features=bn254,bls12_381,halo2curves" | |
| fi | |
| cargo nextest run --cargo-profile=fast $GUEST_FEATURE_ARGS --no-tests=pass | |
| - name: Run ${{ format('{0}{1}', matrix.extension.name, matrix.extension.aot && '-aot' || '') }} integration tests | |
| if: hashFiles(format('extensions/{0}/tests', matrix.extension.path)) != '' | |
| working-directory: extensions/${{ matrix.extension.path }}/tests | |
| run: | | |
| rustup component add rust-src --toolchain nightly-2025-08-02 | |
| if [[ "${{ matrix.extension.aot }}" == 'true' ]]; then | |
| cargo nextest run --cargo-profile=fast --features aot --profile=heavy --no-tests=pass --success-output=immediate | |
| else | |
| cargo nextest run --cargo-profile=fast --profile=heavy --no-tests=pass --success-output=immediate | |
| fi |