Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .github/workflows/pr_main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@ jobs:
run: |
cargo test --release -p executor --test flamegraph

# The unit tests under `executor/src/tests/` are a *lib* target (`pub mod tests;`
# in lib.rs), which none of the `--test <name>` steps above select — and the
# `test_ckzg` step below filters by name, so it doesn't run them either. Without
# this step they never run in CI. It shares the lib test binary with that step,
# so it costs a test run, not an extra compile.
- name: Run executor lib unit tests
run: |
cargo test --release -p executor --lib

- name: Run ignored executor tests
run: |
cargo test --release -p executor test_ckzg -- --ignored
Expand Down Expand Up @@ -169,6 +178,9 @@ jobs:
- name: Run syscalls host tests (keccak differential vs sha3)
run: make test-syscalls

- name: Run ethrex-crypto host tests (hint verify-then-fallback + ecrecover)
run: make test-ethrex-crypto

# "Test" is a required check — keep this name to avoid branch protection changes.
# This gate job passes only when CLI, executor, disk-spill, and prover tests succeed.
test:
Expand Down
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 15 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ ASM_LDFLAGS ?= -fuse-ld=lld -nostdlib -Wl,-e,main
# Custom RV64IM target spec location
RV64_TARGET_SPEC=$(CURDIR)/executor/programs/riscv64im-lambda-vm-elf.json

.PHONY: test prepare-sysroot
.PHONY: test test-syscalls test-ethrex-crypto prepare-sysroot

# The guard checks for include/stdlib.h (not just the include/ dir) so that a PARTIAL
# sysroot — directories present but missing the C standard library headers — is detected
Expand Down Expand Up @@ -517,7 +517,20 @@ check-ethrex-fixture-checksums:
test-syscalls:
cd syscalls && cargo test

test: compile-programs test-syscalls
# ethrex-crypto is a detached workspace (excluded from the root members), so a
# root `cargo test` never runs it. Run it explicitly, like test-syscalls.
# Run BOTH profiles deliberately. k256 swaps its FieldElement implementation on
# `debug_assertions` (k256 0.13.4 arithmetic/field.rs): debug uses the
# magnitude-tracking `field_impl` wrapper, release uses the raw FieldElement5x52.
# The guest ELF is built with --release, so a release run is the only one that
# exercises the implementation that actually ships; the debug run is kept because
# its magnitude debug_asserts turn a contract violation into a loud panic instead
# of a silently wrong value.
test-ethrex-crypto:
cd crypto/ethrex-crypto && cargo test
cd crypto/ethrex-crypto && cargo test --release

test: compile-programs test-syscalls test-ethrex-crypto
cargo test

# === Quick test shortcuts ===
Expand Down
27 changes: 3 additions & 24 deletions bench_vs/lambda/recursion/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions bin/cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1132,6 +1132,7 @@ mod tests {
(SyscallNumbers::KeccakPermute, Some(Accelerator::Keccak)),
(SyscallNumbers::Ecsm, Some(Accelerator::Ecsm)),
(SyscallNumbers::DmaMemcpy, Some(Accelerator::Dma)),
(SyscallNumbers::DmaMemset, Some(Accelerator::Dma)),
(SyscallNumbers::Print, None),
(SyscallNumbers::Panic, None),
(SyscallNumbers::Commit, None),
Expand Down
Loading