This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 477c8decfd HDDS-9948. Compose annotation for tests parameterized with
ContainerLayoutVersion (#5839)
477c8decfd is described below
commit 477c8decfd4ca5c2fce69d9a4e89d00a4f0e472c
Author: Zhaohui Wang <[email protected]>
AuthorDate: Wed Dec 20 22:12:35 2023 +0800
HDDS-9948. Compose annotation for tests parameterized with
ContainerLayoutVersion (#5839)
---
.../common/impl/TestContainerDataYaml.java | 34 ++--
.../impl/TestContainerDeletionChoosingPolicy.java | 36 ++---
.../container/common/impl/TestContainerSet.java | 28 +---
.../container/common/impl/TestHddsDispatcher.java | 12 +-
.../TestCloseContainerCommandHandler.java | 33 ++--
.../keyvalue/ContainerLayoutTestInfo.java | 20 ++-
.../TestKeyValueContainerMarkUnhealthy.java | 25 +--
.../container/keyvalue/TestKeyValueHandler.java | 37 ++---
.../replication/TestReplicationSupervisor.java | 178 +++++++++------------
.../client/rpc/read/TestChunkInputStream.java | 12 +-
.../ozone/client/rpc/read/TestKeyInputStream.java | 8 +-
11 files changed, 163 insertions(+), 260 deletions(-)
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDataYaml.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDataYaml.java
index 93f2a11a59..4bd2ece41e 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDataYaml.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDataYaml.java
@@ -29,11 +29,8 @@ import org.apache.hadoop.ozone.OzoneConsts;
import org.apache.hadoop.ozone.container.common.helpers.ContainerUtils;
import org.apache.hadoop.ozone.container.keyvalue.ContainerLayoutTestInfo;
import org.apache.hadoop.ozone.container.keyvalue.KeyValueContainerData;
-import org.junit.jupiter.api.Assertions;
import org.apache.hadoop.ozone.container.upgrade.VersionedDatanodeFeatures;
import org.apache.ozone.test.GenericTestUtils;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
import java.io.File;
import java.io.IOException;
@@ -43,6 +40,7 @@ import java.util.UUID;
import static
org.apache.hadoop.ozone.container.common.impl.ContainerLayoutVersion.FILE_PER_CHUNK;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -69,10 +67,6 @@ public class TestContainerDataYaml {
this.layoutVersion = layoutVersion;
}
- private static Iterable<Object[]> layoutVersion() {
- return ContainerLayoutTestInfo.containerLayoutParameters();
- }
-
/**
* Creates a .container file. cleanup() should be called at the end of the
* test when container file is created.
@@ -111,8 +105,7 @@ public class TestContainerDataYaml {
FileUtil.fullyDelete(new File(testRoot));
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testCreateContainerFile(ContainerLayoutVersion layout)
throws IOException {
setLayoutVersion(layout);
@@ -179,8 +172,7 @@ public class TestContainerDataYaml {
kvData.getDataScanTimestamp().longValue());
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testCreateContainerFileWithoutReplicaIndex(
ContainerLayoutVersion layout) throws IOException {
setLayoutVersion(layout);
@@ -191,14 +183,13 @@ public class TestContainerDataYaml {
final String content =
FileUtils.readFileToString(containerFile, Charset.defaultCharset());
- Assertions.assertFalse(content.contains("replicaIndex"),
+ assertFalse(content.contains("replicaIndex"),
"ReplicaIndex shouldn't be persisted if zero");
cleanup();
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testIncorrectContainerFile(ContainerLayoutVersion layout)
throws IOException {
setLayoutVersion(layout);
@@ -216,8 +207,7 @@ public class TestContainerDataYaml {
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testCheckBackWardCompatibilityOfContainerFile(
ContainerLayoutVersion layout) {
setLayoutVersion(layout);
@@ -258,8 +248,7 @@ public class TestContainerDataYaml {
/**
* Test to verify {@link ContainerUtils#verifyChecksum(ContainerData)}.
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testChecksumInContainerFile(ContainerLayoutVersion layout)
throws IOException {
setLayoutVersion(layout);
@@ -278,8 +267,7 @@ public class TestContainerDataYaml {
/**
* Test to verify {@link ContainerUtils#verifyChecksum(ContainerData)}.
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testChecksumInContainerFileWithReplicaIndex(
ContainerLayoutVersion layout) throws IOException {
setLayoutVersion(layout);
@@ -306,8 +294,7 @@ public class TestContainerDataYaml {
/**
* Test to verify incorrect checksum is detected.
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testIncorrectChecksum(ContainerLayoutVersion layout) {
setLayoutVersion(layout);
try {
@@ -323,8 +310,7 @@ public class TestContainerDataYaml {
/**
* Test to verify disabled checksum with incorrect checksum.
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testDisabledChecksum(ContainerLayoutVersion layout)
throws IOException {
setLayoutVersion(layout);
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDeletionChoosingPolicy.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDeletionChoosingPolicy.java
index b4eb706453..972e0efa6c 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDeletionChoosingPolicy.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerDeletionChoosingPolicy.java
@@ -17,6 +17,9 @@
*/
package org.apache.hadoop.ozone.container.common.impl;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
@@ -41,10 +44,7 @@ import
org.apache.hadoop.ozone.container.keyvalue.KeyValueContainerData;
import
org.apache.hadoop.ozone.container.common.impl.BlockDeletingService.ContainerBlockInfo;
import org.apache.hadoop.ozone.container.ozoneimpl.OzoneContainer;
import org.apache.ozone.test.GenericTestUtils;
-import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.Mockito;
/**
@@ -66,10 +66,6 @@ public class TestContainerDeletionChoosingPolicy {
this.layoutVersion = layout;
}
- private static Iterable<Object[]> layoutVersion() {
- return ContainerLayoutTestInfo.containerLayoutParameters();
- }
-
@BeforeEach
public void init() throws Throwable {
conf = new OzoneConfiguration();
@@ -77,8 +73,7 @@ public class TestContainerDeletionChoosingPolicy {
.getTempPath(TestContainerDeletionChoosingPolicy.class.getSimpleName());
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testRandomChoosingPolicy(ContainerLayoutVersion layout)
throws IOException {
setLayoutVersion(layout);
@@ -86,7 +81,7 @@ public class TestContainerDeletionChoosingPolicy {
if (containerDir.exists()) {
FileUtils.deleteDirectory(new File(path));
}
- Assertions.assertTrue(containerDir.mkdirs());
+ assertTrue(containerDir.mkdirs());
conf.set(
ScmConfigKeys.OZONE_SCM_KEY_VALUE_CONTAINER_DELETION_CHOOSING_POLICY,
@@ -105,7 +100,7 @@ public class TestContainerDeletionChoosingPolicy {
data.closeContainer();
KeyValueContainer container = new KeyValueContainer(data, conf);
containerSet.addContainer(container);
- Assertions.assertTrue(
+ assertTrue(
containerSet.getContainerMapCopy()
.containsKey(data.getContainerID()));
}
@@ -121,7 +116,7 @@ public class TestContainerDeletionChoosingPolicy {
for (ContainerBlockInfo pr : result0) {
totPendingBlocks += pr.getNumBlocksToDelete();
}
- Assertions.assertTrue(totPendingBlocks >= blockLimitPerInterval);
+ assertTrue(totPendingBlocks >= blockLimitPerInterval);
// test random choosing. We choose 100 times the 3 datanodes twice.
//We expect different order at least once.
@@ -138,12 +133,11 @@ public class TestContainerDeletionChoosingPolicy {
}
}
}
- Assertions.fail("Chosen container results were same 100 times");
+ fail("Chosen container results were same 100 times");
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testTopNOrderedChoosingPolicy(ContainerLayoutVersion layout)
throws IOException {
setLayoutVersion(layout);
@@ -151,7 +145,7 @@ public class TestContainerDeletionChoosingPolicy {
if (containerDir.exists()) {
FileUtils.deleteDirectory(new File(path));
}
- Assertions.assertTrue(containerDir.mkdirs());
+ assertTrue(containerDir.mkdirs());
conf.set(
ScmConfigKeys.OZONE_SCM_KEY_VALUE_CONTAINER_DELETION_CHOOSING_POLICY,
@@ -182,7 +176,7 @@ public class TestContainerDeletionChoosingPolicy {
KeyValueContainer container = new KeyValueContainer(data, conf);
data.closeContainer();
containerSet.addContainer(container);
- Assertions.assertTrue(
+ assertTrue(
containerSet.getContainerMapCopy().containsKey(containerId));
}
numberOfBlocks.sort(Collections.reverseOrder());
@@ -196,7 +190,7 @@ public class TestContainerDeletionChoosingPolicy {
for (ContainerBlockInfo pr : result0) {
totPendingBlocks += pr.getNumBlocksToDelete();
}
- Assertions.assertTrue(totPendingBlocks >= blockLimitPerInterval);
+ assertTrue(totPendingBlocks >= blockLimitPerInterval);
List<ContainerBlockInfo> result1 = blockDeletingService
@@ -211,7 +205,7 @@ public class TestContainerDeletionChoosingPolicy {
break;
}
}
- Assertions.assertEquals(containerCount, result1.size());
+ assertEquals(containerCount, result1.size());
// verify the order of return list
int initialName2CountSize = name2Count.size();
@@ -220,11 +214,11 @@ public class TestContainerDeletionChoosingPolicy {
int currentCount =
name2Count.remove(data.getContainerData().getContainerID());
// previous count should not smaller than next one
- Assertions.assertTrue(currentCount > 0 && currentCount <= lastCount);
+ assertTrue(currentCount > 0 && currentCount <= lastCount);
lastCount = currentCount;
}
// ensure all the container data are compared
- Assertions.assertEquals(result1.size(),
+ assertEquals(result1.size(),
initialName2CountSize - name2Count.size());
}
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerSet.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerSet.java
index e075cd66ae..13b8fb6d30 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerSet.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestContainerSet.java
@@ -30,8 +30,6 @@ import
org.apache.hadoop.ozone.container.keyvalue.ContainerLayoutTestInfo;
import org.apache.hadoop.ozone.container.keyvalue.KeyValueContainer;
import org.apache.hadoop.ozone.container.keyvalue.KeyValueContainerData;
import org.apache.ozone.test.GenericTestUtils;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.Mockito;
import java.io.IOException;
@@ -65,12 +63,7 @@ public class TestContainerSet {
this.layoutVersion = layoutVersion;
}
- private static Iterable<Object[]> layoutVersion() {
- return ContainerLayoutTestInfo.containerLayoutParameters();
- }
-
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testAddGetRemoveContainer(ContainerLayoutVersion layout)
throws StorageContainerException {
setLayoutVersion(layout);
@@ -112,8 +105,7 @@ public class TestContainerSet {
assertFalse(containerSet.removeContainer(1000L));
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testIteratorsAndCount(ContainerLayoutVersion layout)
throws StorageContainerException {
setLayoutVersion(layout);
@@ -159,8 +151,7 @@ public class TestContainerSet {
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testIteratorPerVolume(ContainerLayoutVersion layout)
throws StorageContainerException {
setLayoutVersion(layout);
@@ -205,8 +196,7 @@ public class TestContainerSet {
assertEquals(5, count2);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void iteratorIsOrderedByScanTime(ContainerLayoutVersion layout)
throws StorageContainerException {
setLayoutVersion(layout);
@@ -259,8 +249,7 @@ public class TestContainerSet {
assertEquals(containerCount, containersToBeScanned);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testGetContainerReport(ContainerLayoutVersion layout)
throws IOException {
setLayoutVersion(layout);
@@ -273,9 +262,7 @@ public class TestContainerSet {
assertEquals(10, containerReportsRequestProto.getReportsList().size());
}
-
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testListContainer(ContainerLayoutVersion layout)
throws StorageContainerException {
setLayoutVersion(layout);
@@ -289,8 +276,7 @@ public class TestContainerSet {
assertContainerIds(startId, count, result);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testListContainerFromFirstKey(ContainerLayoutVersion layout)
throws StorageContainerException {
setLayoutVersion(layout);
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java
index 3215271245..b547282476 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/impl/TestHddsDispatcher.java
@@ -63,8 +63,6 @@ import org.apache.hadoop.security.token.Token;
import org.apache.ozone.test.GenericTestUtils;
import org.apache.ratis.thirdparty.com.google.protobuf.ByteString;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -103,12 +101,7 @@ public class TestHddsDispatcher {
c -> {
};
- private static Iterable<Object[]> layoutVersion() {
- return ContainerLayoutTestInfo.containerLayoutParameters();
- }
-
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testContainerCloseActionWhenFull(
ContainerLayoutVersion layout) throws IOException {
@@ -166,8 +159,7 @@ public class TestHddsDispatcher {
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testContainerCloseActionWhenVolumeFull(
ContainerLayoutVersion layoutVersion) throws Exception {
String testDir = GenericTestUtils.getTempPath(
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java
index 343341f26a..79107ce111 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestCloseContainerCommandHandler.java
@@ -35,8 +35,6 @@ import
org.apache.hadoop.ozone.container.ozoneimpl.ContainerController;
import org.apache.hadoop.ozone.container.ozoneimpl.OzoneContainer;
import org.apache.hadoop.ozone.protocol.commands.CloseContainerCommand;
import org.apache.ozone.test.GenericTestUtils;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
import java.io.IOException;
import java.util.UUID;
@@ -77,10 +75,6 @@ public class TestCloseContainerCommandHandler {
init();
}
- private static Iterable<Object[]> layoutVersion() {
- return ContainerLayoutTestInfo.containerLayoutParameters();
- }
-
private void init() throws Exception {
OzoneConfiguration conf = new OzoneConfiguration();
context = ContainerTestUtils.getMockContext(randomDatanodeDetails(), conf);
@@ -109,8 +103,7 @@ public class TestCloseContainerCommandHandler {
.thenReturn(false);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void closeContainerWithPipeline(ContainerLayoutVersion layout)
throws Exception {
initLayoutVerison(layout);
@@ -125,8 +118,7 @@ public class TestCloseContainerCommandHandler {
.quasiCloseContainer(eq(container), any());
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void closeContainerWithoutPipeline(ContainerLayoutVersion layout)
throws Exception {
initLayoutVerison(layout);
@@ -144,8 +136,7 @@ public class TestCloseContainerCommandHandler {
.quasiCloseContainer(eq(container), any());
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void closeContainerWithForceFlagSet(ContainerLayoutVersion layout)
throws Exception {
initLayoutVerison(layout);
@@ -159,8 +150,7 @@ public class TestCloseContainerCommandHandler {
verify(containerHandler).closeContainer(container);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void forceCloseQuasiClosedContainer(ContainerLayoutVersion layout)
throws Exception {
initLayoutVerison(layout);
@@ -177,8 +167,7 @@ public class TestCloseContainerCommandHandler {
.closeContainer(container);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void forceCloseOpenContainer(ContainerLayoutVersion layout)
throws Exception {
initLayoutVerison(layout);
@@ -194,8 +183,7 @@ public class TestCloseContainerCommandHandler {
.closeContainer(container);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void forceCloseOpenContainerWithPipeline(ContainerLayoutVersion
layout)
throws Exception {
initLayoutVerison(layout);
@@ -213,8 +201,7 @@ public class TestCloseContainerCommandHandler {
.closeContainer(container);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void closeAlreadyClosedContainer(ContainerLayoutVersion layout)
throws Exception {
initLayoutVerison(layout);
@@ -238,8 +225,7 @@ public class TestCloseContainerCommandHandler {
.submitRequest(any(), any());
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void closeNonExistenceContainer(ContainerLayoutVersion layout)
throws Exception {
initLayoutVerison(layout);
@@ -253,8 +239,7 @@ public class TestCloseContainerCommandHandler {
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void closeMissingContainer(ContainerLayoutVersion layout)
throws Exception {
initLayoutVerison(layout);
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/ContainerLayoutTestInfo.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/ContainerLayoutTestInfo.java
index 6773264830..ab6e2c857c 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/ContainerLayoutTestInfo.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/ContainerLayoutTestInfo.java
@@ -24,10 +24,15 @@ import
org.apache.hadoop.ozone.container.keyvalue.impl.FilePerBlockStrategy;
import org.apache.hadoop.ozone.container.keyvalue.impl.FilePerChunkStrategy;
import org.apache.hadoop.ozone.container.keyvalue.interfaces.BlockManager;
import org.apache.hadoop.ozone.container.keyvalue.interfaces.ChunkManager;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
import java.io.File;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
-import static java.util.stream.Collectors.toList;
import static org.apache.hadoop.hdds.HddsConfigKeys.HDDS_CONTAINER_PERSISTDATA;
import static
org.apache.hadoop.hdds.scm.ScmConfigKeys.OZONE_SCM_CONTAINER_LAYOUT_KEY;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -116,9 +121,14 @@ public enum ContainerLayoutTestInfo {
assertEquals(count, files.length);
}
- public static Iterable<Object[]> containerLayoutParameters() {
- return ContainerLayoutVersion.getAllVersions().stream()
- .map(each -> new Object[] {each})
- .collect(toList());
+ /**
+ * Composite annotation for tests parameterized with {@link
ContainerLayoutTestInfo}.
+ */
+ @Target(ElementType.METHOD)
+ @Retention(RetentionPolicy.RUNTIME)
+ @ParameterizedTest
+
@MethodSource("org.apache.hadoop.ozone.container.common.impl.ContainerLayoutVersion#getAllVersions")
+ public @interface ContainerTest {
+ // composite annotation
}
}
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainerMarkUnhealthy.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainerMarkUnhealthy.java
index 380d0dd9a4..ef8148600e 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainerMarkUnhealthy.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueContainerMarkUnhealthy.java
@@ -28,11 +28,8 @@ import
org.apache.hadoop.ozone.container.common.volume.RoundRobinVolumeChoosingP
import org.apache.hadoop.ozone.container.common.volume.VolumeSet;
import org.apache.hadoop.ozone.container.common.volume.MutableVolumeSet;
import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Timeout;
import org.junit.jupiter.api.io.TempDir;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -47,6 +44,7 @@ import static
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.Con
import static
org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos.ContainerDataProto.State.UNHEALTHY;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.mock;
@@ -78,10 +76,6 @@ public class TestKeyValueContainerMarkUnhealthy {
setup();
}
- private static Iterable<Object[]> layoutVersion() {
- return ContainerLayoutTestInfo.containerLayoutParameters();
- }
-
public void setup() throws Exception {
conf = new OzoneConfiguration();
datanodeId = UUID.randomUUID();
@@ -125,8 +119,7 @@ public class TestKeyValueContainerMarkUnhealthy {
*
* @throws IOException
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testMarkContainerUnhealthy(ContainerLayoutVersion layoutVersion)
throws Exception {
initTestData(layoutVersion);
assertThat(keyValueContainerData.getState(), is(OPEN));
@@ -146,12 +139,11 @@ public class TestKeyValueContainerMarkUnhealthy {
*
* @throws IOException
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testCloseUnhealthyContainer(ContainerLayoutVersion
layoutVersion) throws Exception {
initTestData(layoutVersion);
keyValueContainer.markContainerUnhealthy();
- Assertions.assertThrows(StorageContainerException.class, () ->
+ assertThrows(StorageContainerException.class, () ->
keyValueContainer.markContainerForClose());
}
@@ -159,8 +151,7 @@ public class TestKeyValueContainerMarkUnhealthy {
/**
* Attempting to mark a closed container as unhealthy should succeed.
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testMarkClosedContainerAsUnhealthy(ContainerLayoutVersion
layoutVersion) throws Exception {
initTestData(layoutVersion);
// We need to create the container so the compact-on-close operation
@@ -174,8 +165,7 @@ public class TestKeyValueContainerMarkUnhealthy {
/**
* Attempting to mark a quasi-closed container as unhealthy should succeed.
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testMarkQuasiClosedContainerAsUnhealthy(ContainerLayoutVersion
layoutVersion) throws Exception {
initTestData(layoutVersion);
// We need to create the container so the sync-on-quasi-close operation
@@ -189,8 +179,7 @@ public class TestKeyValueContainerMarkUnhealthy {
/**
* Attempting to mark a closing container as unhealthy should succeed.
*/
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testMarkClosingContainerAsUnhealthy(ContainerLayoutVersion
layoutVersion) throws Exception {
initTestData(layoutVersion);
keyValueContainer.markContainerForClose();
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueHandler.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueHandler.java
index 76cc5f25f0..a970013ef8 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueHandler.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/keyvalue/TestKeyValueHandler.java
@@ -58,17 +58,15 @@ import static
org.apache.hadoop.hdds.HddsConfigKeys.HDDS_DATANODE_VOLUME_CHOOSIN
import static org.apache.hadoop.hdds.HddsConfigKeys.OZONE_METADATA_DIRS;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_DATANODE_DIR_KEY;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
-import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.Timeout;
import org.junit.jupiter.api.io.TempDir;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.mockito.ArgumentMatchers.any;
import org.mockito.Mockito;
@@ -93,10 +91,6 @@ public class TestKeyValueHandler {
private HddsDispatcher dispatcher;
private KeyValueHandler handler;
- private static Iterable<Object[]> layoutVersion() {
- return ContainerLayoutTestInfo.containerLayoutParameters();
- }
-
@BeforeEach
public void setup() throws StorageContainerException {
// Create mock HddsDispatcher and KeyValueHandler.
@@ -309,9 +303,7 @@ public class TestKeyValueHandler {
.build();
}
-
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testCloseInvalidContainer(ContainerLayoutVersion layoutVersion)
throws IOException {
long containerID = 1234L;
@@ -387,17 +379,17 @@ public class TestKeyValueHandler {
createContainerRequest(datanodeId, containerID);
kvHandler.handleCreateContainer(createContainer, null);
- Assertions.assertEquals(1, icrReceived.get());
- Assertions.assertNotNull(containerSet.getContainer(containerID));
+ assertEquals(1, icrReceived.get());
+ assertNotNull(containerSet.getContainer(containerID));
kvHandler.deleteContainer(containerSet.getContainer(containerID), true);
- Assertions.assertEquals(2, icrReceived.get());
- Assertions.assertNull(containerSet.getContainer(containerID));
+ assertEquals(2, icrReceived.get());
+ assertNull(containerSet.getContainer(containerID));
File[] deletedContainers =
hddsVolume.getDeletedContainerDir().listFiles();
assertNotNull(deletedContainers);
- Assertions.assertEquals(0, deletedContainers.length);
+ assertEquals(0, deletedContainers.length);
// Case 2 : failed move of container dir to tmp location should trigger
// a volume scan
@@ -409,9 +401,9 @@ public class TestKeyValueHandler {
kvHandler.handleCreateContainer(createContainer2, null);
- Assertions.assertEquals(3, icrReceived.get());
+ assertEquals(3, icrReceived.get());
Container<?> container = containerSet.getContainer(container2ID);
- Assertions.assertNotNull(container);
+ assertNotNull(container);
File deletedContainerDir = hddsVolume.getDeletedContainerDir();
// to simulate failed move
File dummyDir = new File(DUMMY_PATH);
@@ -419,8 +411,7 @@ public class TestKeyValueHandler {
try {
kvHandler.deleteContainer(container, true);
} catch (StorageContainerException sce) {
- Assertions.assertTrue(
- sce.getMessage().contains("Failed to move container"));
+ assertTrue(sce.getMessage().contains("Failed to move container"));
}
Mockito.verify(volumeSet).checkVolumeAsync(hddsVolume);
// cleanup
@@ -436,7 +427,7 @@ public class TestKeyValueHandler {
String expectedLog =
"Delete container issued on containerID 2 which is " +
"in a failed volume";
- Assertions.assertTrue(kvHandlerLogs.getOutput().contains(expectedLog));
+ assertTrue(kvHandlerLogs.getOutput().contains(expectedLog));
} finally {
FileUtils.deleteDirectory(new File(testDir));
}
diff --git
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
index 1a17e4cea7..fb923ab6a3 100644
---
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
+++
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java
@@ -64,10 +64,7 @@ import
org.apache.hadoop.ozone.protocol.commands.ReplicateContainerCommand;
import org.apache.ozone.test.GenericTestUtils;
import org.apache.ozone.test.TestClock;
import org.junit.jupiter.api.AfterEach;
-import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.Mockito;
import javax.annotation.Nonnull;
@@ -80,6 +77,8 @@ import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalSt
import static
org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState.IN_SERVICE;
import static
org.apache.hadoop.ozone.container.replication.AbstractReplicationTask.Status.DONE;
import static
org.apache.hadoop.ozone.protocol.commands.ReplicateContainerCommand.fromSources;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import static
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.ReplicationCommandPriority.LOW;
import static
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.ReplicationCommandPriority.NORMAL;
@@ -112,10 +111,6 @@ public class TestReplicationSupervisor {
private TestClock clock;
private DatanodeDetails datanode;
- private static Iterable<Object[]> layoutVersion() {
- return ContainerLayoutTestInfo.containerLayoutParameters();
- }
-
@BeforeEach
public void setUp() throws Exception {
clock = new TestClock(Instant.now(), ZoneId.systemDefault());
@@ -136,8 +131,7 @@ public class TestReplicationSupervisor {
replicatorRef.set(null);
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void normal(ContainerLayoutVersion layout) {
this.layoutVersion = layout;
// GIVEN
@@ -152,24 +146,23 @@ public class TestReplicationSupervisor {
supervisor.addTask(createTask(2L));
supervisor.addTask(createTask(5L));
- Assertions.assertEquals(3, supervisor.getReplicationRequestCount());
- Assertions.assertEquals(3, supervisor.getReplicationSuccessCount());
- Assertions.assertEquals(0, supervisor.getReplicationFailureCount());
- Assertions.assertEquals(0, supervisor.getTotalInFlightReplications());
- Assertions.assertEquals(0, supervisor.getQueueSize());
- Assertions.assertEquals(3, set.containerCount());
+ assertEquals(3, supervisor.getReplicationRequestCount());
+ assertEquals(3, supervisor.getReplicationSuccessCount());
+ assertEquals(0, supervisor.getReplicationFailureCount());
+ assertEquals(0, supervisor.getTotalInFlightReplications());
+ assertEquals(0, supervisor.getQueueSize());
+ assertEquals(3, set.containerCount());
MetricsCollectorImpl metricsCollector = new MetricsCollectorImpl();
metrics.getMetrics(metricsCollector, true);
- Assertions.assertEquals(1, metricsCollector.getRecords().size());
+ assertEquals(1, metricsCollector.getRecords().size());
} finally {
metrics.unRegister();
supervisor.stop();
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void duplicateMessage(ContainerLayoutVersion layout) {
this.layoutVersion = layout;
// GIVEN
@@ -184,20 +177,19 @@ public class TestReplicationSupervisor {
supervisor.addTask(createTask(6L));
//THEN
- Assertions.assertEquals(4, supervisor.getReplicationRequestCount());
- Assertions.assertEquals(1, supervisor.getReplicationSuccessCount());
- Assertions.assertEquals(0, supervisor.getReplicationFailureCount());
- Assertions.assertEquals(3, supervisor.getReplicationSkippedCount());
- Assertions.assertEquals(0, supervisor.getTotalInFlightReplications());
- Assertions.assertEquals(0, supervisor.getQueueSize());
- Assertions.assertEquals(1, set.containerCount());
+ assertEquals(4, supervisor.getReplicationRequestCount());
+ assertEquals(1, supervisor.getReplicationSuccessCount());
+ assertEquals(0, supervisor.getReplicationFailureCount());
+ assertEquals(3, supervisor.getReplicationSkippedCount());
+ assertEquals(0, supervisor.getTotalInFlightReplications());
+ assertEquals(0, supervisor.getQueueSize());
+ assertEquals(1, set.containerCount());
} finally {
supervisor.stop();
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void failureHandling(ContainerLayoutVersion layout) {
this.layoutVersion = layout;
// GIVEN
@@ -210,20 +202,19 @@ public class TestReplicationSupervisor {
supervisor.addTask(task);
//THEN
- Assertions.assertEquals(1, supervisor.getReplicationRequestCount());
- Assertions.assertEquals(0, supervisor.getReplicationSuccessCount());
- Assertions.assertEquals(1, supervisor.getReplicationFailureCount());
- Assertions.assertEquals(0, supervisor.getTotalInFlightReplications());
- Assertions.assertEquals(0, supervisor.getQueueSize());
- Assertions.assertEquals(0, set.containerCount());
- Assertions.assertEquals(ReplicationTask.Status.FAILED, task.getStatus());
+ assertEquals(1, supervisor.getReplicationRequestCount());
+ assertEquals(0, supervisor.getReplicationSuccessCount());
+ assertEquals(1, supervisor.getReplicationFailureCount());
+ assertEquals(0, supervisor.getTotalInFlightReplications());
+ assertEquals(0, supervisor.getQueueSize());
+ assertEquals(0, set.containerCount());
+ assertEquals(ReplicationTask.Status.FAILED, task.getStatus());
} finally {
supervisor.stop();
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void stalledDownload() {
// GIVEN
ReplicationSupervisor supervisor = supervisorWith(__ -> noopReplicator,
@@ -238,23 +229,22 @@ public class TestReplicationSupervisor {
supervisor.addTask(createECTask(5L));
//THEN
- Assertions.assertEquals(0, supervisor.getReplicationRequestCount());
- Assertions.assertEquals(0, supervisor.getReplicationSuccessCount());
- Assertions.assertEquals(0, supervisor.getReplicationFailureCount());
- Assertions.assertEquals(5, supervisor.getTotalInFlightReplications());
- Assertions.assertEquals(3, supervisor.getInFlightReplications(
+ assertEquals(0, supervisor.getReplicationRequestCount());
+ assertEquals(0, supervisor.getReplicationSuccessCount());
+ assertEquals(0, supervisor.getReplicationFailureCount());
+ assertEquals(5, supervisor.getTotalInFlightReplications());
+ assertEquals(3, supervisor.getInFlightReplications(
ReplicationTask.class));
- Assertions.assertEquals(2, supervisor.getInFlightReplications(
+ assertEquals(2, supervisor.getInFlightReplications(
ECReconstructionCoordinatorTask.class));
- Assertions.assertEquals(0, supervisor.getQueueSize());
- Assertions.assertEquals(0, set.containerCount());
+ assertEquals(0, supervisor.getQueueSize());
+ assertEquals(0, set.containerCount());
} finally {
supervisor.stop();
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void slowDownload() {
// GIVEN
ReplicationSupervisor supervisor = supervisorWith(__ -> slowReplicator,
@@ -268,22 +258,21 @@ public class TestReplicationSupervisor {
supervisor.addTask(createTask(3L));
//THEN
- Assertions.assertEquals(3, supervisor.getTotalInFlightReplications());
- Assertions.assertEquals(2, supervisor.getQueueSize());
+ assertEquals(3, supervisor.getTotalInFlightReplications());
+ assertEquals(2, supervisor.getQueueSize());
// Sleep 4s, wait all tasks processed
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
}
- Assertions.assertEquals(0, supervisor.getTotalInFlightReplications());
- Assertions.assertEquals(0, supervisor.getQueueSize());
+ assertEquals(0, supervisor.getTotalInFlightReplications());
+ assertEquals(0, supervisor.getQueueSize());
} finally {
supervisor.stop();
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testDownloadAndImportReplicatorFailure() throws IOException {
OzoneConfiguration conf = new OzoneConfiguration();
@@ -322,14 +311,13 @@ public class TestReplicationSupervisor {
.captureLogs(DownloadAndImportReplicator.LOG);
supervisor.addTask(createTask(1L));
- Assertions.assertEquals(1, supervisor.getReplicationFailureCount());
- Assertions.assertEquals(0, supervisor.getReplicationSuccessCount());
- Assertions.assertTrue(logCapturer.getOutput()
+ assertEquals(1, supervisor.getReplicationFailureCount());
+ assertEquals(0, supervisor.getReplicationSuccessCount());
+ assertTrue(logCapturer.getOutput()
.contains("Container 1 replication was unsuccessful."));
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testTaskBeyondDeadline(ContainerLayoutVersion layout) {
this.layoutVersion = layout;
ReplicationSupervisor supervisor =
@@ -352,18 +340,17 @@ public class TestReplicationSupervisor {
supervisor.addTask(task2);
supervisor.addTask(task3);
- Assertions.assertEquals(3, supervisor.getReplicationRequestCount());
- Assertions.assertEquals(2, supervisor.getReplicationSuccessCount());
- Assertions.assertEquals(0, supervisor.getReplicationFailureCount());
- Assertions.assertEquals(0, supervisor.getTotalInFlightReplications());
- Assertions.assertEquals(0, supervisor.getQueueSize());
- Assertions.assertEquals(1, supervisor.getReplicationTimeoutCount());
- Assertions.assertEquals(2, set.containerCount());
+ assertEquals(3, supervisor.getReplicationRequestCount());
+ assertEquals(2, supervisor.getReplicationSuccessCount());
+ assertEquals(0, supervisor.getReplicationFailureCount());
+ assertEquals(0, supervisor.getTotalInFlightReplications());
+ assertEquals(0, supervisor.getQueueSize());
+ assertEquals(1, supervisor.getReplicationTimeoutCount());
+ assertEquals(2, set.containerCount());
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testDatanodeOutOfService(ContainerLayoutVersion layout) {
this.layoutVersion = layout;
ReplicationSupervisor supervisor =
@@ -379,17 +366,16 @@ public class TestReplicationSupervisor {
supervisor.addTask(new ReplicationTask(pushCmd, replicatorRef.get()));
supervisor.addTask(new ReplicationTask(pullCmd, replicatorRef.get()));
- Assertions.assertEquals(2, supervisor.getReplicationRequestCount());
- Assertions.assertEquals(1, supervisor.getReplicationSuccessCount());
- Assertions.assertEquals(0, supervisor.getReplicationFailureCount());
- Assertions.assertEquals(0, supervisor.getTotalInFlightReplications());
- Assertions.assertEquals(0, supervisor.getQueueSize());
- Assertions.assertEquals(0, supervisor.getReplicationTimeoutCount());
- Assertions.assertEquals(1, set.containerCount());
+ assertEquals(2, supervisor.getReplicationRequestCount());
+ assertEquals(1, supervisor.getReplicationSuccessCount());
+ assertEquals(0, supervisor.getReplicationFailureCount());
+ assertEquals(0, supervisor.getTotalInFlightReplications());
+ assertEquals(0, supervisor.getQueueSize());
+ assertEquals(0, supervisor.getReplicationTimeoutCount());
+ assertEquals(1, set.containerCount());
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void taskWithObsoleteTermIsDropped(ContainerLayoutVersion layout) {
this.layoutVersion = layout;
final long newTerm = 2;
@@ -399,12 +385,11 @@ public class TestReplicationSupervisor {
context.setTermOfLeaderSCM(newTerm);
supervisor.addTask(createTask(1L));
- Assertions.assertEquals(1, supervisor.getReplicationRequestCount());
- Assertions.assertEquals(0, supervisor.getReplicationSuccessCount());
+ assertEquals(1, supervisor.getReplicationRequestCount());
+ assertEquals(0, supervisor.getReplicationSuccessCount());
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testPriorityOrdering(ContainerLayoutVersion layout)
throws InterruptedException {
this.layoutVersion = layout;
@@ -458,19 +443,19 @@ public class TestReplicationSupervisor {
// Before unblocking the queue, check the queue count for the OrderedTask.
// We loaded 3 High / normal priority and 2 low. The counter should not
// include the low counts.
- Assertions.assertEquals(3,
+ assertEquals(3,
supervisor.getInFlightReplications(OrderedTask.class));
- Assertions.assertEquals(1,
+ assertEquals(1,
supervisor.getInFlightReplications(BlockingTask.class));
// Unblock the queue
completeRunning.countDown();
// Wait for all tasks to complete
tasksCompleteLatch.await();
- Assertions.assertEquals(expectedOrder, completionOrder);
- Assertions.assertEquals(0,
+ assertEquals(expectedOrder, completionOrder);
+ assertEquals(0,
supervisor.getInFlightReplications(OrderedTask.class));
- Assertions.assertEquals(0,
+ assertEquals(0,
supervisor.getInFlightReplications(BlockingTask.class));
}
@@ -610,7 +595,7 @@ public class TestReplicationSupervisor {
}
// assumes same-thread execution
- Assertions.assertEquals(1, supervisor.getTotalInFlightReplications());
+ assertEquals(1, supervisor.getTotalInFlightReplications());
KeyValueContainerData kvcd =
new KeyValueContainerData(task.getContainerId(),
@@ -623,7 +608,7 @@ public class TestReplicationSupervisor {
set.addContainer(kvc);
task.setStatus(DONE);
} catch (Exception e) {
- Assertions.fail("Unexpected error: " + e.getMessage());
+ fail("Unexpected error: " + e.getMessage());
}
}
}
@@ -665,8 +650,7 @@ public class TestReplicationSupervisor {
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void poolSizeCanBeIncreased() {
datanode.setPersistedOpState(IN_SERVICE);
ReplicationSupervisor subject = ReplicationSupervisor.newBuilder()
@@ -680,8 +664,7 @@ public class TestReplicationSupervisor {
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void poolSizeCanBeDecreased() {
datanode.setPersistedOpState(IN_MAINTENANCE);
ReplicationSupervisor subject = ReplicationSupervisor.newBuilder()
@@ -695,8 +678,7 @@ public class TestReplicationSupervisor {
}
}
- @ParameterizedTest
- @MethodSource("layoutVersion")
+ @ContainerLayoutTestInfo.ContainerTest
public void testMaxQueueSize() {
List<DatanodeDetails> datanodes = new ArrayList<>();
datanodes.add(MockDatanodeDetails.randomDatanodeDetails());
@@ -724,22 +706,22 @@ public class TestReplicationSupervisor {
// in progress task will be limited by max. queue size,
// since all tasks are discarded by the executor, none of them complete
- Assertions.assertEquals(maxQueueSize, rs.getTotalInFlightReplications());
+ assertEquals(maxQueueSize, rs.getTotalInFlightReplications());
// queue size is doubled
rs.nodeStateUpdated(HddsProtos.NodeOperationalState.DECOMMISSIONING);
- Assertions.assertEquals(2 * maxQueueSize, rs.getMaxQueueSize());
- Assertions.assertEquals(2 * replicationMaxStreams, threadPoolSize.get());
+ assertEquals(2 * maxQueueSize, rs.getMaxQueueSize());
+ assertEquals(2 * replicationMaxStreams, threadPoolSize.get());
// can schedule more tasks
scheduleTasks(datanodes, rs);
- Assertions.assertEquals(
+ assertEquals(
2 * maxQueueSize, rs.getTotalInFlightReplications());
// queue size is restored
rs.nodeStateUpdated(IN_SERVICE);
- Assertions.assertEquals(maxQueueSize, rs.getMaxQueueSize());
- Assertions.assertEquals(replicationMaxStreams, threadPoolSize.get());
+ assertEquals(maxQueueSize, rs.getMaxQueueSize());
+ assertEquals(replicationMaxStreams, threadPoolSize.get());
}
//schedule 10 container replication
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestChunkInputStream.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestChunkInputStream.java
index cc7375c034..c5301ba419 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestChunkInputStream.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestChunkInputStream.java
@@ -19,7 +19,6 @@ package org.apache.hadoop.ozone.client.rpc.read;
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.util.List;
import org.apache.hadoop.hdds.scm.storage.BlockInputStream;
import org.apache.hadoop.hdds.scm.storage.ChunkInputStream;
@@ -27,10 +26,8 @@ import org.apache.hadoop.ozone.MiniOzoneCluster;
import org.apache.hadoop.ozone.client.OzoneClient;
import org.apache.hadoop.ozone.client.io.KeyInputStream;
import org.apache.hadoop.ozone.container.common.impl.ContainerLayoutVersion;
+import org.apache.hadoop.ozone.container.keyvalue.ContainerLayoutTestInfo;
import org.apache.hadoop.ozone.om.TestBucket;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -41,16 +38,11 @@ import static org.junit.jupiter.api.Assertions.assertNull;
*/
class TestChunkInputStream extends TestInputStreamBase {
- private static List<ContainerLayoutVersion> layouts() {
- return ContainerLayoutVersion.getAllVersions();
- }
-
/**
* Run the tests as a single test method to avoid needing a new mini-cluster
* for each test.
*/
- @ParameterizedTest
- @MethodSource("layouts")
+ @ContainerLayoutTestInfo.ContainerTest
void testAll(ContainerLayoutVersion layout) throws Exception {
try (MiniOzoneCluster cluster = newCluster(layout)) {
cluster.waitForClusterToBeReady();
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java
index bfcc0bdd7b..3ab8ae3118 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/client/rpc/read/TestKeyInputStream.java
@@ -40,6 +40,7 @@ import org.apache.hadoop.ozone.client.io.KeyInputStream;
import org.apache.hadoop.ozone.common.utils.BufferUtils;
import org.apache.hadoop.ozone.container.TestHelper;
import org.apache.hadoop.ozone.container.common.impl.ContainerLayoutVersion;
+import org.apache.hadoop.ozone.container.keyvalue.ContainerLayoutTestInfo;
import org.apache.hadoop.ozone.om.TestBucket;
import org.apache.hadoop.ozone.om.helpers.OmKeyArgs;
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
@@ -64,10 +65,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
*/
class TestKeyInputStream extends TestInputStreamBase {
- private static List<ContainerLayoutVersion> layouts() {
- return ContainerLayoutVersion.getAllVersions();
- }
-
/**
* This method does random seeks and reads and validates the reads are
* correct or not.
@@ -124,8 +121,7 @@ class TestKeyInputStream extends TestInputStreamBase {
* This test runs the others as a single test, so to avoid creating a new
* mini-cluster for each test.
*/
- @ParameterizedTest
- @MethodSource("layouts")
+ @ContainerLayoutTestInfo.ContainerTest
void testNonReplicationReads(ContainerLayoutVersion layout) throws Exception
{
try (MiniOzoneCluster cluster = newCluster(layout)) {
cluster.waitForClusterToBeReady();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]