From d6786de893702aa3f26ef1477a3c59ca7cc490bf Mon Sep 17 00:00:00 2001 From: MauroFab Date: Mon, 29 Jun 2026 18:33:12 -0300 Subject: [PATCH] review(stark): tidy test layout + remove AGENTS.md (follow-up to #740) Two items that landed too late for #740: - Move the shared make_valid_simple_proof helper out of small_trace_tests.rs into tests/trace_test_helpers.rs, where the crate keeps shared test helpers (matching how prover_tests sources get_trace_evaluations). row_pair_opening_tests.rs and small_trace_tests.rs now both import it from there instead of one test file reaching sideways into another. - Delete AGENTS.md (added by #735). --- AGENTS.md | 4 --- .../stark/src/tests/row_pair_opening_tests.rs | 2 +- crypto/stark/src/tests/small_trace_tests.rs | 26 +------------- crypto/stark/src/tests/trace_test_helpers.rs | 36 +++++++++++++++++++ 4 files changed, 38 insertions(+), 30 deletions(-) delete mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md deleted file mode 100644 index 767d84610..000000000 --- a/AGENTS.md +++ /dev/null @@ -1,4 +0,0 @@ -# Agent Rules - -- Before pushing code or conflict-resolution commits to a PR branch, run `make lint` from the repository root. `cargo fmt --check` is not a substitute because CI's `Lint` job runs the full `make lint` target. -- If `make lint` cannot complete, do not push unless the user explicitly accepts that risk, and report the incomplete lint result. diff --git a/crypto/stark/src/tests/row_pair_opening_tests.rs b/crypto/stark/src/tests/row_pair_opening_tests.rs index 89e7dc8f1..93423f49f 100644 --- a/crypto/stark/src/tests/row_pair_opening_tests.rs +++ b/crypto/stark/src/tests/row_pair_opening_tests.rs @@ -6,7 +6,7 @@ //! tests restore it — an implementation that ignored `evaluations_sym` or the //! authentication path would otherwise pass every other test. -use super::small_trace_tests::make_valid_simple_proof; +use crate::tests::trace_test_helpers::make_valid_simple_proof; use crate::verifier::{IsStarkVerifier, Verifier}; use crypto::fiat_shamir::default_transcript::DefaultTranscript; use math::field::{element::FieldElement, goldilocks::GoldilocksField}; diff --git a/crypto/stark/src/tests/small_trace_tests.rs b/crypto/stark/src/tests/small_trace_tests.rs index 1e081910b..96e04858d 100644 --- a/crypto/stark/src/tests/small_trace_tests.rs +++ b/crypto/stark/src/tests/small_trace_tests.rs @@ -11,37 +11,13 @@ use crate::{ }, proof::options::ProofOptions, prover::{IsStarkProver, Prover}, + tests::trace_test_helpers::make_valid_simple_proof, traits::AIR, verifier::{IsStarkVerifier, Verifier}, }; type Felt = FieldElement; -pub(crate) fn make_valid_simple_proof() -> ( - SimpleAdditionAIR, - crate::proof::stark::StarkProof< - GoldilocksField, - GoldilocksField, - SimpleAdditionPublicInputs, - >, -) { - let mut trace = simple_addition_trace::(2); - let proof_options = ProofOptions::default_test_options(); - let pub_inputs = SimpleAdditionPublicInputs { - a: Felt::from(1u64), - b: Felt::from(2u64), - }; - let air = SimpleAdditionAIR::::new(&proof_options); - let proof = Prover::prove( - &air, - &mut trace, - &pub_inputs, - &mut DefaultTranscript::::new(&[]), - ) - .unwrap(); - (air, proof) -} - /// Test STARK prove/verify with a single-row trace. /// This exercises the FRI protocol with 0 FRI layers (trace_length=1, number_layers=0). #[test_log::test] diff --git a/crypto/stark/src/tests/trace_test_helpers.rs b/crypto/stark/src/tests/trace_test_helpers.rs index e62d0d3ec..4ef6455b3 100644 --- a/crypto/stark/src/tests/trace_test_helpers.rs +++ b/crypto/stark/src/tests/trace_test_helpers.rs @@ -1,8 +1,16 @@ +use crate::examples::simple_addition::{ + SimpleAdditionAIR, SimpleAdditionPublicInputs, simple_addition_trace, +}; +use crate::proof::options::ProofOptions; +use crate::prover::{IsStarkProver, Prover}; use crate::table::Table; use crate::trace::{TraceTable, compute_frame_evaluation_points}; +use crate::traits::AIR; +use crypto::fiat_shamir::default_transcript::DefaultTranscript; use itertools::Itertools; use math::field::{ element::FieldElement, + goldilocks::GoldilocksField, traits::{IsField, IsSubFieldOf}, }; use math::polynomial::Polynomial; @@ -10,6 +18,34 @@ use math::polynomial::Polynomial; #[cfg(feature = "parallel")] use rayon::prelude::{IntoParallelRefIterator, ParallelIterator}; +/// Builds a valid 2-row `SimpleAddition` proof. Shared base for the +/// proof-tamper / rejection tests in `small_trace_tests` and +/// `row_pair_opening_tests`. +pub fn make_valid_simple_proof() -> ( + SimpleAdditionAIR, + crate::proof::stark::StarkProof< + GoldilocksField, + GoldilocksField, + SimpleAdditionPublicInputs, + >, +) { + let mut trace = simple_addition_trace::(2); + let proof_options = ProofOptions::default_test_options(); + let pub_inputs = SimpleAdditionPublicInputs { + a: FieldElement::from(1u64), + b: FieldElement::from(2u64), + }; + let air = SimpleAdditionAIR::::new(&proof_options); + let proof = Prover::prove( + &air, + &mut trace, + &pub_inputs, + &mut DefaultTranscript::::new(&[]), + ) + .unwrap(); + (air, proof) +} + /// Reference Horner-based trace-evaluation used as an oracle by the prover /// tests (`tests::prover_tests`). The production prover uses the LDE-based /// barycentric `get_trace_evaluations_from_lde`; the two are