An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
besu/acceptance-tests/tests/build.gradle

239 lines
8.3 KiB

/*
* Copyright 2019 ConsenSys AG.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
* an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*/
plugins {
id 'org.web3j' version '4.9.2'
id 'org.web3j.solidity' version '0.3.5'
}
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.web3j' && details.requested.version == '4.9.2') {
details.useVersion '4.9.4'
details.because 'Plugin version is 4.9.2 (latest), but we want it to use web3j libs version 4.9.4'
}
}
}
web3j { generatedPackageName = 'org.hyperledger.besu.tests.web3j.generated' }
sourceSets.main.solidity.srcDirs = ["$projectDir/contracts"]
solidity { resolvePackages = false }
dependencies {
api 'org.slf4j:slf4j-api'
implementation project(':crypto:algorithms')
testImplementation project(':acceptance-tests:dsl')
PermissioningService Besu Plugin (#2218) * Permissioning: Add plugin extension point Added plugin extension point to allow developers to write their own implementation of `NodePermissioningProvider::isPermitted` This will allow developers to implement their own interpretations of things like on-chain permissioning. Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * refactor: rename NodePermissioningProvider::isPermitted Interface will be used for other pemissioning needs Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * Permissioning: added hook for NodeMessagePermissioning All message sent to a peer will call into isMessagePermitted if providers have been registered through the plugin api Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * AcceptanceTests: test node nodePermissioningProvider 4 node cluster with permissioning blocking a direct between two nodes and permissioning blocking transaction messages for a single node Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: unit tests for NodePermissioningControllerFactory Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: fat finger typo Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: reduce likely hood of flakey test Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: remove comment Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: typos Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: remove jitpack references Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: tidy up EthPeerTest args Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: update plugin hash check Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: improve test reliability Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * refactor: move test-plugins out from besu/main into acceptance-tests Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>
4 years ago
testImplementation project(':acceptance-tests:test-plugins')
testImplementation project(':besu')
testImplementation project(':config')
testImplementation project(':consensus:clique')
testImplementation project(':datatypes')
testImplementation project(':enclave')
testImplementation project(':ethereum:api')
testImplementation project(':ethereum:core')
testImplementation project(path: ':ethereum:core', configuration: 'testSupportArtifacts')
testImplementation project(':ethereum:p2p')
testImplementation project(':ethereum:permissioning')
testImplementation project(':ethereum:rlp')
testImplementation project(':metrics:core')
testImplementation project(':plugin-api')
testImplementation project(':privacy-contracts')
testImplementation project(':testutil')
testImplementation project(':util')
testImplementation 'com.github.tomakehurst:wiremock-jre8-standalone'
testImplementation 'commons-io:commons-io'
testImplementation 'io.grpc:grpc-all'
testImplementation 'io.grpc:grpc-core'
testImplementation 'io.grpc:grpc-netty'
testImplementation 'io.grpc:grpc-stub'
testImplementation 'io.opentelemetry:opentelemetry-extension-trace-propagators'
testImplementation 'io.opentelemetry.instrumentation:opentelemetry-okhttp-3.0'
testImplementation 'io.netty:netty-all'
testImplementation 'io.opentelemetry:opentelemetry-api'
testImplementation 'io.opentelemetry:opentelemetry-exporter-otlp'
testImplementation 'io.opentelemetry.proto:opentelemetry-proto'
testImplementation 'io.opentelemetry:opentelemetry-sdk'
testImplementation 'io.opentelemetry:opentelemetry-sdk-trace'
testImplementation 'io.opentracing.contrib:opentracing-okhttp3'
testImplementation 'io.opentracing:opentracing-api'
testImplementation 'io.opentracing:opentracing-util'
testImplementation 'io.vertx:vertx-core'
testImplementation 'junit:junit'
testImplementation 'org.apache.commons:commons-compress'
testImplementation 'org.apache.logging.log4j:log4j-core'
testImplementation 'io.tmio:tuweni-crypto'
testImplementation 'org.assertj:assertj-core'
testImplementation 'org.awaitility:awaitility'
testImplementation 'org.junit.jupiter:junit-jupiter'
testImplementation 'org.testcontainers:testcontainers'
testImplementation 'org.web3j:abi'
testImplementation 'org.web3j:besu'
testImplementation 'org.web3j:core'
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine'
}
test.enabled = false
sourceSets {
test {
resources {
srcDirs "${rootDir}/acceptance-tests/test-plugins/build/libs"
}
}
}
PermissioningService Besu Plugin (#2218) * Permissioning: Add plugin extension point Added plugin extension point to allow developers to write their own implementation of `NodePermissioningProvider::isPermitted` This will allow developers to implement their own interpretations of things like on-chain permissioning. Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * refactor: rename NodePermissioningProvider::isPermitted Interface will be used for other pemissioning needs Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * Permissioning: added hook for NodeMessagePermissioning All message sent to a peer will call into isMessagePermitted if providers have been registered through the plugin api Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * AcceptanceTests: test node nodePermissioningProvider 4 node cluster with permissioning blocking a direct between two nodes and permissioning blocking transaction messages for a single node Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: unit tests for NodePermissioningControllerFactory Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: fat finger typo Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: reduce likely hood of flakey test Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: remove comment Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: typos Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: remove jitpack references Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: tidy up EthPeerTest args Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: update plugin hash check Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * fix: improve test reliability Signed-off-by: Antony Denyer <git@antonydenyer.co.uk> * refactor: move test-plugins out from besu/main into acceptance-tests Signed-off-by: Antony Denyer <git@antonydenyer.co.uk>
4 years ago
processTestResources.dependsOn(':acceptance-tests:test-plugins:testPluginsJar')
task acceptanceTest(type: Test) {
inputs.property "integration.date", LocalTime.now() // so it runs at every invocation
useJUnitPlatform {}
dependsOn(rootProject.installDist)
setSystemProperties(test.getSystemProperties())
systemProperty 'acctests.runBesuAsProcess', 'true'
systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security"
mustRunAfter rootProject.subprojects*.test
description = 'Runs ALL Besu acceptance tests (mainnet and non-mainnet).'
group = 'verification'
jvmArgs "-XX:ErrorFile=${buildDir}/jvmErrorLogs/java_err_pid%p.log"
testLogging {
exceptionFormat = 'full'
showStackTraces = true
showStandardStreams = Boolean.getBoolean('acctests.showStandardStreams')
showExceptions = true
showCauses = true
}
doFirst { mkdir "${buildDir}/jvmErrorLogs" }
}
task acceptanceTestMainnet(type: Test) {
inputs.property "integration.date", LocalTime.now() // so it runs at every invocation
exclude '**/bft/**'
exclude '**/clique/**'
exclude '**/permissioning/**'
exclude '**/privacy/**'
useJUnitPlatform {}
dependsOn(rootProject.installDist)
setSystemProperties(test.getSystemProperties())
systemProperty 'acctests.runBesuAsProcess', 'true'
systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security"
mustRunAfter rootProject.subprojects*.test
description = 'Runs MAINNET Besu acceptance tests (excluding permissioning, privacy and some other stable features).'
group = 'verification'
jvmArgs "-XX:ErrorFile=${buildDir}/jvmErrorLogs/java_err_pid%p.log"
testLogging {
exceptionFormat = 'full'
showStackTraces = true
showStandardStreams = Boolean.getBoolean('acctests.showStandardStreams')
showExceptions = true
showCauses = true
}
doFirst { mkdir "${buildDir}/jvmErrorLogs" }
}
task acceptanceTestCliqueBft(type: Test) {
inputs.property "integration.date", LocalTime.now() // so it runs at every invocation
include '**/bft/**'
include '**/clique/**'
useJUnitPlatform {}
dependsOn(rootProject.installDist)
setSystemProperties(test.getSystemProperties())
systemProperty 'acctests.runBesuAsProcess', 'true'
systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security"
mustRunAfter rootProject.subprojects*.test
description = 'Runs Clique and BFT Besu acceptance tests.'
group = 'verification'
jvmArgs "-XX:ErrorFile=${buildDir}/jvmErrorLogs/java_err_pid%p.log"
testLogging {
exceptionFormat = 'full'
showStackTraces = true
showStandardStreams = Boolean.getBoolean('acctests.showStandardStreams')
showExceptions = true
showCauses = true
}
doFirst { mkdir "${buildDir}/jvmErrorLogs" }
}
task acceptanceTestPrivacy(type: Test) {
inputs.property "integration.date", LocalTime.now() // so it runs at every invocation
include '**/privacy/**'
useJUnitPlatform {}
dependsOn(rootProject.installDist)
setSystemProperties(test.getSystemProperties())
systemProperty 'acctests.runBesuAsProcess', 'true'
systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security"
mustRunAfter rootProject.subprojects*.test
description = 'Runs Privacy Besu acceptance tests.'
group = 'verification'
jvmArgs "-XX:ErrorFile=${buildDir}/jvmErrorLogs/java_err_pid%p.log"
testLogging {
exceptionFormat = 'full'
showStackTraces = true
showStandardStreams = Boolean.getBoolean('acctests.showStandardStreams')
showExceptions = true
showCauses = true
}
doFirst { mkdir "${buildDir}/jvmErrorLogs" }
}
task acceptanceTestPermissioning(type: Test) {
inputs.property "integration.date", LocalTime.now() // so it runs at every invocation
include '**/permissioning/**'
useJUnitPlatform {}
dependsOn(rootProject.installDist)
setSystemProperties(test.getSystemProperties())
systemProperty 'acctests.runBesuAsProcess', 'true'
systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security"
mustRunAfter rootProject.subprojects*.test
description = 'Runs Permissioning Besu acceptance tests.'
group = 'verification'
jvmArgs "-XX:ErrorFile=${buildDir}/jvmErrorLogs/java_err_pid%p.log"
testLogging {
exceptionFormat = 'full'
showStackTraces = true
showStandardStreams = Boolean.getBoolean('acctests.showStandardStreams')
showExceptions = true
showCauses = true
}
doFirst { mkdir "${buildDir}/jvmErrorLogs" }
}