Apply the isolation guard one twin had and the other lacked
D140FleetRestartArmingTest did not clear the aere.pq.* properties and the per-JVM anchor config cache in setUp, while its twin PqFleetRestartArmingTest has done so since 20 August 2026. Without it the class is green on its own and red inside the full suite, on identical sources, because a neighbouring class leaves an armed anchor config cached. That is the concrete cost of keeping two copies of a test: a repair lands in one and not the other, and nothing fails to say so. 1,012 tests, 0 failures.
This commit is contained in:
parent
a7b24b8f30
commit
4ef6565275
@ -38,11 +38,11 @@ addba40c0d931a3ecfa3b2f0179311dacaa604884e3ebb1d79f958bd913f72e2 consensus/comm
|
||||
b6c9ecbf3cd2ee73111984cd04a89c32ee56a1cc699a197b65ef7c10001b8cbc consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/BftBlockCreatorFactory.java
|
||||
5c8861eba1ea697d8deb88139d92c6ea6636b29d76c881b13e7f6c841ba2324f consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/blockcreation/PqAnchorProducer.java
|
||||
6ace00e18914a1558563e689b7427654b5e6226a31447bef1d0416d993f78840 consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/tools/PqRegistryHashTool.java
|
||||
fab7a67ca190e6cb2469bac842112116208ea5e84e47b064d6617c36be14ae23 consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D078ThresholdReachabilityTest.java
|
||||
2620bb98485e5d5649b58d331d1a35031bef56cab8bd18d1e7f9050e61bc09de consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D078ThresholdReachabilityTest.java
|
||||
5534cfab3bd59968823265655351491abef8ea73f594677a62bf47c8e88deb54 consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D078ValidatorSetChangeTest.java
|
||||
da249c59f356e06928f73543d5529ae1911e4613a8125477f475b1dd54daed62 consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D079ForkArmingTest.java
|
||||
9a794d7a4010ff5c561008229cb2ae97d5f79367641190c97cde8802b83daa72 consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D081RegistryRotationTest.java
|
||||
a4c979fcd296f974c58b372d763b2bbf7fa96997f0fd52d66e5ac14185d5b8ab consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D140FleetRestartArmingTest.java
|
||||
9ab9918f4e5bef6485fef1251a07504e32b8b2d42393d3fcbb35d7e1241a7deb consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D140FleetRestartArmingTest.java
|
||||
2e81e02a419cdb2053b67e2bc9e699af1366955fa18d351178637b64a48a27be consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D141SealPersistenceTest.java
|
||||
42dd6396583aa19475e23c9781f568958d9789f0dba084dc63ac9833203f3f1f consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D146ArmingGateTest.java
|
||||
75fca200a2ac9e7226c70d96916a4ae33201a8acb466d0fdc591576e09edb3fc consensus/common/src/test/java/org/hyperledger/besu/consensus/common/bft/D147InertBinaryTest.java
|
||||
|
||||
@ -19,6 +19,8 @@ import static org.assertj.core.api.Assertions.assertThatCode;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
|
||||
|
||||
import org.hyperledger.besu.consensus.common.bft.blockcreation.PqAnchorProducer;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
@ -128,8 +130,7 @@ public class D078ThresholdReachabilityTest {
|
||||
// fixtures into AERE-PQC-REG-ARM-02 refusals, green alone, red in the suite, identical sources.
|
||||
// The twin (PqForkThresholdReachabilityTest) has carried this line since 2026-08-11 with the
|
||||
// same story; this class was forked before that fix and never received it.
|
||||
org.hyperledger.besu.consensus.common.bft.blockcreation.PqAnchorProducer.useConfigForTesting(
|
||||
null);
|
||||
PqAnchorProducer.useConfigForTesting(null);
|
||||
resetFalconSingleton();
|
||||
}
|
||||
|
||||
@ -352,3 +353,4 @@ public class D078ThresholdReachabilityTest {
|
||||
f.set(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -114,6 +114,21 @@ public class D140FleetRestartArmingTest {
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() throws Exception {
|
||||
// ADDED 2026-08-29 (finding D-293), and it was MISSING here while its twin had carried it since
|
||||
// 2026-08-20. That is the whole danger of keeping two copies of a test: a repair lands in one
|
||||
// and not the other, and nothing fails to say so. This class never arms the certificate anchor,
|
||||
// but FalconSealSupport's constructor consults it (anchorArmedFrom() -> PqAnchorProducer.config(),
|
||||
// a per-JVM cache): a neighbouring class that leaves an ARMED config cached turns every
|
||||
// proof-less fixture below into an AERE-PQC-REG-ARM-02 refusal. Measured on the production tree:
|
||||
// alone 5/5 green, inside the full suite the same 5 red, identical sources. Clearing the
|
||||
// properties does not clear the caches.
|
||||
for (final String p : System.getProperties().stringPropertyNames()) {
|
||||
if (p.startsWith("aere.pq.")) {
|
||||
System.clearProperty(p);
|
||||
}
|
||||
}
|
||||
org.hyperledger.besu.consensus.common.bft.blockcreation.PqAnchorProducer.useConfigForTesting(
|
||||
null);
|
||||
resetFalconSingleton();
|
||||
|
||||
final SecureRandom rnd = SecureRandomProvider.createSecureRandom();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user