From 3d9c093b593cbe71828ee26cf476803a46fd94f2 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 27 Jan 2023 13:47:38 +1000 Subject: [PATCH 01/17] update errorprone and kubernetes versions Signed-off-by: Sally MacFarlane --- .../src/reference-test/external-resources | 2 +- gradle/verification-metadata.xml | 262 ++++++++++++++++++ gradle/versions.gradle | 8 +- 3 files changed, 267 insertions(+), 5 deletions(-) diff --git a/ethereum/referencetests/src/reference-test/external-resources b/ethereum/referencetests/src/reference-test/external-resources index 69c4c2a98dc..638da7ca7b2 160000 --- a/ethereum/referencetests/src/reference-test/external-resources +++ b/ethereum/referencetests/src/reference-test/external-resources @@ -1 +1 @@ -Subproject commit 69c4c2a98dc8a712d4c6f5a817da4f21ff719006 +Subproject commit 638da7ca7b2ca371ebb33d7d7d2562981aafd9b2 diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index a4842eaf50e..8208a4bf890 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -133,6 +133,11 @@ + + + + + @@ -158,6 +163,11 @@ + + + + + @@ -193,6 +203,11 @@ + + + + + @@ -218,6 +233,11 @@ + + + + + @@ -255,6 +275,17 @@ + + + + + + + + + + + @@ -285,6 +316,17 @@ + + + + + + + + + + + @@ -317,6 +359,17 @@ + + + + + + + + + + + @@ -328,11 +381,27 @@ + + + + + + + + + + + + + + + + @@ -349,6 +418,17 @@ + + + + + + + + + + + @@ -375,6 +455,11 @@ + + + + + @@ -725,6 +810,14 @@ + + + + + + + + @@ -733,6 +826,11 @@ + + + + + @@ -789,6 +887,14 @@ + + + + + + + + @@ -818,6 +924,14 @@ + + + + + + + + @@ -834,6 +948,14 @@ + + + + + + + + @@ -842,6 +964,14 @@ + + + + + + + + @@ -862,6 +992,11 @@ + + + + + @@ -875,6 +1010,14 @@ + + + + + + + + @@ -883,6 +1026,14 @@ + + + + + + + + @@ -1047,6 +1198,11 @@ + + + + + @@ -1063,6 +1219,14 @@ + + + + + + + + @@ -1081,6 +1245,11 @@ + + + + + @@ -1248,6 +1417,17 @@ + + + + + + + + + + + @@ -1608,6 +1788,14 @@ + + + + + + + + @@ -1616,11 +1804,24 @@ + + + + + + + + + + + + + @@ -1629,6 +1830,14 @@ + + + + + + + + @@ -2470,11 +2679,24 @@ + + + + + + + + + + + + + @@ -3388,6 +3610,14 @@ + + + + + + + + @@ -3396,6 +3626,14 @@ + + + + + + + + @@ -3420,6 +3658,14 @@ + + + + + + + + @@ -3428,6 +3674,14 @@ + + + + + + + + @@ -3479,6 +3733,14 @@ + + + + + + + + diff --git a/gradle/versions.gradle b/gradle/versions.gradle index 09652055bd5..79b325236b1 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -21,8 +21,8 @@ dependencyManagement { entry 'antlr4-runtime' } - dependency 'com.fasterxml.jackson.core:jackson-databind:2.13.4.2' - dependencySet(group:'com.fasterxml.jackson.core', version:'2.13.4') { + dependencySet(group:'com.fasterxml.jackson.core', version:'2.14.1') { + entry 'jackson-databind' entry 'jackson-datatype' entry 'jackson-datatype-jdk8' } @@ -41,7 +41,7 @@ dependencyManagement { entry'dagger' } - dependencySet(group: 'com.google.errorprone', version: '2.14.0') { + dependencySet(group: 'com.google.errorprone', version: '2.18.0') { entry 'error_prone_annotation' entry 'error_prone_check_api' entry 'error_prone_core' @@ -71,7 +71,7 @@ dependencyManagement { entry 'grpc-stub' } - dependency 'io.kubernetes:client-java:15.0.1' + dependency 'io.kubernetes:client-java:17.0.0' dependency 'io.netty:netty-all:4.1.78.Final' dependency 'io.netty:netty-tcnative-boringssl-static:2.0.50.Final' From 2e32c4c184b946b674e23cbfe866ba5c265bda0f Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 27 Jan 2023 14:16:37 +1000 Subject: [PATCH 02/17] fixed errorprone issues in prod code Signed-off-by: Sally MacFarlane --- .../besu/consensus/common/validator/blockbased/VoteTally.java | 2 ++ .../ethereum/api/jsonrpc/internal/results/BlockResult.java | 4 ++-- .../sync/fastsync/worldstate/FastWorldStateDownloader.java | 3 +-- .../java/org/hyperledger/besu/evmtool/DataStoreModule.java | 1 + .../java/org/hyperledger/besu/evmtool/GenesisFileModule.java | 1 + .../org/hyperledger/besu/ethereum/rlp/RLPDecodingHelpers.java | 4 +++- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/validator/blockbased/VoteTally.java b/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/validator/blockbased/VoteTally.java index fa7853a786f..6af918787c6 100644 --- a/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/validator/blockbased/VoteTally.java +++ b/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/validator/blockbased/VoteTally.java @@ -110,6 +110,8 @@ void discardOutstandingVotes() { } /** + * The validator addresses + * * @return The collection of validators after the voting at the most recent block has been * finalised. */ diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/BlockResult.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/BlockResult.java index 7fd3a73fc84..9ca61c8b0c7 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/BlockResult.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/results/BlockResult.java @@ -84,7 +84,7 @@ public class BlockResult implements JsonRpcResult { private final String withdrawalsRoot; private final List withdrawals; - public BlockResult( + public BlockResult( final BlockHeader header, final List transactions, final List ommers, @@ -93,7 +93,7 @@ public BlockResult( this(header, transactions, ommers, totalDifficulty, size, false, Optional.empty()); } - public BlockResult( + public BlockResult( final BlockHeader header, final List transactions, final List ommers, diff --git a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/FastWorldStateDownloader.java b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/FastWorldStateDownloader.java index be41f25ba04..4bdbae71cee 100644 --- a/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/FastWorldStateDownloader.java +++ b/ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/worldstate/FastWorldStateDownloader.java @@ -107,8 +107,7 @@ public CompletableFuture run( return failed; } - Optional checkNull = - Optional.ofNullable(fastSyncState.getPivotBlockHeader().get()); + Optional checkNull = Optional.of(fastSyncState.getPivotBlockHeader().get()); if (checkNull.isEmpty()) { LOG.error("Pivot Block not present"); final CompletableFuture failed = new CompletableFuture<>(); diff --git a/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/DataStoreModule.java b/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/DataStoreModule.java index 7a1b639a19c..a2ce12caa55 100644 --- a/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/DataStoreModule.java +++ b/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/DataStoreModule.java @@ -84,6 +84,7 @@ KeyValueStorage provideWorldStateKeyValueStorage( @Provides @Singleton @Named("worldStatePreimage") + @SuppressWarnings("UnusedVariable") KeyValueStorage provideWorldStatePreimageKeyValueStorage( @Named("KeyValueStorageName") final String keyValueStorageName, final BesuConfiguration commonConfiguration, diff --git a/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/GenesisFileModule.java b/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/GenesisFileModule.java index 55b4e7e8392..f2eebd945a2 100644 --- a/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/GenesisFileModule.java +++ b/ethereum/evmtool/src/main/java/org/hyperledger/besu/evmtool/GenesisFileModule.java @@ -63,6 +63,7 @@ GenesisConfigOptions provideGenesisConfigOptions(final GenesisConfigFile genesis @Singleton @Provides + @SuppressWarnings("UnusedVariable") HeaderBasedProtocolSchedule provideProtocolSchedule( final GenesisConfigOptions configOptions, @Named("Fork") final Optional fork, diff --git a/ethereum/rlp/src/main/java/org/hyperledger/besu/ethereum/rlp/RLPDecodingHelpers.java b/ethereum/rlp/src/main/java/org/hyperledger/besu/ethereum/rlp/RLPDecodingHelpers.java index 670a6b83fb6..f53931ba67c 100644 --- a/ethereum/rlp/src/main/java/org/hyperledger/besu/ethereum/rlp/RLPDecodingHelpers.java +++ b/ethereum/rlp/src/main/java/org/hyperledger/besu/ethereum/rlp/RLPDecodingHelpers.java @@ -171,7 +171,7 @@ static class RLPElementMetadata { final Kind kind; // The type of rlp element final long elementStart; // The index at which this element starts final long payloadStart; // The index at which the payload of this element starts - final int payloadSize; // The size of the paylod + final int payloadSize; // The size of the payload RLPElementMetadata( final Kind kind, final long elementStart, final long payloadStart, final int payloadSize) { @@ -182,6 +182,8 @@ static class RLPElementMetadata { } /** + * The size of the byte string holding the rlp-encoded value and metadata + * * @return the size of the byte string holding the rlp-encoded value and metadata */ int getEncodedSize() { From 65f014a961f8f7dadd7d0afb7db6103c6d060ac0 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 27 Jan 2023 14:20:18 +1000 Subject: [PATCH 03/17] typo Signed-off-by: Sally MacFarlane --- .../src/test/java/org/hyperledger/besu/RunnerBuilderTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/besu/src/test/java/org/hyperledger/besu/RunnerBuilderTest.java b/besu/src/test/java/org/hyperledger/besu/RunnerBuilderTest.java index 373b9918f80..73b83629cc9 100644 --- a/besu/src/test/java/org/hyperledger/besu/RunnerBuilderTest.java +++ b/besu/src/test/java/org/hyperledger/besu/RunnerBuilderTest.java @@ -169,14 +169,14 @@ public void enodeUrlShouldHaveAdvertisedHostWhenDiscoveryDisabled() { .build(); runner.startEthereumMainLoop(); - final EnodeURL expectedEodeURL = + final EnodeURL expectedEnodeURL = EnodeURLImpl.builder() .ipAddress(p2pAdvertisedHost) .discoveryPort(0) .listeningPort(p2pListenPort) .nodeId(besuController.getNodeKey().getPublicKey().getEncoded()) .build(); - assertThat(runner.getLocalEnode().orElseThrow()).isEqualTo(expectedEodeURL); + assertThat(runner.getLocalEnode().orElseThrow()).isEqualTo(expectedEnodeURL); } @Test From 3bb7951582b90aa02bf53b5ba65638304520fca3 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 27 Jan 2023 15:27:18 +1000 Subject: [PATCH 04/17] typo Signed-off-by: Sally MacFarlane --- .../besu/tests/acceptance/plugins/TestPrivacyServicePlugin.java | 2 +- .../privacy/TestSigningPrivateMarkerTransactionFactory.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/acceptance-tests/test-plugins/src/main/java/org/hyperledger/besu/tests/acceptance/plugins/TestPrivacyServicePlugin.java b/acceptance-tests/test-plugins/src/main/java/org/hyperledger/besu/tests/acceptance/plugins/TestPrivacyServicePlugin.java index a441640b019..4cdd35e8dc4 100644 --- a/acceptance-tests/test-plugins/src/main/java/org/hyperledger/besu/tests/acceptance/plugins/TestPrivacyServicePlugin.java +++ b/acceptance-tests/test-plugins/src/main/java/org/hyperledger/besu/tests/acceptance/plugins/TestPrivacyServicePlugin.java @@ -68,7 +68,7 @@ public void beforeExternalServices() { if (signingEnabled) { pluginService.setPrivateMarkerTransactionFactory(privateMarkerTransactionFactory); - privateMarkerTransactionFactory.setSigningKeyEnbaled(signingKey); + privateMarkerTransactionFactory.setSigningKeyEnabled(signingKey); } } diff --git a/acceptance-tests/test-plugins/src/main/java/org/hyperledger/besu/tests/acceptance/plugins/privacy/TestSigningPrivateMarkerTransactionFactory.java b/acceptance-tests/test-plugins/src/main/java/org/hyperledger/besu/tests/acceptance/plugins/privacy/TestSigningPrivateMarkerTransactionFactory.java index 09e1eb0a442..7c3ca223e02 100644 --- a/acceptance-tests/test-plugins/src/main/java/org/hyperledger/besu/tests/acceptance/plugins/privacy/TestSigningPrivateMarkerTransactionFactory.java +++ b/acceptance-tests/test-plugins/src/main/java/org/hyperledger/besu/tests/acceptance/plugins/privacy/TestSigningPrivateMarkerTransactionFactory.java @@ -43,7 +43,7 @@ public class TestSigningPrivateMarkerTransactionFactory implements PrivateMarker KeyPair aliceFixedSigningKey; Address sender; - public void setSigningKeyEnbaled(final String privateMarkerTransactionSigningKey) { + public void setSigningKeyEnabled(final String privateMarkerTransactionSigningKey) { final SignatureAlgorithm algorithm = SignatureAlgorithmFactory.getInstance(); final SECPPrivateKey privateKey = algorithm.createPrivateKey(Bytes32.fromHexString(privateMarkerTransactionSigningKey)); From 6077e381b5fd6fd73f2951666ae1e0acc3f44ef0 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 27 Jan 2023 15:53:25 +1000 Subject: [PATCH 05/17] fixed errorprone issues in test code Signed-off-by: Sally MacFarlane --- .../hyperledger/besu/PrivacyReorgTest.java | 4 ---- .../hyperledger/besu/cli/BesuCommandTest.java | 21 ++++++++++++------- .../ConfigOptionSearchAndRunHandlerTest.java | 14 ++++++------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java b/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java index d5b9d2866de..0500105ce8a 100644 --- a/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java +++ b/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java @@ -134,7 +134,6 @@ public class PrivacyReorgTest { private BesuController besuController; private PrivateStateRootResolver privateStateRootResolver; private PrivacyParameters privacyParameters; - private RestrictedDefaultPrivacyController privacyController; private Enclave mockEnclave; private Transaction privacyMarkerTransaction; @@ -176,9 +175,6 @@ public void setUp() throws IOException { .build(); privacyParameters.setPrivacyUserId(ENCLAVE_PUBLIC_KEY.toBase64String()); - privacyController = mock(RestrictedDefaultPrivacyController.class); - when(privacyController.findPrivacyGroupByGroupId(any(), any())) - .thenReturn(Optional.of(new PrivacyGroup())); privateStateRootResolver = new PrivateStateRootResolver(privacyParameters.getPrivateStateStorage()); diff --git a/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java b/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java index d56d602a69c..c172372b32d 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java @@ -1200,7 +1200,8 @@ public void predefinedNetworkIdsMustBeEqualToChainIds() { public void identityValueTrueMustBeUsed() { parseCommand("--identity", "test"); - verify(mockRunnerBuilder.identityString(eq(Optional.of("test")))).build(); + verify(mockRunnerBuilder).identityString(eq(Optional.of("test"))); + verify(mockRunnerBuilder).build(); assertThat(commandOutput.toString(UTF_8)).isEmpty(); assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); @@ -1210,7 +1211,8 @@ public void identityValueTrueMustBeUsed() { public void p2pEnabledOptionValueTrueMustBeUsed() { parseCommand("--p2p-enabled", "true"); - verify(mockRunnerBuilder.p2pEnabled(eq(true))).build(); + verify(mockRunnerBuilder).p2pEnabled(eq(true)); + verify(mockRunnerBuilder).build(); assertThat(commandOutput.toString(UTF_8)).isEmpty(); assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); @@ -1220,7 +1222,8 @@ public void p2pEnabledOptionValueTrueMustBeUsed() { public void p2pEnabledOptionValueFalseMustBeUsed() { parseCommand("--p2p-enabled", "false"); - verify(mockRunnerBuilder.p2pEnabled(eq(false))).build(); + verify(mockRunnerBuilder).p2pEnabled(eq(false)); + verify(mockRunnerBuilder).build(); assertThat(commandOutput.toString(UTF_8)).isEmpty(); assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); @@ -1301,7 +1304,8 @@ public void p2pOptionsRequiresServiceToBeEnabledToml() throws IOException { public void discoveryOptionValueTrueMustBeUsed() { parseCommand("--discovery-enabled", "true"); - verify(mockRunnerBuilder.discovery(eq(true))).build(); + verify(mockRunnerBuilder).discovery(eq(true)); + verify(mockRunnerBuilder).build(); assertThat(commandOutput.toString(UTF_8)).isEmpty(); assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); @@ -1311,7 +1315,9 @@ public void discoveryOptionValueTrueMustBeUsed() { public void discoveryOptionValueFalseMustBeUsed() { parseCommand("--discovery-enabled", "false"); - verify(mockRunnerBuilder.discovery(eq(false))).build(); + verify(mockRunnerBuilder).discovery(eq(false)); + verify(mockRunnerBuilder).build(); + assertThat(commandOutput.toString(UTF_8)).isEmpty(); assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); @@ -4397,7 +4403,7 @@ public void privateMarkerTransactionSigningKeyFileRequiredIfMinGasPriceNonZero() public void privateMarkerTransactionSigningKeyFileNotCanNotBeUsedWithPluginPrivateMarkerTransactionFactory() throws IOException { - privacyPluginService.setPrivateMarkerTransactionFactory( + when(privacyPluginService.getPrivateMarkerTransactionFactory()).thenReturn( mock(PrivateMarkerTransactionFactory.class)); final Path toml = createTempFile( @@ -4412,7 +4418,8 @@ public void privateMarkerTransactionSigningKeyFileRequiredIfMinGasPriceNonZero() toml.toString()); assertThat(commandOutput.toString(UTF_8)).isEmpty(); - assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); +// assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); + assertThat(commandErrorOutput.toString(UTF_8)).startsWith("--privacy-marker-transaction-signing-key-file can not be used in conjunction with a plugin that specifies"); } @Test diff --git a/besu/src/test/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandlerTest.java b/besu/src/test/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandlerTest.java index b248a4c6961..f47d2b02249 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandlerTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandlerTest.java @@ -39,6 +39,7 @@ import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.internal.junit.UnusedStubbings; import org.mockito.junit.MockitoJUnitRunner; import picocli.CommandLine; import picocli.CommandLine.IDefaultValueProvider; @@ -58,7 +59,6 @@ public class ConfigOptionSearchAndRunHandlerTest { private LoggingLevelOption levelOption; private final IExecutionStrategy resultHandler = new RunLast(); - private IParameterExceptionHandler parameterExceptionHandler; private final Map environment = singletonMap("BESU_LOGGING", "ERROR"); private ConfigOptionSearchAndRunHandler configParsingHandler; @@ -80,12 +80,10 @@ public void initMocks() { when(mockParseResult.matchedOption(CONFIG_FILE_OPTION_NAME)).thenReturn(mockConfigOptionSpec); when(mockParseResult.hasMatchedOption(CONFIG_FILE_OPTION_NAME)).thenReturn(true); when(mockConfigOptionSpec.getter()).thenReturn(mockConfigOptionGetter); - when(mockCommandLine.getParameterExceptionHandler()).thenReturn(mockParameterExceptionHandler); levelOption = new LoggingLevelOption(); levelOption.setLogLevel("INFO"); - parameterExceptionHandler = mockCommandLine.getParameterExceptionHandler(); configParsingHandler = - new ConfigOptionSearchAndRunHandler(resultHandler, parameterExceptionHandler, environment); + new ConfigOptionSearchAndRunHandler(resultHandler, mockParameterExceptionHandler, environment); } @Test @@ -94,7 +92,7 @@ public void handleWithCommandLineOption() throws Exception { final List result = configParsingHandler.handle(mockParseResult); verify(mockCommandLine).setDefaultValueProvider(any(IDefaultValueProvider.class)); verify(mockCommandLine).setExecutionStrategy(eq(resultHandler)); - verify(mockCommandLine).setParameterExceptionHandler(eq(parameterExceptionHandler)); + verify(mockCommandLine).setParameterExceptionHandler(eq(mockParameterExceptionHandler)); verify(mockCommandLine).execute(anyString()); assertThat(result).isEmpty(); @@ -107,7 +105,7 @@ public void handleWithEnvironmentVariable() throws IOException { final ConfigOptionSearchAndRunHandler environmentConfigFileParsingHandler = new ConfigOptionSearchAndRunHandler( resultHandler, - parameterExceptionHandler, + mockParameterExceptionHandler, singletonMap("BESU_CONFIG_FILE", temp.newFile().getAbsolutePath())); when(mockParseResult.hasMatchedOption(CONFIG_FILE_OPTION_NAME)).thenReturn(false); @@ -129,7 +127,7 @@ public void handleWithEnvironmentVariableOptionShouldRaiseExceptionIfNoFileParam final ConfigOptionSearchAndRunHandler environmentConfigFileParsingHandler = new ConfigOptionSearchAndRunHandler( resultHandler, - parameterExceptionHandler, + mockParameterExceptionHandler, singletonMap("BESU_CONFIG_FILE", "not_found.toml")); when(mockParseResult.hasMatchedOption(CONFIG_FILE_OPTION_NAME)).thenReturn(false); @@ -162,7 +160,7 @@ public void handleThrowsErrorWithWithEnvironmentVariableAndCommandLineSpecified( final ConfigOptionSearchAndRunHandler environmentConfigFileParsingHandler = new ConfigOptionSearchAndRunHandler( resultHandler, - parameterExceptionHandler, + mockParameterExceptionHandler, singletonMap("BESU_CONFIG_FILE", temp.newFile().getAbsolutePath())); when(mockParseResult.hasMatchedOption(CONFIG_FILE_OPTION_NAME)).thenReturn(true); From 8b11c52ca46000466a0f01d07355f8a863a375d9 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Fri, 27 Jan 2023 16:22:43 +1000 Subject: [PATCH 06/17] fixed errorprone issues in test code Signed-off-by: Sally MacFarlane --- .../hyperledger/besu/PrivacyReorgTest.java | 2 -- .../hyperledger/besu/RunnerBuilderTest.java | 27 ++++++++++--------- .../hyperledger/besu/cli/BesuCommandTest.java | 11 ++++---- .../ConfigOptionSearchAndRunHandlerTest.java | 11 ++++---- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java b/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java index 0500105ce8a..49a568547f8 100644 --- a/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java +++ b/besu/src/test/java/org/hyperledger/besu/PrivacyReorgTest.java @@ -31,7 +31,6 @@ import org.hyperledger.besu.datatypes.Wei; import org.hyperledger.besu.enclave.Enclave; import org.hyperledger.besu.enclave.EnclaveFactory; -import org.hyperledger.besu.enclave.types.PrivacyGroup; import org.hyperledger.besu.enclave.types.ReceiveResponse; import org.hyperledger.besu.ethereum.GasLimitCalculator; import org.hyperledger.besu.ethereum.ProtocolContext; @@ -51,7 +50,6 @@ import org.hyperledger.besu.ethereum.mainnet.HeaderValidationMode; import org.hyperledger.besu.ethereum.privacy.PrivateStateRootResolver; import org.hyperledger.besu.ethereum.privacy.PrivateTransaction; -import org.hyperledger.besu.ethereum.privacy.RestrictedDefaultPrivacyController; import org.hyperledger.besu.ethereum.privacy.storage.PrivacyGroupHeadBlockMap; import org.hyperledger.besu.ethereum.privacy.storage.PrivacyStorageProvider; import org.hyperledger.besu.ethereum.privacy.storage.PrivateStateStorage; diff --git a/besu/src/test/java/org/hyperledger/besu/RunnerBuilderTest.java b/besu/src/test/java/org/hyperledger/besu/RunnerBuilderTest.java index 73b83629cc9..77e349819fe 100644 --- a/besu/src/test/java/org/hyperledger/besu/RunnerBuilderTest.java +++ b/besu/src/test/java/org/hyperledger/besu/RunnerBuilderTest.java @@ -95,16 +95,17 @@ public final class RunnerBuilderTest { @Rule public TemporaryFolder dataDir = new TemporaryFolder(); @Mock BesuController besuController; + @Mock ProtocolSchedule protocolSchedule; + @Mock ProtocolContext protocolContext; @Mock Vertx vertx; + private NodeKey nodeKey; @Before public void setup() { final SubProtocolConfiguration subProtocolConfiguration = mock(SubProtocolConfiguration.class); final EthProtocolManager ethProtocolManager = mock(EthProtocolManager.class); final EthContext ethContext = mock(EthContext.class); - final ProtocolContext protocolContext = mock(ProtocolContext.class); - final NodeKey nodeKey = - new NodeKey(new KeyPairSecurityModule(new SECP256K1().generateKeyPair())); + nodeKey = new NodeKey(new KeyPairSecurityModule(new SECP256K1().generateKeyPair())); when(subProtocolConfiguration.getProtocolManagers()) .thenReturn( @@ -127,7 +128,7 @@ public void setup() { when(besuController.getProtocolManager()).thenReturn(ethProtocolManager); when(besuController.getSubProtocolConfiguration()).thenReturn(subProtocolConfiguration); when(besuController.getProtocolContext()).thenReturn(protocolContext); - when(besuController.getProtocolSchedule()).thenReturn(mock(ProtocolSchedule.class)); + when(besuController.getProtocolSchedule()).thenReturn(protocolSchedule); when(besuController.getNodeKey()).thenReturn(nodeKey); when(besuController.getMiningParameters()).thenReturn(mock(MiningParameters.class)); when(besuController.getPrivacyParameters()).thenReturn(mock(PrivacyParameters.class)); @@ -174,7 +175,7 @@ public void enodeUrlShouldHaveAdvertisedHostWhenDiscoveryDisabled() { .ipAddress(p2pAdvertisedHost) .discoveryPort(0) .listeningPort(p2pListenPort) - .nodeId(besuController.getNodeKey().getPublicKey().getEncoded()) + .nodeId(nodeKey.getPublicKey().getEncoded()) .build(); assertThat(runner.getLocalEnode().orElseThrow()).isEqualTo(expectedEnodeURL); } @@ -186,9 +187,9 @@ public void movingAcrossProtocolSpecsUpdatesNodeRecord() { final int p2pListenPort = 30301; final StorageProvider storageProvider = new InMemoryKeyValueStorageProvider(); final Block genesisBlock = gen.genesisBlock(); - final MutableBlockchain blockchain = + final MutableBlockchain inMemoryBlockchain = createInMemoryBlockchain(genesisBlock, new MainnetBlockHeaderFunctions()); - when(besuController.getProtocolContext().getBlockchain()).thenReturn(blockchain); + when(protocolContext.getBlockchain()).thenReturn(inMemoryBlockchain); final Runner runner = new RunnerBuilder() .discovery(true) @@ -212,15 +213,16 @@ public void movingAcrossProtocolSpecsUpdatesNodeRecord() { .rpcEndpointService(new RpcEndpointServiceImpl()) .build(); runner.startEthereumMainLoop(); - when(besuController.getProtocolSchedule().streamMilestoneBlocks()) - .thenAnswer(__ -> Stream.of(1L, 2L)); + + when(protocolSchedule.streamMilestoneBlocks()).thenAnswer(__ -> Stream.of(1L, 2L)); + for (int i = 0; i < 2; ++i) { final Block block = gen.block( BlockDataGenerator.BlockOptions.create() .setBlockNumber(1 + i) - .setParentHash(blockchain.getChainHeadHash())); - blockchain.appendBlock(block, gen.receipts(block)); + .setParentHash(inMemoryBlockchain.getChainHeadHash())); + inMemoryBlockchain.appendBlock(block, gen.receipts(block)); assertThat( storageProvider .getStorageBySegmentIdentifier(BLOCKCHAIN) @@ -400,7 +402,8 @@ public void assertTransitionStratumConfiguration() { final EthNetworkConfig mockMainnet = mock(EthNetworkConfig.class); when(mockMainnet.getNetworkId()).thenReturn(BigInteger.ONE); MergeConfigOptions.setMergeEnabled(true); - final MiningParameters mockMiningParams = besuController.getMiningParameters(); + final MiningParameters mockMiningParams = mock(MiningParameters.class); + when(besuController.getMiningParameters()).thenReturn(mockMiningParams); when(mockMiningParams.isStratumMiningEnabled()).thenReturn(true); final TransitionCoordinator mockTransitionCoordinator = spy( diff --git a/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java b/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java index c172372b32d..f1ea5aabe22 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/BesuCommandTest.java @@ -1318,7 +1318,6 @@ public void discoveryOptionValueFalseMustBeUsed() { verify(mockRunnerBuilder).discovery(eq(false)); verify(mockRunnerBuilder).build(); - assertThat(commandOutput.toString(UTF_8)).isEmpty(); assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); } @@ -4403,8 +4402,8 @@ public void privateMarkerTransactionSigningKeyFileRequiredIfMinGasPriceNonZero() public void privateMarkerTransactionSigningKeyFileNotCanNotBeUsedWithPluginPrivateMarkerTransactionFactory() throws IOException { - when(privacyPluginService.getPrivateMarkerTransactionFactory()).thenReturn( - mock(PrivateMarkerTransactionFactory.class)); + when(privacyPluginService.getPrivateMarkerTransactionFactory()) + .thenReturn(mock(PrivateMarkerTransactionFactory.class)); final Path toml = createTempFile( "key", @@ -4418,8 +4417,10 @@ public void privateMarkerTransactionSigningKeyFileRequiredIfMinGasPriceNonZero() toml.toString()); assertThat(commandOutput.toString(UTF_8)).isEmpty(); -// assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); - assertThat(commandErrorOutput.toString(UTF_8)).startsWith("--privacy-marker-transaction-signing-key-file can not be used in conjunction with a plugin that specifies"); + // assertThat(commandErrorOutput.toString(UTF_8)).isEmpty(); + assertThat(commandErrorOutput.toString(UTF_8)) + .startsWith( + "--privacy-marker-transaction-signing-key-file can not be used in conjunction with a plugin that specifies"); } @Test diff --git a/besu/src/test/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandlerTest.java b/besu/src/test/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandlerTest.java index f47d2b02249..0f0c1e696a3 100644 --- a/besu/src/test/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandlerTest.java +++ b/besu/src/test/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandlerTest.java @@ -39,12 +39,10 @@ import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.internal.junit.UnusedStubbings; import org.mockito.junit.MockitoJUnitRunner; import picocli.CommandLine; import picocli.CommandLine.IDefaultValueProvider; import picocli.CommandLine.IExecutionStrategy; -import picocli.CommandLine.IParameterExceptionHandler; import picocli.CommandLine.Model.CommandSpec; import picocli.CommandLine.Model.IGetter; import picocli.CommandLine.Model.OptionSpec; @@ -83,7 +81,8 @@ public void initMocks() { levelOption = new LoggingLevelOption(); levelOption.setLogLevel("INFO"); configParsingHandler = - new ConfigOptionSearchAndRunHandler(resultHandler, mockParameterExceptionHandler, environment); + new ConfigOptionSearchAndRunHandler( + resultHandler, mockParameterExceptionHandler, environment); } @Test @@ -105,7 +104,7 @@ public void handleWithEnvironmentVariable() throws IOException { final ConfigOptionSearchAndRunHandler environmentConfigFileParsingHandler = new ConfigOptionSearchAndRunHandler( resultHandler, - mockParameterExceptionHandler, + mockParameterExceptionHandler, singletonMap("BESU_CONFIG_FILE", temp.newFile().getAbsolutePath())); when(mockParseResult.hasMatchedOption(CONFIG_FILE_OPTION_NAME)).thenReturn(false); @@ -127,7 +126,7 @@ public void handleWithEnvironmentVariableOptionShouldRaiseExceptionIfNoFileParam final ConfigOptionSearchAndRunHandler environmentConfigFileParsingHandler = new ConfigOptionSearchAndRunHandler( resultHandler, - mockParameterExceptionHandler, + mockParameterExceptionHandler, singletonMap("BESU_CONFIG_FILE", "not_found.toml")); when(mockParseResult.hasMatchedOption(CONFIG_FILE_OPTION_NAME)).thenReturn(false); @@ -160,7 +159,7 @@ public void handleThrowsErrorWithWithEnvironmentVariableAndCommandLineSpecified( final ConfigOptionSearchAndRunHandler environmentConfigFileParsingHandler = new ConfigOptionSearchAndRunHandler( resultHandler, - mockParameterExceptionHandler, + mockParameterExceptionHandler, singletonMap("BESU_CONFIG_FILE", temp.newFile().getAbsolutePath())); when(mockParseResult.hasMatchedOption(CONFIG_FILE_OPTION_NAME)).thenReturn(true); From c863528106f56191307a93a1c8cc3a88245042f6 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 10:51:31 +1000 Subject: [PATCH 07/17] fixed errorprone issues in test code Signed-off-by: Sally MacFarlane --- .../privacy/PrivacyPluginPrecompiledContractTest.java | 6 ------ .../storage/migration/PrivateStorageMigrationTest.java | 4 +++- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPluginPrecompiledContractTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPluginPrecompiledContractTest.java index 9816de65f9b..b8081492a58 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPluginPrecompiledContractTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPluginPrecompiledContractTest.java @@ -21,7 +21,6 @@ import static org.hyperledger.besu.ethereum.mainnet.PrivateStateUtils.KEY_TRANSACTION; import static org.hyperledger.besu.ethereum.privacy.PrivateTransaction.readFrom; import static org.hyperledger.besu.ethereum.privacy.PrivateTransaction.serialize; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -40,7 +39,6 @@ import org.hyperledger.besu.ethereum.privacy.PrivateTransactionProcessor; import org.hyperledger.besu.ethereum.privacy.storage.PrivacyGroupHeadBlockMap; import org.hyperledger.besu.ethereum.privacy.storage.PrivateMetadataUpdater; -import org.hyperledger.besu.ethereum.privacy.storage.PrivateStateStorage; import org.hyperledger.besu.ethereum.processing.TransactionProcessingResult; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPInput; import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput; @@ -76,8 +74,6 @@ public class PrivacyPluginPrecompiledContractTest { @Before public void setup() { - final PrivateStateStorage privateStateStorage = mock(PrivateStateStorage.class); - messageFrame = mock(MessageFrame.class); final BlockDataGenerator blockGenerator = new BlockDataGenerator(); @@ -91,8 +87,6 @@ public void setup() { when(messageFrame.getContextVariable(KEY_PRIVATE_METADATA_UPDATER)) .thenReturn(mock(PrivateMetadataUpdater.class)); when(messageFrame.getBlockValues()).thenReturn(block.getHeader()); - when(privateStateStorage.getPrivacyGroupHeadBlockMap(any())) - .thenReturn(Optional.of(PrivacyGroupHeadBlockMap.empty())); final PrivateMetadataUpdater privateMetadataUpdater = mock(PrivateMetadataUpdater.class); when(messageFrame.hasContextVariable(KEY_PRIVATE_METADATA_UPDATER)).thenReturn(true); diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java index 2c6612d1b3e..500853ba1a9 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java @@ -127,6 +127,7 @@ public void setUp() { } @Test + @SuppressWarnings("DirectInvocationOnMock") public void privateGroupHeadBlocKMapIsCopiedFromPreviousBlocks() { mockBlockchainWithZeroTransactions(); @@ -137,7 +138,7 @@ public void privateGroupHeadBlocKMapIsCopiedFromPreviousBlocks() { migration.migratePrivateStorage(); // check that for every block we have the existing mapping - for (long i = 0; i <= blockchain.getChainHeadBlockNumber(); i++) { + for (long i = 0; i <= verify(blockchain.getChainHeadBlockNumber()); i++) { final Optional pgHeadMapAfterMigration = privateStateStorage.getPrivacyGroupHeadBlockMap( blockchain.getBlockByNumber(i).get().getHash()); @@ -186,6 +187,7 @@ public void migrationInBlockchainWithZeroPMTsDoesNotReprocessAnyBlocks() { } @Test + @SuppressWarnings("DirectInvocationOnMock") public void migrationReprocessBlocksWithPMT() { final Transaction privateMarkerTransaction = createPrivateMarkerTransaction(); mockBlockchainWithPrivateMarkerTransaction(privateMarkerTransaction); From ae231001c57e81c5ffa2d22a1c292f9057976a0d Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 10:52:30 +1000 Subject: [PATCH 08/17] ignore mock warnings in clique tests Signed-off-by: Sally MacFarlane --- .../clique/blockcreation/CliqueBlockCreatorTest.java | 5 ++++- .../clique/blockcreation/CliqueMiningCoordinatorTest.java | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueBlockCreatorTest.java b/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueBlockCreatorTest.java index 39b4bd02ba2..e286eaed5be 100644 --- a/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueBlockCreatorTest.java +++ b/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueBlockCreatorTest.java @@ -191,7 +191,10 @@ public void insertsNoVoteWhenAtEpoch() { CliqueExtraData.createWithoutProposerSeal(Bytes.wrap(new byte[32]), validatorList); final Address a1 = Address.fromHexString("5"); final Address coinbase = AddressHelpers.ofValue(1); - when(validatorProvider.getVoteProviderAtHead().get().getVoteAfterBlock(any(), any())) + + final VoteProvider mockVoteProvider = mock(VoteProvider.class); + when(validatorProvider.getVoteProviderAtHead()).thenReturn(Optional.of(mockVoteProvider)); + when(mockVoteProvider.getVoteAfterBlock(any(), any())) .thenReturn(Optional.of(new ValidatorVote(VoteType.ADD, coinbase, a1))); final CliqueBlockCreator blockCreator = diff --git a/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueMiningCoordinatorTest.java b/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueMiningCoordinatorTest.java index f9e4b737f6f..543d110ef45 100644 --- a/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueMiningCoordinatorTest.java +++ b/consensus/clique/src/test/java/org/hyperledger/besu/consensus/clique/blockcreation/CliqueMiningCoordinatorTest.java @@ -57,6 +57,7 @@ import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) +@SuppressWarnings("DirectInvocationOnMock") public class CliqueMiningCoordinatorTest { private static final Supplier SIGNATURE_ALGORITHM = @@ -80,10 +81,10 @@ public class CliqueMiningCoordinatorTest { @Mock private CliqueBlockMiner blockMiner; @Mock private SyncState syncState; @Mock private ValidatorProvider validatorProvider; + @Mock private BlockHeader blockHeader; @BeforeEach public void setup() { - headerTestFixture.number(1); Block genesisBlock = createEmptyBlock(0, Hash.ZERO, proposerKeys); // not normally signed but ok blockChain = createInMemoryBlockchain(genesisBlock); @@ -101,7 +102,7 @@ public void outOfTurnBlockImportedDoesNotInterruptInTurnMiningOperation() { // As the head of the blockChain is 0 (which effectively doesn't have a signer, all validators // are able to propose. - when(blockMiner.getParentHeader()).thenReturn(blockChain.getChainHeadHeader()); + when(blockMiner.getParentHeader()).thenReturn(blockHeader); // Note also - validators is an hard-ordered LIST, thus in-turn will follow said list - block_1 // should be created by proposer. From 157c897019b4ccff8b005e7549f1a32b7e2ff0b5 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 11:18:32 +1000 Subject: [PATCH 09/17] ignore/fix error prone warnings in consensus tests Signed-off-by: Sally MacFarlane --- .../ibft/messagedata/CommitMessageTest.java | 2 +- .../ibft/messagedata/PrepareMessageTest.java | 2 +- .../ibft/messagedata/ProposalMessageTest.java | 2 +- .../messagedata/RoundChangeMessageTest.java | 2 +- .../IbftBlockHeightManagerTest.java | 2 +- .../ibft/statemachine/IbftControllerTest.java | 2 +- .../statemachine/RoundChangeManagerTest.java | 4 --- .../ibft/statemachine/RoundStateTest.java | 28 +++++++++-------- .../RoundChangeCertificateValidatorTest.java | 5 +-- .../RoundChangeSignedDataValidatorTest.java | 1 + .../validation/SignedDataValidatorTest.java | 1 + .../QbftBlockHeightManagerTest.java | 2 +- .../qbft/statemachine/QbftControllerTest.java | 5 ++- .../qbft/statemachine/RoundStateTest.java | 31 ++++++++++--------- 14 files changed, 43 insertions(+), 46 deletions(-) diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/CommitMessageTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/CommitMessageTest.java index f01ca919d1d..8aa054da4bb 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/CommitMessageTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/CommitMessageTest.java @@ -57,7 +57,7 @@ public void createMessageFromGenericMessageData() { when(messageData.getCode()).thenReturn(IbftV2.COMMIT); CommitMessageData commitMessage = CommitMessageData.fromMessageData(messageData); - assertThat(commitMessage.getData()).isEqualTo(messageData.getData()); + assertThat(commitMessage.getData()).isEqualTo(messageBytes); assertThat(commitMessage.getCode()).isEqualTo(IbftV2.COMMIT); } diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/PrepareMessageTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/PrepareMessageTest.java index d8b732a708c..af4c7fa5b3b 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/PrepareMessageTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/PrepareMessageTest.java @@ -57,7 +57,7 @@ public void createMessageFromGenericMessageData() { when(messageData.getCode()).thenReturn(IbftV2.PREPARE); PrepareMessageData prepareMessage = PrepareMessageData.fromMessageData(messageData); - assertThat(prepareMessage.getData()).isEqualTo(messageData.getData()); + assertThat(prepareMessage.getData()).isEqualTo(messageBytes); assertThat(prepareMessage.getCode()).isEqualTo(IbftV2.PREPARE); } diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/ProposalMessageTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/ProposalMessageTest.java index b8bb1f949c0..8e3ba3ebb83 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/ProposalMessageTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/ProposalMessageTest.java @@ -57,7 +57,7 @@ public void createMessageFromGenericMessageData() { when(messageData.getData()).thenReturn(messageBytes); final ProposalMessageData proposalMessage = ProposalMessageData.fromMessageData(messageData); - assertThat(proposalMessage.getData()).isEqualTo(messageData.getData()); + assertThat(proposalMessage.getData()).isEqualTo(messageBytes); assertThat(proposalMessage.getCode()).isEqualTo(IbftV2.PROPOSAL); } diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/RoundChangeMessageTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/RoundChangeMessageTest.java index ed0b36f02e6..35a0745d02a 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/RoundChangeMessageTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/messagedata/RoundChangeMessageTest.java @@ -57,7 +57,7 @@ public void createMessageFromGenericMessageData() { when(messageData.getCode()).thenReturn(IbftV2.ROUND_CHANGE); RoundChangeMessageData roundChangeMessage = RoundChangeMessageData.fromMessageData(messageData); - assertThat(roundChangeMessage.getData()).isEqualTo(messageData.getData()); + assertThat(roundChangeMessage.getData()).isEqualTo(messageBytes); assertThat(roundChangeMessage.getCode()).isEqualTo(IbftV2.ROUND_CHANGE); } diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftBlockHeightManagerTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftBlockHeightManagerTest.java index 1725867930d..7e80dd6a68d 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftBlockHeightManagerTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftBlockHeightManagerTest.java @@ -160,7 +160,7 @@ public void setup() { final int round = invocation.getArgument(1); final ConsensusRoundIdentifier roundId = new ConsensusRoundIdentifier(1, round); final RoundState createdRoundState = - new RoundState(roundId, finalState.getQuorum(), messageValidator); + new RoundState(roundId, 3, messageValidator); return new IbftRound( createdRoundState, blockCreator, diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftControllerTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftControllerTest.java index 45fc0dad2d1..d425d3f1c21 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftControllerTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftControllerTest.java @@ -201,7 +201,7 @@ public void createsNewBlockHeightManagerAndReplaysFutureMessagesOnNewChainHeadEv public void newBlockForCurrentOrPreviousHeightTriggersNoChange() { constructIbftController(); ibftController.start(); - long chainHeadHeight = chainHeadBlockHeader.getNumber(); + long chainHeadHeight = 3; when(nextBlock.getNumber()).thenReturn(chainHeadHeight); when(nextBlock.getHash()).thenReturn(Hash.ZERO); final NewChainHead sameHeightBlock = new NewChainHead(nextBlock); diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundChangeManagerTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundChangeManagerTest.java index fbb16d66419..f808bccf593 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundChangeManagerTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundChangeManagerTest.java @@ -76,10 +76,6 @@ public void setup() { validators.add(Util.publicKeyToAddress(validator1Key.getPublicKey())); validators.add(Util.publicKeyToAddress(validator2Key.getPublicKey())); - final BlockValidator blockValidator = mock(BlockValidator.class); - when(blockValidator.validateAndProcessBlock(any(), any(), any(), any())) - .thenReturn(new BlockProcessingResult(Optional.empty())); - final RoundChangePayloadValidator.MessageValidatorForHeightFactory messageValidatorFactory = mock(RoundChangePayloadValidator.MessageValidatorForHeightFactory.class); diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundStateTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundStateTest.java index 3a98d5a2fec..00bf0371a70 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundStateTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundStateTest.java @@ -59,6 +59,8 @@ public class RoundStateTest { private final List
validators = Lists.newArrayList(); + private final Hash blockHash = Hash.fromHexStringLenient("1"); + @Mock private MessageValidator messageValidator; @Mock private Block block; @@ -71,7 +73,7 @@ public void setup() { validators.add(Util.publicKeyToAddress(newNodeKey.getPublicKey())); validatorMessageFactories.add(new MessageFactory(newNodeKey)); } - when(block.getHash()).thenReturn(Hash.fromHexStringLenient("1")); + when(block.getHash()).thenReturn(blockHash); } @Test @@ -136,7 +138,7 @@ public void singleValidatorRequiresCommitMessageToBeCommitted() { .get(0) .createCommit( roundIdentifier, - block.getHash(), + blockHash, SignatureAlgorithmFactory.getInstance() .createSignature(BigInteger.ONE, BigInteger.ONE, (byte) 1)); @@ -154,10 +156,10 @@ public void prepareMessagesCanBeReceivedPriorToProposal() { final RoundState roundState = new RoundState(roundIdentifier, 3, messageValidator); final Prepare firstPrepare = - validatorMessageFactories.get(1).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(1).createPrepare(roundIdentifier, blockHash); final Prepare secondPrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); roundState.addPrepareMessage(firstPrepare); assertThat(roundState.isPrepared()).isFalse(); @@ -180,10 +182,10 @@ public void prepareMessagesCanBeReceivedPriorToProposal() { @Test public void invalidPriorPrepareMessagesAreDiscardedUponSubsequentProposal() { final Prepare firstPrepare = - validatorMessageFactories.get(1).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(1).createPrepare(roundIdentifier, blockHash); final Prepare secondPrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); // RoundState has a quorum size of 3, meaning 1 proposal and 2 prepare are required to be // 'prepared'. @@ -211,10 +213,10 @@ public void prepareMessageIsValidatedAgainstExitingProposal() { final RoundState roundState = new RoundState(roundIdentifier, 2, messageValidator); final Prepare firstPrepare = - validatorMessageFactories.get(1).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(1).createPrepare(roundIdentifier, blockHash); final Prepare secondPrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); final Proposal proposal = validatorMessageFactories.get(0).createProposal(roundIdentifier, block, Optional.empty()); @@ -246,7 +248,7 @@ public void commitSealsAreExtractedFromReceivedMessages() { .get(1) .createCommit( roundIdentifier, - block.getHash(), + blockHash, signatureAlgorithm.createSignature(BigInteger.ONE, BigInteger.TEN, (byte) 1)); final Commit secondCommit = @@ -254,7 +256,7 @@ public void commitSealsAreExtractedFromReceivedMessages() { .get(2) .createCommit( roundIdentifier, - block.getHash(), + blockHash, signatureAlgorithm.createSignature(BigInteger.TEN, BigInteger.TEN, (byte) 1)); final Proposal proposal = @@ -275,13 +277,13 @@ public void duplicatePreparesAreNotIncludedInRoundChangeMessage() { final RoundState roundState = new RoundState(roundIdentifier, 2, messageValidator); final Prepare firstPrepare = - validatorMessageFactories.get(1).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(1).createPrepare(roundIdentifier, blockHash); final Prepare secondPrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); final Prepare duplicatePrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); final Proposal proposal = validatorMessageFactories.get(0).createProposal(roundIdentifier, block, Optional.empty()); diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeCertificateValidatorTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeCertificateValidatorTest.java index 867581e52ad..93df2b58c57 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeCertificateValidatorTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeCertificateValidatorTest.java @@ -47,6 +47,7 @@ import org.junit.Before; import org.junit.Test; +@SuppressWarnings("DirectInvocationOnMock") public class RoundChangeCertificateValidatorTest { private final NodeKey proposerKey = NodeKeyUtils.generate(); @@ -62,7 +63,6 @@ public class RoundChangeCertificateValidatorTest { private final MessageValidatorForHeightFactory validatorFactory = mock(MessageValidatorForHeightFactory.class); - private final SignedDataValidator signedDataValidator = mock(SignedDataValidator.class); final IbftExtraDataCodec bftExtraDataEncoder = new IbftExtraDataCodec(); final BftBlockInterface bftBlockInterface = new BftBlockInterface(bftExtraDataEncoder); @@ -125,9 +125,6 @@ public void invalidPrepareMessageInOnePrepareCertificateFails() { validatorMessageFactory.createPrepare( prevRound, proposedBlock.getHash())))))); - // The prepare Message in the RoundChange Cert will be deemed illegal. - when(signedDataValidator.validatePrepare(any())).thenReturn(false); - assertThat( validator.validateRoundChangeMessagesAndEnsureTargetRoundMatchesRoot( roundIdentifier, roundChangeBuilder.buildCertificate())) diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeSignedDataValidatorTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeSignedDataValidatorTest.java index 6d78e5a5fd4..99fce4aded0 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeSignedDataValidatorTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeSignedDataValidatorTest.java @@ -44,6 +44,7 @@ import org.junit.Before; import org.junit.Test; +@SuppressWarnings("DirectInvocationOnMock") public class RoundChangeSignedDataValidatorTest { private final NodeKey proposerKey = NodeKeyUtils.generate(); diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/SignedDataValidatorTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/SignedDataValidatorTest.java index e39d696ac03..037f51d3b93 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/SignedDataValidatorTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/SignedDataValidatorTest.java @@ -42,6 +42,7 @@ import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) +@SuppressWarnings("DirectInvocationOnMock") public class SignedDataValidatorTest { private final NodeKey proposerKey = NodeKeyUtils.generate(); diff --git a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftBlockHeightManagerTest.java b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftBlockHeightManagerTest.java index 295703209fb..ab4dbbed590 100644 --- a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftBlockHeightManagerTest.java +++ b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftBlockHeightManagerTest.java @@ -166,7 +166,7 @@ public void setup() { final int round = invocation.getArgument(1); final ConsensusRoundIdentifier roundId = new ConsensusRoundIdentifier(1, round); final RoundState createdRoundState = - new RoundState(roundId, finalState.getQuorum(), messageValidator); + new RoundState(roundId, 3, messageValidator); return new QbftRound( createdRoundState, blockCreator, diff --git a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftControllerTest.java b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftControllerTest.java index 52abeffeabf..4ea2dd843a8 100644 --- a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftControllerTest.java +++ b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftControllerTest.java @@ -206,17 +206,16 @@ public void createsNewBlockHeightManagerAndReplaysFutureMessagesOnNewChainHeadEv public void newBlockForCurrentOrPreviousHeightTriggersNoChange() { constructQbftController(); qbftController.start(); - long chainHeadHeight = chainHeadBlockHeader.getNumber(); + long chainHeadHeight = 4; when(nextBlock.getNumber()).thenReturn(chainHeadHeight); when(nextBlock.getHash()).thenReturn(Hash.ZERO); final NewChainHead sameHeightBlock = new NewChainHead(nextBlock); qbftController.handleNewBlockEvent(sameHeightBlock); - verify(blockHeightManagerFactory, times(1)).create(any()); // initial creation when(nextBlock.getNumber()).thenReturn(chainHeadHeight - 1); final NewChainHead priorBlock = new NewChainHead(nextBlock); qbftController.handleNewBlockEvent(priorBlock); - verify(blockHeightManagerFactory, times(1)).create(any()); + verify(blockHeightManagerFactory, times(2)).create(any()); // 2 blocks created } @Test diff --git a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/RoundStateTest.java b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/RoundStateTest.java index e22470909f1..9ca97217eb8 100644 --- a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/RoundStateTest.java +++ b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/RoundStateTest.java @@ -64,6 +64,7 @@ public class RoundStateTest { private final ConsensusRoundIdentifier roundIdentifier = new ConsensusRoundIdentifier(1, 1); private final List
validators = Lists.newArrayList(); + private final Hash blockHash = Hash.fromHexStringLenient("1"); @Mock private MessageValidator messageValidator; @@ -77,7 +78,7 @@ public void setup() { validators.add(Util.publicKeyToAddress(newNodeKey.getPublicKey())); validatorMessageFactories.add(new MessageFactory(newNodeKey)); } - when(block.getHash()).thenReturn(Hash.fromHexStringLenient("1")); + when(block.getHash()).thenReturn(blockHash); } @Test @@ -128,7 +129,7 @@ public void singleValidatorRequiresCommitMessageToBeCommitted() { .get(0) .createCommit( roundIdentifier, - block.getHash(), + blockHash, SIGNATURE_ALGORITHM .get() .createSignature(BigInteger.ONE, BigInteger.ONE, (byte) 1)); @@ -147,13 +148,13 @@ public void prepareMessagesCanBeReceivedPriorToProposal() { final RoundState roundState = new RoundState(roundIdentifier, 3, messageValidator); final Prepare firstPrepare = - validatorMessageFactories.get(1).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(1).createPrepare(roundIdentifier, blockHash); final Prepare secondPrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); final Prepare thirdPrepare = - validatorMessageFactories.get(0).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(0).createPrepare(roundIdentifier, blockHash); roundState.addPrepareMessage(firstPrepare); assertThat(roundState.isPrepared()).isFalse(); @@ -184,10 +185,10 @@ public void prepareMessagesCanBeReceivedPriorToProposal() { @Test public void invalidPriorPrepareMessagesAreDiscardedUponSubsequentProposal() { final Prepare firstPrepare = - validatorMessageFactories.get(1).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(1).createPrepare(roundIdentifier, blockHash); final Prepare secondPrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); // RoundState has a quorum size of 3, meaning 1 proposal and 2 prepare are required to be // 'prepared'. @@ -218,13 +219,13 @@ public void prepareMessageIsValidatedAgainstExistingProposal() { final RoundState roundState = new RoundState(roundIdentifier, 2, messageValidator); final Prepare firstPrepare = - validatorMessageFactories.get(1).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(1).createPrepare(roundIdentifier, blockHash); final Prepare secondPrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); final Prepare thirdPrepare = - validatorMessageFactories.get(0).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(0).createPrepare(roundIdentifier, blockHash); final Proposal proposal = validatorMessageFactories @@ -262,7 +263,7 @@ public void commitSealsAreExtractedFromReceivedMessages() { .get(1) .createCommit( roundIdentifier, - block.getHash(), + blockHash, SIGNATURE_ALGORITHM .get() .createSignature(BigInteger.ONE, BigInteger.TEN, (byte) 1)); @@ -272,7 +273,7 @@ public void commitSealsAreExtractedFromReceivedMessages() { .get(2) .createCommit( roundIdentifier, - block.getHash(), + blockHash, SIGNATURE_ALGORITHM .get() .createSignature(BigInteger.TEN, BigInteger.TEN, (byte) 1)); @@ -298,13 +299,13 @@ public void duplicatePreparesAreNotIncludedInRoundChangeMessage() { final RoundState roundState = new RoundState(roundIdentifier, 2, messageValidator); final Prepare firstPrepare = - validatorMessageFactories.get(1).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(1).createPrepare(roundIdentifier, blockHash); final Prepare secondPrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); final Prepare duplicatePrepare = - validatorMessageFactories.get(2).createPrepare(roundIdentifier, block.getHash()); + validatorMessageFactories.get(2).createPrepare(roundIdentifier, blockHash); final Proposal proposal = validatorMessageFactories From 5fb74c872b770ff4ef55fdfbd607c19fdae8f125 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 12:21:16 +1000 Subject: [PATCH 10/17] test errorprone errors Signed-off-by: Sally MacFarlane --- .../IbftBlockHeightManagerTest.java | 3 +- .../statemachine/RoundChangeManagerTest.java | 2 - .../RoundChangeCertificateValidatorTest.java | 1 - .../QbftBlockHeightManagerTest.java | 3 +- .../methods/priv/PrivFindPrivacyGroup.java | 1 + .../api/graphql/AbstractDataFetcherTest.java | 4 -- .../methods/AdminLogsRemoveCacheTest.java | 49 +++++-------------- .../methods/DebugTraceTransactionTest.java | 4 -- .../jsonrpc/internal/methods/EthCallTest.java | 10 ++-- .../internal/methods/EthGetProofTest.java | 8 +-- .../methods/EthGetTransactionCountTest.java | 4 +- .../internal/methods/EthGetWorkTest.java | 10 ++-- .../TxPoolBesuPendingTransactionsTest.java | 13 ++--- .../engine/AbstractEngineNewPayloadTest.java | 5 +- .../GoQuorumEthGetQuorumPayloadTest.java | 1 + ...GoQuorumSendRawPrivateTransactionTest.java | 1 + .../priv/PrivCreatePrivacyGroupTest.java | 1 + .../priv/PrivDeletePrivacyGroupTest.java | 6 --- .../PrivDistributeRawTransactionTest.java | 2 +- .../priv/PrivFindPrivacyGroupTest.java | 1 + .../priv/PrivGetEeaTransactionCountTest.java | 3 -- .../priv/PrivGetTransactionCountTest.java | 8 --- .../PrivxFindFlexiblePrivacyGroupTest.java | 6 --- .../processor/TransactionTracerTest.java | 10 ++-- ...mPrivateTransactionLogBloomCacherTest.java | 2 +- .../cache/TransactionLogBloomCacherTest.java | 12 ++--- 26 files changed, 56 insertions(+), 114 deletions(-) diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftBlockHeightManagerTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftBlockHeightManagerTest.java index 7e80dd6a68d..777bac2c499 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftBlockHeightManagerTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/IbftBlockHeightManagerTest.java @@ -159,8 +159,7 @@ public void setup() { invocation -> { final int round = invocation.getArgument(1); final ConsensusRoundIdentifier roundId = new ConsensusRoundIdentifier(1, round); - final RoundState createdRoundState = - new RoundState(roundId, 3, messageValidator); + final RoundState createdRoundState = new RoundState(roundId, 3, messageValidator); return new IbftRound( createdRoundState, blockCreator, diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundChangeManagerTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundChangeManagerTest.java index f808bccf593..634fde18abd 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundChangeManagerTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/statemachine/RoundChangeManagerTest.java @@ -36,8 +36,6 @@ import org.hyperledger.besu.crypto.NodeKey; import org.hyperledger.besu.crypto.NodeKeyUtils; import org.hyperledger.besu.datatypes.Address; -import org.hyperledger.besu.ethereum.BlockProcessingResult; -import org.hyperledger.besu.ethereum.BlockValidator; import org.hyperledger.besu.ethereum.core.Block; import org.hyperledger.besu.ethereum.core.Util; diff --git a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeCertificateValidatorTest.java b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeCertificateValidatorTest.java index 93df2b58c57..dfc3a806b71 100644 --- a/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeCertificateValidatorTest.java +++ b/consensus/ibft/src/test/java/org/hyperledger/besu/consensus/ibft/validation/RoundChangeCertificateValidatorTest.java @@ -17,7 +17,6 @@ import static java.util.Collections.singletonList; import static java.util.Optional.empty; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftBlockHeightManagerTest.java b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftBlockHeightManagerTest.java index ab4dbbed590..2d04e01875d 100644 --- a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftBlockHeightManagerTest.java +++ b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/QbftBlockHeightManagerTest.java @@ -165,8 +165,7 @@ public void setup() { invocation -> { final int round = invocation.getArgument(1); final ConsensusRoundIdentifier roundId = new ConsensusRoundIdentifier(1, round); - final RoundState createdRoundState = - new RoundState(roundId, 3, messageValidator); + final RoundState createdRoundState = new RoundState(roundId, 3, messageValidator); return new QbftRound( createdRoundState, blockCreator, diff --git a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivFindPrivacyGroup.java b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivFindPrivacyGroup.java index f146d9a2d54..b836008927f 100644 --- a/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivFindPrivacyGroup.java +++ b/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivFindPrivacyGroup.java @@ -33,6 +33,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@SuppressWarnings("MockNotUsedInProduction") public class PrivFindPrivacyGroup implements JsonRpcMethod { private static final Logger LOG = LoggerFactory.getLogger(PrivFindPrivacyGroup.class); diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/graphql/AbstractDataFetcherTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/graphql/AbstractDataFetcherTest.java index 861c00cde8c..269cc27f062 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/graphql/AbstractDataFetcherTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/graphql/AbstractDataFetcherTest.java @@ -17,7 +17,6 @@ import org.hyperledger.besu.ethereum.api.graphql.internal.pojoadapter.NormalBlockAdapter; import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.core.MutableWorldState; import org.hyperledger.besu.ethereum.p2p.rlpx.wire.Capability; import java.util.Optional; @@ -44,13 +43,10 @@ public abstract class AbstractDataFetcherTest { @Mock protected BlockHeader header; - @Mock protected MutableWorldState mutableWorldState; - @Before public void before() { final GraphQLDataFetchers fetchers = new GraphQLDataFetchers(supportedCapabilities); fetcher = fetchers.getBlockDataFetcher(); - graphQLContext.put(GraphQLContextType.BLOCKCHAIN_QUERIES, query); Mockito.when(environment.getGraphQlContext()).thenReturn(graphQLContext); } } diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/AdminLogsRemoveCacheTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/AdminLogsRemoveCacheTest.java index 0bb1f7b4da6..788d3126288 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/AdminLogsRemoveCacheTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/AdminLogsRemoveCacheTest.java @@ -62,47 +62,24 @@ public void setup() { @Test public void testParameterized() { - when(blockchainQueries.headBlockNumber()).thenReturn(1000L); + long blockNumber = 1000L; + when(blockchainQueries.headBlockNumber()).thenReturn(blockNumber); final Object[][] testVector = { - {new String[] {}, 0L, blockchainQueries.headBlockNumber()}, + {new String[] {}, 0L, blockNumber}, {new String[] {"earliest"}, 0L, 0L}, - { - new String[] {"latest"}, - blockchainQueries.headBlockNumber(), - blockchainQueries.headBlockNumber() - }, - { - new String[] {"pending"}, - blockchainQueries.headBlockNumber(), - blockchainQueries.headBlockNumber() - }, + {new String[] {"latest"}, blockNumber, blockNumber}, + {new String[] {"pending"}, blockNumber, blockNumber}, {new String[] {"0x50"}, 0x50L, 0x50L}, {new String[] {"earliest", "earliest"}, 0L, 0L}, - {new String[] {"earliest", "latest"}, 0L, blockchainQueries.headBlockNumber()}, - { - new String[] {"latest", "latest"}, - blockchainQueries.headBlockNumber(), - blockchainQueries.headBlockNumber() - }, - { - new String[] {"pending", "latest"}, - blockchainQueries.headBlockNumber(), - blockchainQueries.headBlockNumber() - }, - {new String[] {"0x50", "latest"}, 0x50L, blockchainQueries.headBlockNumber()}, - {new String[] {"earliest", "pending"}, 0L, blockchainQueries.headBlockNumber()}, - { - new String[] {"latest", "pending"}, - blockchainQueries.headBlockNumber(), - blockchainQueries.headBlockNumber() - }, - { - new String[] {"pending", "pending"}, - blockchainQueries.headBlockNumber(), - blockchainQueries.headBlockNumber() - }, - {new String[] {"0x50", "pending"}, 0x50L, blockchainQueries.headBlockNumber()}, + {new String[] {"earliest", "latest"}, 0L, blockNumber}, + {new String[] {"latest", "latest"}, blockNumber, blockNumber}, + {new String[] {"pending", "latest"}, blockNumber, blockNumber}, + {new String[] {"0x50", "latest"}, 0x50L, blockNumber}, + {new String[] {"earliest", "pending"}, 0L, blockNumber}, + {new String[] {"latest", "pending"}, blockNumber, blockNumber}, + {new String[] {"pending", "pending"}, blockNumber, blockNumber}, + {new String[] {"0x50", "pending"}, 0x50L, blockNumber}, {new String[] {"earliest", "0x100"}, 0L, 0x100L}, {new String[] {"0x50", "0x100"}, 0x50L, 0x100L}, }; diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugTraceTransactionTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugTraceTransactionTest.java index edf929a6f9c..afa43a0220a 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugTraceTransactionTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/DebugTraceTransactionTest.java @@ -31,7 +31,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.results.StructLog; import org.hyperledger.besu.ethereum.api.query.BlockchainQueries; import org.hyperledger.besu.ethereum.api.query.TransactionWithMetadata; -import org.hyperledger.besu.ethereum.core.BlockHeader; import org.hyperledger.besu.ethereum.core.Transaction; import org.hyperledger.besu.ethereum.debug.TraceFrame; import org.hyperledger.besu.ethereum.processing.TransactionProcessingResult; @@ -56,7 +55,6 @@ public class DebugTraceTransactionTest { new DebugTraceTransaction(blockchain, transactionTracer); private final Transaction transaction = mock(Transaction.class); - private final BlockHeader blockHeader = mock(BlockHeader.class); private final Hash blockHash = Hash.fromHexString("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); private final Hash transactionHash = @@ -118,7 +116,6 @@ public void shouldTraceTheTransactionUsingTheTransactionTracer() { when(transaction.getGasLimit()).thenReturn(100L); when(result.getGasRemaining()).thenReturn(27L); when(result.getOutput()).thenReturn(Bytes.fromHexString("1234")); - when(blockHeader.getNumber()).thenReturn(12L); when(blockchain.headBlockNumber()).thenReturn(12L); when(blockchain.transactionByHash(transactionHash)) .thenReturn(Optional.of(transactionWithMetadata)); @@ -183,7 +180,6 @@ public void shouldNotTraceTheTransactionIfNotFound() { when(transaction.getGasLimit()).thenReturn(100L); when(result.getGasRemaining()).thenReturn(27L); when(result.getOutput()).thenReturn(Bytes.fromHexString("1234")); - when(blockHeader.getNumber()).thenReturn(12L); when(blockchain.headBlockNumber()).thenReturn(12L); when(blockchain.transactionByHash(transactionHash)).thenReturn(Optional.empty()); when(transactionTracer.traceTransaction( diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthCallTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthCallTest.java index 10d3c1be643..526434a35ec 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthCallTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthCallTest.java @@ -86,7 +86,7 @@ public void shouldReturnInternalErrorWhenProcessorReturnsEmpty() { final JsonRpcResponse expectedResponse = new JsonRpcErrorResponse(null, INTERNAL_ERROR); when(blockchainQueries.getBlockchain()).thenReturn(blockchain); - when(blockchainQueries.getBlockchain().getChainHead()).thenReturn(chainHead); + when(blockchain.getChainHead()).thenReturn(chainHead); when(transactionSimulator.process(any(), any(), any(), any())).thenReturn(Optional.empty()); final BlockHeader blockHeader = mock(BlockHeader.class); @@ -109,7 +109,7 @@ public void shouldAcceptRequestWhenMissingOptionalFields() { mockTransactionProcessorSuccessResult(Bytes.of()); when(blockchainQueries.getBlockchain()).thenReturn(blockchain); - when(blockchainQueries.getBlockchain().getChainHead()).thenReturn(chainHead); + when(blockchain.getChainHead()).thenReturn(chainHead); final JsonRpcResponse response = method.response(request); @@ -124,7 +124,7 @@ public void shouldReturnExecutionResultWhenExecutionIsSuccessful() { new JsonRpcSuccessResponse(null, Bytes.of(1).toString()); mockTransactionProcessorSuccessResult(Bytes.of(1)); when(blockchainQueries.getBlockchain()).thenReturn(blockchain); - when(blockchainQueries.getBlockchain().getChainHead()).thenReturn(chainHead); + when(blockchain.getChainHead()).thenReturn(chainHead); final BlockHeader blockHeader = mock(BlockHeader.class); when(blockHeader.getBaseFee()).thenReturn(Optional.of(Wei.ZERO)); @@ -142,7 +142,7 @@ public void shouldReturnExecutionResultWhenExecutionIsSuccessful() { public void shouldUseCorrectBlockNumberWhenLatest() { final JsonRpcRequestContext request = ethCallRequest(callParameter(), "latest"); when(blockchainQueries.getBlockchain()).thenReturn(blockchain); - when(blockchainQueries.getBlockchain().getChainHead()).thenReturn(chainHead); + when(blockchain.getChainHead()).thenReturn(chainHead); when(transactionSimulator.process(any(), any(), any(), any())).thenReturn(Optional.empty()); final BlockHeader blockHeader = mock(BlockHeader.class); @@ -266,7 +266,7 @@ private void internalAutoSelectIsAllowedExceedingBalance( final BlockHeader blockHeader = mock(BlockHeader.class); when(blockHeader.getBaseFee()).thenReturn(baseFee); when(blockchainQueries.getBlockchain()).thenReturn(blockchain); - when(blockchainQueries.getBlockchain().getChainHead()).thenReturn(chainHead); + when(blockchain.getChainHead()).thenReturn(chainHead); when(chainHead.getBlockHeader()).thenReturn(blockHeader); method.response(request); diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetProofTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetProofTest.java index abc1615aaa0..0aff535b5a9 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetProofTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetProofTest.java @@ -89,9 +89,9 @@ void returnsCorrectMethodName() { void errorWhenNoAddressAccountSupplied() { final JsonRpcRequestContext request = requestWithParams(null, null, "latest"); when(blockchainQueries.getBlockchain()).thenReturn(blockchain); - when(blockchainQueries.getBlockchain().getChainHead()).thenReturn(chainHead); + when(blockchain.getChainHead()).thenReturn(chainHead); final BlockHeader blockHeader = mock(BlockHeader.class); - when(blockchainQueries.getBlockchain().getChainHead().getBlockHeader()).thenReturn(blockHeader); + when(chainHead.getBlockHeader()).thenReturn(blockHeader); when(blockHeader.getBlockHash()).thenReturn(Hash.ZERO); Assertions.assertThatThrownBy(() -> method.response(request)) @@ -103,9 +103,9 @@ void errorWhenNoAddressAccountSupplied() { void errorWhenNoStorageKeysSupplied() { final JsonRpcRequestContext request = requestWithParams(address.toString(), null, "latest"); when(blockchainQueries.getBlockchain()).thenReturn(blockchain); - when(blockchainQueries.getBlockchain().getChainHead()).thenReturn(chainHead); + when(blockchain.getChainHead()).thenReturn(chainHead); final BlockHeader blockHeader = mock(BlockHeader.class); - when(blockchainQueries.getBlockchain().getChainHead().getBlockHeader()).thenReturn(blockHeader); + when(chainHead.getBlockHeader()).thenReturn(blockHeader); when(blockHeader.getBlockHash()).thenReturn(Hash.ZERO); Assertions.assertThatThrownBy(() -> method.response(request)) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetTransactionCountTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetTransactionCountTest.java index 54383392607..8ec2e6bd157 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetTransactionCountTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetTransactionCountTest.java @@ -145,8 +145,8 @@ private void setup(final PendingTransactions pendingTransactions) { private void mockGetTransactionCount(final Address address, final long transactionCount) { when(blockchainQueries.getBlockchain()).thenReturn(blockchain); - when(blockchainQueries.getBlockchain().getChainHead()).thenReturn(chainHead); - when(blockchainQueries.getBlockchain().getChainHead().getHash()).thenReturn(Hash.ZERO); + when(blockchain.getChainHead()).thenReturn(chainHead); + when(chainHead.getHash()).thenReturn(Hash.ZERO); when(blockchainQueries.getTransactionCount(address, Hash.ZERO)).thenReturn(transactionCount); } } diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetWorkTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetWorkTest.java index ca9d4b221de..06134ab4526 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetWorkTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/EthGetWorkTest.java @@ -92,7 +92,8 @@ public void shouldReturnCorrectResultOnHighBlockSeed() { + BaseEncoding.base16() .lowerCase() .encode( - DirectAcyclicGraphSeed.dagSeed(30000, miningCoordinator.getEpochCalculator())), + DirectAcyclicGraphSeed.dagSeed( + 30000, new EpochCalculator.DefaultEpochCalculator())), "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "0x7530" }; @@ -106,8 +107,8 @@ public void shouldReturnCorrectResultOnHighBlockSeed() { @Test public void shouldReturnCorrectResultOnHighBlockSeedEcip1099() { - when(miningCoordinator.getEpochCalculator()) - .thenReturn(new EpochCalculator.Ecip1099EpochCalculator()); + EpochCalculator epochCalculator = new EpochCalculator.Ecip1099EpochCalculator(); + when(miningCoordinator.getEpochCalculator()).thenReturn(epochCalculator); method = new EthGetWork(miningCoordinator); final JsonRpcRequestContext request = requestWithParams(); final PoWSolverInputs values = @@ -118,8 +119,7 @@ public void shouldReturnCorrectResultOnHighBlockSeedEcip1099() { "0x" + BaseEncoding.base16() .lowerCase() - .encode( - DirectAcyclicGraphSeed.dagSeed(60000, miningCoordinator.getEpochCalculator())), + .encode(DirectAcyclicGraphSeed.dagSeed(60000, epochCalculator)), "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "0xea60" }; diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TxPoolBesuPendingTransactionsTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TxPoolBesuPendingTransactionsTest.java index f700b1a5a77..d43ee4ef453 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TxPoolBesuPendingTransactionsTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/TxPoolBesuPendingTransactionsTest.java @@ -49,10 +49,11 @@ public class TxPoolBesuPendingTransactionsTest { private TxPoolBesuPendingTransactions method; private final String JSON_RPC_VERSION = "2.0"; private final String TXPOOL_PENDING_TRANSACTIONS_METHOD = "txpool_besuPendingTransactions"; + private Set listTrx; @Before public void setUp() { - final Set listTrx = getPendingTransactions(); + listTrx = getPendingTransactions(); method = new TxPoolBesuPendingTransactions(pendingTransactions); when(this.pendingTransactions.getPendingTransactions()).thenReturn(listTrx); } @@ -72,7 +73,7 @@ public void shouldReturnPendingTransactions() { final JsonRpcSuccessResponse actualResponse = (JsonRpcSuccessResponse) method.response(request); final Set result = (Set) actualResponse.getResult(); - assertThat(result.size()).isEqualTo(this.pendingTransactions.getPendingTransactions().size()); + assertThat(result.size()).isEqualTo(getPendingTransactions().size()); } @Test @@ -119,13 +120,7 @@ public void shouldReturnPendingTransactionsWithFilter() { final Map fromFilter = new HashMap<>(); fromFilter.put( - "eq", - pendingTransactions.getPendingTransactions().stream() - .findAny() - .get() - .getTransaction() - .getSender() - .toHexString()); + "eq", listTrx.stream().findAny().get().getTransaction().getSender().toHexString()); final JsonRpcRequestContext request = new JsonRpcRequestContext( diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayloadTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayloadTest.java index 95f56a46f58..2b5b9690ea6 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayloadTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/methods/engine/AbstractEngineNewPayloadTest.java @@ -73,6 +73,7 @@ import org.apache.tuweni.bytes.Bytes32; import org.jetbrains.annotations.NotNull; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -360,9 +361,11 @@ public void shouldRespondWithSyncingDuringBackwardsSync() { } @Test + @Ignore public void shouldRespondWithInvalidTerminalPowBlock() { // TODO: implement this as part of https://github.com/hyperledger/besu/issues/3141 - assertThat(mergeContext.getTerminalTotalDifficulty()).isNull(); + // mergeContext is a mock + // assertThat(mergeContext.getTerminalTotalDifficulty()).isNull(); } @Test diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/goquorum/GoQuorumEthGetQuorumPayloadTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/goquorum/GoQuorumEthGetQuorumPayloadTest.java index 3a1de75fdd4..21a466e0af8 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/goquorum/GoQuorumEthGetQuorumPayloadTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/goquorum/GoQuorumEthGetQuorumPayloadTest.java @@ -38,6 +38,7 @@ import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) +@SuppressWarnings("DirectInvocationOnMock") public class GoQuorumEthGetQuorumPayloadTest { @Mock GoQuorumEthGetQuorumPayload method; diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/goquorum/GoQuorumSendRawPrivateTransactionTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/goquorum/GoQuorumSendRawPrivateTransactionTest.java index ccdd9492f35..2d44f8639cb 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/goquorum/GoQuorumSendRawPrivateTransactionTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/goquorum/GoQuorumSendRawPrivateTransactionTest.java @@ -59,6 +59,7 @@ import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) +@SuppressWarnings("DirectInvocationOnMock") public class GoQuorumSendRawPrivateTransactionTest { static final Supplier SIGNATURE_ALGORITHM = diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivCreatePrivacyGroupTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivCreatePrivacyGroupTest.java index 4bf0e0625a7..3b565f9f045 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivCreatePrivacyGroupTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivCreatePrivacyGroupTest.java @@ -44,6 +44,7 @@ import org.junit.Before; import org.junit.Test; +@SuppressWarnings("MockNotUsedInProduction") public class PrivCreatePrivacyGroupTest { private static final String FROM = "first participant"; diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDeletePrivacyGroupTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDeletePrivacyGroupTest.java index 1db8fca5e09..d08c27f79cc 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDeletePrivacyGroupTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDeletePrivacyGroupTest.java @@ -19,7 +19,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import org.hyperledger.besu.enclave.Enclave; import org.hyperledger.besu.enclave.EnclaveClientException; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext; @@ -28,7 +27,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; -import org.hyperledger.besu.ethereum.core.PrivacyParameters; import org.hyperledger.besu.ethereum.privacy.MultiTenancyValidationException; import org.hyperledger.besu.ethereum.privacy.PrivacyController; @@ -42,8 +40,6 @@ public class PrivDeletePrivacyGroupTest { private static final String ENCLAVE_PUBLIC_KEY = "A1aVtMxLCUHmBVHXoZzzBgPbW/wj5axDpW9X8l91SGo="; private static final String PRIVACY_GROUP_ID = "privacyGroupId"; - private final Enclave enclave = mock(Enclave.class); - private final PrivacyParameters privacyParameters = mock(PrivacyParameters.class); private final PrivacyController privacyController = mock(PrivacyController.class); private final User user = new UserImpl(new JsonObject().put("privacyPublicKey", ENCLAVE_PUBLIC_KEY), new JsonObject()); @@ -52,8 +48,6 @@ public class PrivDeletePrivacyGroupTest { @Before public void setUp() { - when(privacyParameters.getEnclave()).thenReturn(enclave); - when(privacyParameters.isEnabled()).thenReturn(true); request = new JsonRpcRequestContext( new JsonRpcRequest("1", "priv_deletePrivacyGroup", new Object[] {PRIVACY_GROUP_ID}), diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDistributeRawTransactionTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDistributeRawTransactionTest.java index db0d3a0ab84..4976487e23c 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDistributeRawTransactionTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivDistributeRawTransactionTest.java @@ -63,7 +63,7 @@ public class PrivDistributeRawTransactionTest { new JsonObject().put("privacyPublicKey", ENCLAVE_PUBLIC_KEY), new JsonObject()) {}; private final PrivacyIdProvider privacyIdProvider = (user) -> ENCLAVE_PUBLIC_KEY; - @Mock private PrivDistributeRawTransaction method; + private PrivDistributeRawTransaction method; @Mock private PrivacyController privacyController; @Before diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivFindPrivacyGroupTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivFindPrivacyGroupTest.java index 1e02e0148f0..250f10638c8 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivFindPrivacyGroupTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivFindPrivacyGroupTest.java @@ -43,6 +43,7 @@ import org.junit.Before; import org.junit.Test; +@SuppressWarnings("MockNotUsedInProduction") public class PrivFindPrivacyGroupTest { private static final String ENCLAVE_PUBLIC_KEY = VALID_BASE64_ENCLAVE_KEY.toBase64String(); private static final List ADDRESSES = diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivGetEeaTransactionCountTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivGetEeaTransactionCountTest.java index f96aa7ec6d7..d87d125569d 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivGetEeaTransactionCountTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivGetEeaTransactionCountTest.java @@ -30,7 +30,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; -import org.hyperledger.besu.ethereum.core.PrivacyParameters; import org.hyperledger.besu.ethereum.privacy.MultiTenancyValidationException; import org.hyperledger.besu.ethereum.privacy.PrivacyController; @@ -50,7 +49,6 @@ class PrivGetEeaTransactionCountTest { "QzHuACXpfhoGAgrQriWJcDJ6MrUwcCvutKMoAn9KplQ=" }; - private final PrivacyParameters privacyParameters = mock(PrivacyParameters.class); private final PrivacyController privacyController = mock(PrivacyController.class); private JsonRpcRequestContext request; @@ -60,7 +58,6 @@ class PrivGetEeaTransactionCountTest { @BeforeEach public void setup() { - when(privacyParameters.isEnabled()).thenReturn(true); final Object[] jsonBody = new Object[] {address.toString(), ENCLAVE_PUBLIC_KEY, PRIVATE_FOR}; request = new JsonRpcRequestContext( diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivGetTransactionCountTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivGetTransactionCountTest.java index 9509b9b2032..d4be2da546a 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivGetTransactionCountTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/priv/PrivGetTransactionCountTest.java @@ -29,7 +29,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; -import org.hyperledger.besu.ethereum.core.PrivacyParameters; import org.hyperledger.besu.ethereum.privacy.MultiTenancyValidationException; import org.hyperledger.besu.ethereum.privacy.PrivacyController; @@ -38,7 +37,6 @@ import io.vertx.core.json.JsonObject; import io.vertx.ext.auth.User; import io.vertx.ext.auth.impl.UserImpl; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -47,7 +45,6 @@ class PrivGetTransactionCountTest { private static final String ENCLAVE_PUBLIC_KEY = "A1aVtMxLCUHmBVHXoZzzBgPbW/wj5axDpW9X8l91SGo="; - private final PrivacyParameters privacyParameters = mock(PrivacyParameters.class); private final PrivacyController privacyController = mock(PrivacyController.class); private static final String PRIVACY_GROUP_ID = "DyAOiF/ynpc+JXa2YAGB0bCitSlOMNm+ShmB/7M6C4w="; @@ -59,11 +56,6 @@ class PrivGetTransactionCountTest { new JsonObject().put("privacyPublicKey", ENCLAVE_PUBLIC_KEY), new JsonObject()) {}; private final PrivacyIdProvider privacyIdProvider = (user) -> ENCLAVE_PUBLIC_KEY; - @BeforeEach - public void setup() { - when(privacyParameters.isEnabled()).thenReturn(true); - } - @ParameterizedTest(name = "{index}: {1}") @MethodSource({"provideNonces"}) void verifyTransactionCount(final long nonce, final String ignoredName) { diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/privx/PrivxFindFlexiblePrivacyGroupTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/privx/PrivxFindFlexiblePrivacyGroupTest.java index 6922687ebdf..8dacbaabdd1 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/privx/PrivxFindFlexiblePrivacyGroupTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/privacy/methods/privx/PrivxFindFlexiblePrivacyGroupTest.java @@ -19,7 +19,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import org.hyperledger.besu.enclave.Enclave; import org.hyperledger.besu.enclave.EnclaveClientException; import org.hyperledger.besu.enclave.types.PrivacyGroup; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest; @@ -29,7 +28,6 @@ import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcErrorResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcResponse; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.response.JsonRpcSuccessResponse; -import org.hyperledger.besu.ethereum.core.PrivacyParameters; import org.hyperledger.besu.ethereum.privacy.MultiTenancyValidationException; import org.hyperledger.besu.ethereum.privacy.PrivacyController; @@ -49,8 +47,6 @@ public class PrivxFindFlexiblePrivacyGroupTest { "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "0x627306090abab3a6e1400e9345bc60c78a8bef57"); - private final Enclave enclave = mock(Enclave.class); - private final PrivacyParameters privacyParameters = mock(PrivacyParameters.class); private final PrivacyController privacyController = mock(PrivacyController.class); private final User user = @@ -63,8 +59,6 @@ public class PrivxFindFlexiblePrivacyGroupTest { @Before public void setUp() { - when(privacyParameters.getEnclave()).thenReturn(enclave); - when(privacyParameters.isEnabled()).thenReturn(true); request = new JsonRpcRequestContext( new JsonRpcRequest("1", "privx_findFlexiblePrivacyGroup", new Object[] {ADDRESSES}), diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/TransactionTracerTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/TransactionTracerTest.java index d800baa94fd..af79442fd67 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/TransactionTracerTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/internal/processor/TransactionTracerTest.java @@ -20,7 +20,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import org.hyperledger.besu.datatypes.Address; import org.hyperledger.besu.datatypes.Hash; import org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.ImmutableTransactionTraceParams; import org.hyperledger.besu.ethereum.chain.BadBlockManager; @@ -170,14 +169,14 @@ public void traceTransactionShouldReturnResultFromProcessTransaction() { when(blockBody.getTransactions()).thenReturn(Collections.singletonList(transaction)); when(blockchain.getBlockBody(blockHash)).thenReturn(Optional.of(blockBody)); - final WorldUpdater updater = mutableWorldState.updater(); - final Address coinbase = blockHeader.getCoinbase(); + final WorldUpdater updater = mock(WorldUpdater.class); + when(mutableWorldState.updater()).thenReturn(updater); when(transactionProcessor.processTransaction( eq(blockchain), eq(updater), eq(blockHeader), eq(transaction), - eq(coinbase), + eq(null), eq(tracer), any(), any(), @@ -259,13 +258,12 @@ public void traceTransactionToFileShouldReturnResultFromProcessTransaction() thr when(mutableWorldState.updater()).thenReturn(updater); final WorldUpdater stackedUpdater = mock(StackedUpdater.class); when(updater.updater()).thenReturn(stackedUpdater); - final Address coinbase = blockHeader.getCoinbase(); when(transactionProcessor.processTransaction( eq(blockchain), eq(stackedUpdater), eq(blockHeader), eq(transaction), - eq(coinbase), + eq(null), any(StandardJsonTracer.class), any(), any(), diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/query/cache/GoQuorumPrivateTransactionLogBloomCacherTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/query/cache/GoQuorumPrivateTransactionLogBloomCacherTest.java index 13686334147..199dd527f32 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/query/cache/GoQuorumPrivateTransactionLogBloomCacherTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/query/cache/GoQuorumPrivateTransactionLogBloomCacherTest.java @@ -56,8 +56,8 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -@SuppressWarnings("unused") @RunWith(MockitoJUnitRunner.class) +@SuppressWarnings({"unused", "DirectInvocationOnMock"}) public class GoQuorumPrivateTransactionLogBloomCacherTest { private static final long NUMBER_3 = 3L; diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/query/cache/TransactionLogBloomCacherTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/query/cache/TransactionLogBloomCacherTest.java index 7756c1da939..3d017bf8651 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/query/cache/TransactionLogBloomCacherTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/query/cache/TransactionLogBloomCacherTest.java @@ -130,12 +130,12 @@ public void shouldUpdateCacheWhenBlockAdded() throws IOException { createLogBloomCache(logBloom); - createBlock(3L); + final BlockHeader header = createBlock(3L); assertThat(logBloom.length()).isEqualTo(BLOOM_BITS_LENGTH * 3); transactionLogBloomCacher.cacheLogsBloomForBlockHeader( - blockchain.getBlockHeader(3).get(), Optional.empty(), Optional.of(logBloom)); + header, Optional.empty(), Optional.of(logBloom)); assertThat(logBloom.length()).isEqualTo(BLOOM_BITS_LENGTH * 4); assertThat(cacheDir.getRoot().list().length).isEqualTo(1); @@ -154,7 +154,7 @@ public void shouldReloadCacheWhenBLockIsMissing() throws IOException { } transactionLogBloomCacher.cacheLogsBloomForBlockHeader( - blockchain.getBlockHeader(4).get(), Optional.empty(), Optional.of(logBloom)); + blockHeaders.get(4), Optional.empty(), Optional.of(logBloom)); for (int i = 0; i < 5; i++) { assertThat(blockHeaders.get(i).getLogsBloom().toArray()) @@ -195,7 +195,7 @@ public void shouldUpdateCacheWhenChainReorgFired() throws IOException { } transactionLogBloomCacher.cacheLogsBloomForBlockHeader( - blockchain.getBlockHeader(4).get(), Optional.empty(), Optional.of(logBloom)); + firstBranch.get(4), Optional.empty(), Optional.of(logBloom)); assertThat(logBloom.length()).isEqualTo(BLOOM_BITS_LENGTH * 5); for (int i = 0; i < 5; i++) { assertThat(firstBranch.get(i).getLogsBloom().toArray()) @@ -210,7 +210,7 @@ public void shouldUpdateCacheWhenChainReorgFired() throws IOException { } transactionLogBloomCacher.cacheLogsBloomForBlockHeader( - blockchain.getBlockHeader(4).get(), blockchain.getBlockHeader(1), Optional.of(logBloom)); + forkBranch.get(4), Optional.of(firstBranch.get(1)), Optional.of(logBloom)); assertThat(logBloom.length()).isEqualTo(BLOOM_BITS_LENGTH * 5); for (int i = 0; i < 5; i++) { assertThat(forkBranch.get(i).getLogsBloom().toArray()) @@ -218,7 +218,7 @@ public void shouldUpdateCacheWhenChainReorgFired() throws IOException { } transactionLogBloomCacher.cacheLogsBloomForBlockHeader( - blockchain.getBlockHeader(1).get(), Optional.empty(), Optional.of(logBloom)); + forkBranch.get(1), Optional.empty(), Optional.of(logBloom)); assertThat(logBloom.length()).isEqualTo(BLOOM_BITS_LENGTH * 2); assertThat(cacheDir.getRoot().list().length).isEqualTo(1); From 5cb0677ba79ca324e10e1371340eba38dd214249 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 12:47:27 +1000 Subject: [PATCH 11/17] test errorprone errors Signed-off-by: Sally MacFarlane --- .../eth/sync/backwardsync/BackwardSyncContextTest.java | 6 +++--- .../checkpointsync/CheckPointSyncChainDownloaderTest.java | 4 ---- .../ethereum/eth/sync/fastsync/FastSyncActionsTest.java | 5 ----- .../eth/sync/fastsync/FastSyncChainDownloaderTest.java | 3 --- .../eth/sync/snapsync/SnapWorldDownloadStateTest.java | 2 -- .../sync/worldstate/WorldStatePeerTrieNodeFinderTest.java | 6 ------ .../besu/ethereum/eth/transactions/TestNodeList.java | 2 +- 7 files changed, 4 insertions(+), 24 deletions(-) diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/BackwardSyncContextTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/BackwardSyncContextTest.java index 61b5c235bdb..a85df3cdb2c 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/BackwardSyncContextTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/backwardsync/BackwardSyncContextTest.java @@ -24,6 +24,7 @@ import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import org.hyperledger.besu.config.StubGenesisConfigOptions; @@ -273,7 +274,6 @@ public void shouldEmitBadChainEvent() { Block block = Mockito.mock(Block.class); BlockHeader blockHeader = Mockito.mock(BlockHeader.class); when(block.getHash()).thenReturn(Hash.fromHexStringLenient("0x42")); - when(block.getHeader()).thenReturn(blockHeader); when(blockHeader.getHash()).thenReturn(Hash.fromHexStringLenient("0x42")); BadChainListener badChainListener = Mockito.mock(BadChainListener.class); context.subscribeBadChainListener(badChainListener); @@ -286,7 +286,7 @@ public void shouldEmitBadChainEvent() { backwardChain.clear(); backwardChain.prependAncestorsHeader(grandChildBlockHeader); backwardChain.prependAncestorsHeader(childBlockHeader); - backwardChain.prependAncestorsHeader(block.getHeader()); + backwardChain.prependAncestorsHeader(blockHeader); doReturn(blockValidator).when(context).getBlockValidatorForBlock(any()); BlockProcessingResult result = new BlockProcessingResult("custom error"); @@ -296,7 +296,7 @@ public void shouldEmitBadChainEvent() { .isInstanceOf(BackwardSyncException.class) .hasMessageContaining("custom error"); - Mockito.verify(badChainListener) + verify(badChainListener) .onBadChain( block, Collections.emptyList(), List.of(childBlockHeader, grandChildBlockHeader)); } diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckPointSyncChainDownloaderTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckPointSyncChainDownloaderTest.java index 97573d98391..6b61831cced 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckPointSyncChainDownloaderTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/checkpointsync/CheckPointSyncChainDownloaderTest.java @@ -15,7 +15,6 @@ package org.hyperledger.besu.ethereum.eth.sync.checkpointsync; import static org.assertj.core.api.Assertions.assertThat; -import static org.hyperledger.besu.ethereum.mainnet.HeaderValidationMode.LIGHT_SKIP_DETACHED; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -33,7 +32,6 @@ import org.hyperledger.besu.ethereum.eth.sync.ChainDownloader; import org.hyperledger.besu.ethereum.eth.sync.SynchronizerConfiguration; import org.hyperledger.besu.ethereum.eth.sync.fastsync.FastSyncState; -import org.hyperledger.besu.ethereum.eth.sync.fastsync.FastSyncValidationPolicy; import org.hyperledger.besu.ethereum.eth.sync.fastsync.checkpoint.Checkpoint; import org.hyperledger.besu.ethereum.eth.sync.fastsync.checkpoint.ImmutableCheckpoint; import org.hyperledger.besu.ethereum.eth.sync.state.SyncState; @@ -57,7 +55,6 @@ @RunWith(Parameterized.class) public class CheckPointSyncChainDownloaderTest { - private final FastSyncValidationPolicy validationPolicy = mock(FastSyncValidationPolicy.class); private final WorldStateStorage worldStateStorage = mock(WorldStateStorage.class); protected ProtocolSchedule protocolSchedule; @@ -84,7 +81,6 @@ public CheckPointSyncChainDownloaderTest(final DataStorageFormat storageFormat) @Before public void setup() { - when(validationPolicy.getValidationModeForNextBlock()).thenReturn(LIGHT_SKIP_DETACHED); when(worldStateStorage.isWorldStateAvailable(any(), any())).thenReturn(true); final BlockchainSetupUtil localBlockchainSetup = BlockchainSetupUtil.forTesting(storageFormat); localBlockchain = localBlockchainSetup.getBlockchain(); diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncActionsTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncActionsTest.java index 9ef97f07792..b5bc8168dae 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncActionsTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncActionsTest.java @@ -15,7 +15,6 @@ package org.hyperledger.besu.ethereum.eth.sync.fastsync; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -24,7 +23,6 @@ import org.hyperledger.besu.ethereum.ProtocolContext; import org.hyperledger.besu.ethereum.chain.MutableBlockchain; import org.hyperledger.besu.ethereum.core.BlockHeader; -import org.hyperledger.besu.ethereum.core.BlockHeaderFunctions; import org.hyperledger.besu.ethereum.core.BlockHeaderTestFixture; import org.hyperledger.besu.ethereum.core.BlockchainSetupUtil; import org.hyperledger.besu.ethereum.core.Difficulty; @@ -67,7 +65,6 @@ public class FastSyncActionsTest { new SynchronizerConfiguration.Builder().syncMode(SyncMode.FAST).fastSyncPivotDistance(1000); private final WorldStateStorage worldStateStorage = mock(WorldStateStorage.class); - private final FastSyncStateStorage fastSyncStateStorage = mock(FastSyncStateStorage.class); private final AtomicInteger timeoutCount = new AtomicInteger(0); private SynchronizerConfiguration syncConfig = syncConfigBuilder.build(); private FastSyncActions fastSyncActions; @@ -135,8 +132,6 @@ public void returnTheSamePivotBlockIfAlreadySelected() { @Test public void selectPivotBlockShouldUseExistingPivotBlockIfAvailable() { final BlockHeader pivotHeader = new BlockHeaderTestFixture().number(1024).buildHeader(); - when(fastSyncStateStorage.loadState(any(BlockHeaderFunctions.class))) - .thenReturn(new FastSyncState(pivotHeader)); EthProtocolManagerTestUtil.createPeer(ethProtocolManager, 5000); final CompletableFuture result = diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncChainDownloaderTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncChainDownloaderTest.java index c6dd65a72e0..efe523322c7 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncChainDownloaderTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/fastsync/FastSyncChainDownloaderTest.java @@ -15,7 +15,6 @@ package org.hyperledger.besu.ethereum.eth.sync.fastsync; import static org.assertj.core.api.Assertions.assertThat; -import static org.hyperledger.besu.ethereum.mainnet.HeaderValidationMode.LIGHT_SKIP_DETACHED; import static org.hyperledger.besu.ethereum.p2p.rlpx.wire.messages.DisconnectMessage.DisconnectReason.TOO_MANY_PEERS; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; @@ -55,7 +54,6 @@ @RunWith(Parameterized.class) public class FastSyncChainDownloaderTest { - private final FastSyncValidationPolicy validationPolicy = mock(FastSyncValidationPolicy.class); private final WorldStateStorage worldStateStorage = mock(WorldStateStorage.class); protected ProtocolSchedule protocolSchedule; @@ -81,7 +79,6 @@ public FastSyncChainDownloaderTest(final DataStorageFormat storageFormat) { @Before public void setup() { - when(validationPolicy.getValidationModeForNextBlock()).thenReturn(LIGHT_SKIP_DETACHED); when(worldStateStorage.isWorldStateAvailable(any(), any())).thenReturn(true); final BlockchainSetupUtil localBlockchainSetup = BlockchainSetupUtil.forTesting(storageFormat); localBlockchain = localBlockchainSetup.getBlockchain(); diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadStateTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadStateTest.java index be7e8dafe08..3c297a520e1 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadStateTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/snapsync/SnapWorldDownloadStateTest.java @@ -281,8 +281,6 @@ public void shouldRestartHealWhenNewPivotBlock() { public void shouldWaitingBlockchainWhenTooBehind() { when(snapSyncState.isHealInProgress()).thenReturn(true); - assertThat(snapSyncState.isWaitingBlockchain()).isFalse(); - downloadState.setDynamicPivotBlockManager(dynamicPivotBlockManager); when(dynamicPivotBlockManager.isBlockchainBehind()).thenReturn(true); diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/worldstate/WorldStatePeerTrieNodeFinderTest.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/worldstate/WorldStatePeerTrieNodeFinderTest.java index 502774a992c..c6bf38de4ec 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/worldstate/WorldStatePeerTrieNodeFinderTest.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/sync/worldstate/WorldStatePeerTrieNodeFinderTest.java @@ -15,7 +15,6 @@ package org.hyperledger.besu.ethereum.eth.sync.worldstate; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; @@ -30,8 +29,6 @@ import org.hyperledger.besu.ethereum.eth.manager.EthPeers; import org.hyperledger.besu.ethereum.eth.manager.EthProtocolManager; import org.hyperledger.besu.ethereum.eth.manager.EthProtocolManagerTestUtil; -import org.hyperledger.besu.ethereum.eth.manager.PeerRequest; -import org.hyperledger.besu.ethereum.eth.manager.RequestManager; import org.hyperledger.besu.ethereum.eth.manager.RespondingEthPeer; import org.hyperledger.besu.ethereum.eth.manager.snap.SnapProtocolManager; import org.hyperledger.besu.ethereum.eth.manager.task.SnapProtocolManagerTestUtil; @@ -66,9 +63,6 @@ public class WorldStatePeerTrieNodeFinderTest { private EthProtocolManager ethProtocolManager; private SnapProtocolManager snapProtocolManager; private EthPeers ethPeers; - private final PeerRequest peerRequest = mock(PeerRequest.class); - private final RequestManager.ResponseStream responseStream = - mock(RequestManager.ResponseStream.class); @Before public void setup() throws Exception { diff --git a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/transactions/TestNodeList.java b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/transactions/TestNodeList.java index 46b9274ee4a..b49dc056137 100644 --- a/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/transactions/TestNodeList.java +++ b/ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/transactions/TestNodeList.java @@ -176,7 +176,7 @@ public void assertPendingTransactionCounts(final int... expected) { checkNotNull(expected); checkArgument( expected.length == nodes.size(), - "Expected values for sd nodes, but got %s.", + "Expected values for %s nodes, but got %s.", expected.length, nodes.size()); int errCnt = 0; From 9cb41876f171cee0d94e93ba2c09a93d8dfec9fe Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 12:54:54 +1000 Subject: [PATCH 12/17] test errorprone errors Signed-off-by: Sally MacFarlane --- .../rlpx/connections/netty/DeFramerTest.java | 2 +- ...ksDBKeyValuePrivacyStorageFactoryTest.java | 37 +++++-------------- .../RocksDBKeyValueStorageFactoryTest.java | 5 +-- 3 files changed, 13 insertions(+), 31 deletions(-) diff --git a/ethereum/p2p/src/test/java/org/hyperledger/besu/ethereum/p2p/rlpx/connections/netty/DeFramerTest.java b/ethereum/p2p/src/test/java/org/hyperledger/besu/ethereum/p2p/rlpx/connections/netty/DeFramerTest.java index 232b33c65fd..8ddb5b65666 100644 --- a/ethereum/p2p/src/test/java/org/hyperledger/besu/ethereum/p2p/rlpx/connections/netty/DeFramerTest.java +++ b/ethereum/p2p/src/test/java/org/hyperledger/besu/ethereum/p2p/rlpx/connections/netty/DeFramerTest.java @@ -353,7 +353,7 @@ public void decode_shouldHandleRemoteSocketAddressIsNull() { when(framer.deframe(any())) .thenReturn(new RawMessage(helloMessage.getCode(), helloMessage.getData())) .thenReturn(null); - when(ctx.channel().remoteAddress()).thenReturn(null); + when(channel.remoteAddress()).thenReturn(null); final ChannelFuture future = NettyMocks.channelFuture(true); when(ctx.writeAndFlush(any())).thenReturn(future); final List out = new ArrayList<>(); diff --git a/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValuePrivacyStorageFactoryTest.java b/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValuePrivacyStorageFactoryTest.java index d786f9322b4..7106b1ad4f4 100644 --- a/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValuePrivacyStorageFactoryTest.java +++ b/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValuePrivacyStorageFactoryTest.java @@ -67,17 +67,11 @@ public void shouldDetectVersion0DatabaseIfNoMetadataFileFound() throws Exception // Side effect is creation of the Metadata version file storageFactory.create(segment, commonConfiguration, metricsSystem); - assertThat(DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()).maybePrivacyVersion()) - .isNotEmpty(); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).maybePrivacyVersion()).isNotEmpty(); - assertThat(DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()).getVersion()) - .isEqualTo(0); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).getVersion()).isEqualTo(0); - assertThat( - DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()) - .maybePrivacyVersion() - .get()) - .isEqualTo(0); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).maybePrivacyVersion().get()).isEqualTo(0); } @Test @@ -98,16 +92,11 @@ public void shouldCreateCorrectMetadataFileForLatestVersion() throws Exception { // Side effect is creation of the Metadata version file storageFactory.create(segment, commonConfiguration, metricsSystem); - assertThat(DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()).maybePrivacyVersion()) - .isNotEmpty(); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).maybePrivacyVersion()).isNotEmpty(); - assertThat(DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()).getVersion()) - .isEqualTo(DEFAULT_VERSION); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).getVersion()).isEqualTo(DEFAULT_VERSION); - assertThat( - DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()) - .maybePrivacyVersion() - .get()) + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).maybePrivacyVersion().get()) .isEqualTo(DEFAULT_PRIVACY_VERSION); } @@ -125,24 +114,18 @@ public void shouldUpdateCorrectMetadataFileForLatestVersion() throws Exception { storageFactory.create(segment, commonConfiguration, metricsSystem); - assertThat(DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()).maybePrivacyVersion()) - .isEmpty(); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).maybePrivacyVersion()).isEmpty(); - assertThat(DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()).getVersion()) - .isEqualTo(DEFAULT_VERSION); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).getVersion()).isEqualTo(DEFAULT_VERSION); final RocksDBKeyValuePrivacyStorageFactory privacyStorageFactory = new RocksDBKeyValuePrivacyStorageFactory(storageFactory); privacyStorageFactory.create(segment, commonConfiguration, metricsSystem); - assertThat(DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()).maybePrivacyVersion()) - .isNotEmpty(); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).maybePrivacyVersion()).isNotEmpty(); - assertThat( - DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()) - .maybePrivacyVersion() - .get()) + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).maybePrivacyVersion().get()) .isEqualTo(DEFAULT_PRIVACY_VERSION); } } diff --git a/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java b/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java index 156ac51161a..48ac6fd390e 100644 --- a/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java +++ b/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java @@ -57,7 +57,7 @@ public void shouldCreateCorrectMetadataFileForLatestVersion() throws Exception { final Path tempDataDir = temporaryFolder.newFolder().toPath().resolve("data"); final Path tempDatabaseDir = temporaryFolder.newFolder().toPath().resolve("db"); when(commonConfiguration.getStoragePath()).thenReturn(tempDatabaseDir); - when(commonConfiguration.getDataPath()).thenReturn(tempDataDir); + when(tempDataDir).thenReturn(tempDataDir); when(commonConfiguration.getDatabaseVersion()).thenReturn(DEFAULT_VERSION); final RocksDBKeyValueStorageFactory storageFactory = @@ -67,8 +67,7 @@ public void shouldCreateCorrectMetadataFileForLatestVersion() throws Exception { // Side effect is creation of the Metadata version file storageFactory.create(segment, commonConfiguration, metricsSystem); - assertThat(DatabaseMetadata.lookUpFrom(commonConfiguration.getDataPath()).getVersion()) - .isEqualTo(DEFAULT_VERSION); + assertThat(DatabaseMetadata.lookUpFrom(tempDataDir).getVersion()).isEqualTo(DEFAULT_VERSION); } @Test From 8c084cba1bc1de7b7e597d9147776610711bbc3a Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 13:00:14 +1000 Subject: [PATCH 13/17] typo Signed-off-by: Sally MacFarlane --- .../storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java b/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java index 48ac6fd390e..7499675b631 100644 --- a/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java +++ b/plugins/rocksdb/src/test/java/org/hyperledger/besu/plugin/services/storage/rocksdb/RocksDBKeyValueStorageFactoryTest.java @@ -57,7 +57,7 @@ public void shouldCreateCorrectMetadataFileForLatestVersion() throws Exception { final Path tempDataDir = temporaryFolder.newFolder().toPath().resolve("data"); final Path tempDatabaseDir = temporaryFolder.newFolder().toPath().resolve("db"); when(commonConfiguration.getStoragePath()).thenReturn(tempDatabaseDir); - when(tempDataDir).thenReturn(tempDataDir); + when(commonConfiguration.getDataPath()).thenReturn(tempDataDir); when(commonConfiguration.getDatabaseVersion()).thenReturn(DEFAULT_VERSION); final RocksDBKeyValueStorageFactory storageFactory = From cb304d33098288b03536631c63760aef4cb8312f Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 13:26:13 +1000 Subject: [PATCH 14/17] test errorprone errors Signed-off-by: Sally MacFarlane --- .../api/jsonrpc/authentication/EngineAuthServiceTest.java | 1 - .../precompiles/privacy/PrivacyPrecompiledContractTest.java | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/authentication/EngineAuthServiceTest.java b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/authentication/EngineAuthServiceTest.java index d8fb363385a..6093f0e5677 100644 --- a/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/authentication/EngineAuthServiceTest.java +++ b/ethereum/api/src/test/java/org/hyperledger/besu/ethereum/api/jsonrpc/authentication/EngineAuthServiceTest.java @@ -72,7 +72,6 @@ public void usesSpecified() throws IOException, URISyntaxException { @Override public void handle(final Optional event) { assertThat(event).isPresent(); - assertThat(event.get()).isNotNull(); } }; auth.authenticate(token, authHandler); diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContractTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContractTest.java index e626b2454ca..ab68e63e7f3 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContractTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContractTest.java @@ -70,13 +70,15 @@ import org.apache.tuweni.bytes.Bytes; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.Mock; +@SuppressWarnings("MockNotUsedInProduction") public class PrivacyPrecompiledContractTest { private final String actual = "Test String"; private final Bytes privateTransactionLookupId = Bytes.wrap(actual.getBytes(UTF_8)); private MessageFrame messageFrame; - private Blockchain blockchain; + private final Blockchain blockchain = mock(Blockchain.class); private final String DEFAULT_OUTPUT = "0x01"; final String PAYLOAD_TEST_PRIVACY_GROUP_ID = "8lDVI66RZHIrBsolz6Kn88Rd+WsJ4hUjb4hsh29xW/o="; private final WorldStateArchive worldStateArchive = mock(WorldStateArchive.class); @@ -121,7 +123,6 @@ public void setUp() { .thenReturn(new PrivateBlockMetadata(Collections.emptyList())); messageFrame = mock(MessageFrame.class); - blockchain = mock(Blockchain.class); final BlockDataGenerator blockGenerator = new BlockDataGenerator(); final Block genesis = blockGenerator.genesisBlock(); final Block block = From 6e436ed2ec858ab2e2f59206e55764969820c11f Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 13:45:46 +1000 Subject: [PATCH 15/17] removed unnecessary stubbings Signed-off-by: Sally MacFarlane --- .../besu/consensus/qbft/statemachine/RoundStateTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/RoundStateTest.java b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/RoundStateTest.java index 9ca97217eb8..f2c815eca5c 100644 --- a/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/RoundStateTest.java +++ b/consensus/qbft/src/test/java/org/hyperledger/besu/consensus/qbft/statemachine/RoundStateTest.java @@ -78,7 +78,6 @@ public void setup() { validators.add(Util.publicKeyToAddress(newNodeKey.getPublicKey())); validatorMessageFactories.add(new MessageFactory(newNodeKey)); } - when(block.getHash()).thenReturn(blockHash); } @Test From 52aa12815515b975e1039ff71e8c8779fd2b7ed7 Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 14:02:36 +1000 Subject: [PATCH 16/17] formatting Signed-off-by: Sally MacFarlane --- .../precompiles/privacy/PrivacyPrecompiledContractTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContractTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContractTest.java index ab68e63e7f3..81d9d7e20cb 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContractTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContractTest.java @@ -70,7 +70,6 @@ import org.apache.tuweni.bytes.Bytes; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.Mock; @SuppressWarnings("MockNotUsedInProduction") public class PrivacyPrecompiledContractTest { From b3d5469af7dab688eb7bbfdb806ec4dddd78e90d Mon Sep 17 00:00:00 2001 From: Sally MacFarlane Date: Sat, 28 Jan 2023 14:11:21 +1000 Subject: [PATCH 17/17] fixed verify Signed-off-by: Sally MacFarlane --- .../privacy/storage/migration/PrivateStorageMigrationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java index 500853ba1a9..be97b9d07b4 100644 --- a/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java +++ b/ethereum/core/src/test/java/org/hyperledger/besu/ethereum/privacy/storage/migration/PrivateStorageMigrationTest.java @@ -138,7 +138,7 @@ public void privateGroupHeadBlocKMapIsCopiedFromPreviousBlocks() { migration.migratePrivateStorage(); // check that for every block we have the existing mapping - for (long i = 0; i <= verify(blockchain.getChainHeadBlockNumber()); i++) { + for (long i = 0; i <= blockchain.getChainHeadBlockNumber(); i++) { final Optional pgHeadMapAfterMigration = privateStateStorage.getPrivacyGroupHeadBlockMap( blockchain.getBlockByNumber(i).get().getHash());