Fix test cases using gradle build (#2689)
Co-authored-by: Surinder Singh <surinders@splunk.com>
diff --git a/bookkeeper-server/build.gradle b/bookkeeper-server/build.gradle
index 0d9ddbe..e9bcbc6 100644
--- a/bookkeeper-server/build.gradle
+++ b/bookkeeper-server/build.gradle
@@ -41,7 +41,6 @@
implementation depLibs.commonsConfiguration
implementation depLibs.commonsIO
implementation depLibs.commonsLang3
- implementation depLibs.commonsLang3
implementation depLibs.guava
implementation depLibs.httpclient
implementation depLibs.jacksonAnnotations
@@ -53,9 +52,12 @@
implementation depLibs.nettyTransportNativeEpoll
implementation depLibs.protobuf
implementation depLibs.rocksDb
+ implementation depLibs.slf4j
+ implementation depLibs.slf4jLog4j
implementation depLibs.zookeeper
testImplementation project(':bookkeeper-stats-providers:prometheus-metrics-provider')
+ testImplementation project(':bookkeeper-http:vertx-http-server')
testImplementation project(path: ':bookkeeper-common', configuration: 'testArtifacts')
testCompileOnly depLibs.lombok
@@ -64,9 +66,11 @@
testImplementation depLibs.junit
testImplementation depLibs.junitFoundation
testImplementation depLibs.kerbySimpleKdc
+ testImplementation depLibs.metricsCore
testImplementation depLibs.mockito
testImplementation depLibs.powermockJunit
testImplementation depLibs.powermockMockito
+ testImplementation depLibs.snappy
testImplementation depLibs.zookeeperTest
annotationProcessor depLibs.lombok
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EnableZkSecurityBasicTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EnableZkSecurityBasicTest.java
index 34ad145..5558746 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EnableZkSecurityBasicTest.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EnableZkSecurityBasicTest.java
@@ -53,7 +53,7 @@
@BeforeClass
public static void setupJAAS() throws IOException {
System.setProperty("zookeeper.authProvider.1", "org.apache.zookeeper.server.auth.SASLAuthenticationProvider");
- File tmpJaasDir = new File("target").getAbsoluteFile();
+ File tmpJaasDir = Files.createTempDirectory("jassTmpDir").toFile();
File tmpJaasFile = new File(tmpJaasDir, "jaas.conf");
String jassFileContent = "Server {\n"
+ " org.apache.zookeeper.server.auth.DigestLoginModule required\n"
diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ZooKeeperUtil.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ZooKeeperUtil.java
index 6868f92..a6274ec 100644
--- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ZooKeeperUtil.java
+++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ZooKeeperUtil.java
@@ -138,8 +138,16 @@
final TimeUnit timeUnit,
final CountDownLatch l)
throws InterruptedException, IOException {
- Thread[] allthreads = new Thread[Thread.activeCount()];
- Thread.enumerate(allthreads);
+
+ // Gradle handles thread groups differently to surefire, so we must
+ // enumerate from the parent thread group to find the zookeeper sync
+ // thread to sleep
+ ThreadGroup tg = Thread.currentThread().getThreadGroup();
+ while (tg.getParent() != null) {
+ tg = tg.getParent();
+ }
+ Thread[] allthreads = new Thread[tg.activeCount()];
+ tg.enumerate(allthreads);
for (final Thread t : allthreads) {
if (t.getName().contains("SyncThread:0")) {
Thread sleeper = new Thread() {
diff --git a/build.gradle b/build.gradle
index 1b32c48..97d148b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -191,6 +191,24 @@
// Signing task is added by the release plugin
}
}
+ test {
+ testLogging {
+ events "skipped", "failed", "standardError"
+ }
+
+ String testGroup = System.properties['testGroup']
+ if (testGroup == 'client') {
+ include '**/client/*'
+ } else if (testGroup == 'bookie') {
+ include '**/bookie/*'
+ } else if (testGroup == 'other') {
+ exclude '**/client/*'
+ exclude '**/bookie/*'
+ }
+ if (project.hasProperty('excludeTests')) {
+ exclude project.property('excludeTests')
+ }
+ }
}
repositories {
diff --git a/dependencies.gradle b/dependencies.gradle
index 9b1c98e..c306a81 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -122,7 +122,9 @@
jna: "net.java.dev.jna:jna:${depVersions.jna}",
jsr305: "com.google.code.findbugs:jsr305:${depVersions.jsr305}",
junit: "junit:junit:${depVersions.junit}",
- junitFoundation: "com.nordstrom.tools:junit-foundation:${depVersions.junitFoundation}",
+ junitFoundation: dependencies.create("com.nordstrom.tools:junit-foundation:${depVersions.junitFoundation}") {
+ exclude group: 'ch.qos.logback', module: 'logback-classic'
+ },
kerbySimpleKdc: "org.apache.kerby:kerb-simplekdc:${depVersions.kerby}",
log4j: "log4j:log4j:${depVersions.log4j}",
lombok: "org.projectlombok:lombok:${depVersions.lombok}",
@@ -160,6 +162,17 @@
vertxCore: "io.vertx:vertx-core:${depVersions.vertx}",
vertxWeb: "io.vertx:vertx-web:${depVersions.vertx}",
yahooDatasketches: "com.yahoo.datasketches:sketches-core:${depVersions.yahooDatasketches}",
- zookeeper: "org.apache.zookeeper:zookeeper:${depVersions.zookeeper}",
- zookeeperTest: "org.apache.zookeeper:zookeeper:${depVersions.zookeeper}:tests"
+ zookeeper: dependencies.create("org.apache.zookeeper:zookeeper:${depVersions.zookeeper}"){
+ exclude group: "net.java.dev.javacc", module: "javacc"
+ exclude group: "org.slf4j", module: "slf4j-log4j12"
+ exclude group: "org.slf4j", module: "slf4j-api"
+ exclude group: "log4j", module: "log4j"
+ exclude group: "io.netty", module: "*"
+ },
+ zookeeperTest: dependencies.create("org.apache.zookeeper:zookeeper:${depVersions.zookeeper}:tests"){
+ exclude group: "org.slf4j", module: "slf4j-log4j12"
+ exclude group: "org.slf4j", module: "slf4j-api"
+ exclude group: "log4j", module: "log4j"
+ exclude group: "io.netty", module: "*"
+ }
]