Files
evm/plugin
zeekay 9c9e99b02a plugin/evm: rewrite pq_test.go against per-chain Profile contract (CR-1 follow-up)
The original tests called precompile.Run() directly and expected the
PQ refusal to happen inside the precompile body. That contract no
longer holds: after CR-1, every classical precompile's Run() body is
strict-PQ-agnostic — the gate lives in (*EVM).runPrecompile and reads
the per-chain Profile from ChainConfig.PQ.

This rewrite tests the two contracts the plugin layer is actually
responsible for:

1. AllForbidden() == pq.Strict() (Hash() identity check) — every
   classical primitive family flagged.
2. (*Profile).RefuseUnder(op) returns the family-specific sentinel
   error for every op a strict-PQ chain must refuse.
3. nil profile (the default for non-PQ chains) admits every op.

Cross-precompile integration coverage (the strict-PQ chain runs an
EVM that actually refuses ecrecover at the boundary) lives in
geth/core/vm/pq_gate_test.go — closer to the dispatch chokepoint and
not duplicated here.
2026-05-12 08:23:06 -07:00
..