Skip to content

Commit

Permalink
HDDS-9810. Migrate assertions in unit tests to JUnit5 (apache#5738)
Browse files Browse the repository at this point in the history
  • Loading branch information
raju-balpande authored Dec 6, 2023
1 parent d9eb6b1 commit c0f79c4
Show file tree
Hide file tree
Showing 9 changed files with 140 additions and 109 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

import static java.util.stream.Collectors.toList;
import static org.apache.hadoop.ozone.container.keyvalue.helpers.KeyValueContainerUtil.isSameSchemaVersion;
Expand Down Expand Up @@ -72,6 +73,15 @@ public static Iterable<Object[]> versionParameters() {
.collect(toList());
}

/**
* This method is created to support the parameterized data during
* migration to Junit5.
* @return Stream of ContainerTestVersionInfo objects.
*/
public static Stream<Object> versionParametersStream() {
return layoutList.stream().map(each -> new Object[] {each});
}

@Override
public String toString() {
return "schema=" + schemaVersion + ", layout=" + layout;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,34 +29,31 @@
import org.apache.hadoop.ozone.container.keyvalue.helpers.BlockUtils;
import org.apache.hadoop.ozone.container.keyvalue.helpers.KeyValueContainerLocationUtil;
import org.apache.hadoop.ozone.container.ozoneimpl.ContainerScannerConfiguration;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import java.io.File;
import java.io.RandomAccessFile;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertFalse;


/**
* Basic sanity test for the KeyValueContainerCheck class.
*/
@RunWith(Parameterized.class)
public class TestKeyValueContainerCheck
extends TestKeyValueContainerIntegrityChecks {

public TestKeyValueContainerCheck(ContainerTestVersionInfo versionInfo) {
super(versionInfo);
}

/**
* Sanity test, when there are no corruptions induced.
*/
@Test
public void testKeyValueContainerCheckNoCorruption() throws Exception {
@ParameterizedTest
@MethodSource("data")
public void testKeyValueContainerCheckNoCorruption(
ContainerTestVersionInfo versionInfo) throws Exception {
setUp(versionInfo);
long containerID = 101;
int deletedBlocks = 1;
int normalBlocks = 3;
Expand Down Expand Up @@ -88,8 +85,11 @@ public void testKeyValueContainerCheckNoCorruption() throws Exception {
/**
* Sanity test, when there are corruptions induced.
*/
@Test
public void testKeyValueContainerCheckCorruption() throws Exception {
@ParameterizedTest
@MethodSource("data")
public void testKeyValueContainerCheckCorruption(
ContainerTestVersionInfo versionInfo) throws Exception {
setUp(versionInfo);
long containerID = 102;
int deletedBlocks = 1;
int normalBlocks = 3;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@
import org.apache.hadoop.ozone.container.keyvalue.helpers.BlockUtils;
import org.apache.hadoop.ozone.container.keyvalue.interfaces.ChunkManager;
import org.apache.ozone.test.GenericTestUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.runners.Parameterized;
import org.junit.jupiter.api.AfterEach;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -46,13 +44,14 @@
import java.nio.ByteBuffer;
import java.util.List;
import java.util.UUID;
import java.util.stream.Stream;

import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.hadoop.hdds.scm.ScmConfigKeys.HDDS_DATANODE_DIR_KEY;
import static org.apache.hadoop.ozone.container.common.ContainerTestUtils.COMMIT_STAGE;
import static org.apache.hadoop.ozone.container.common.ContainerTestUtils.WRITE_STAGE;
import static org.apache.hadoop.ozone.container.common.ContainerTestUtils.createDbInstancesForTestIfNeeded;
import static org.junit.Assert.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNotNull;

/**
* Base class for tests identifying issues with key value container contents.
Expand All @@ -62,7 +61,7 @@ public class TestKeyValueContainerIntegrityChecks {
static final Logger LOG =
LoggerFactory.getLogger(TestKeyValueContainerIntegrityChecks.class);

private final ContainerLayoutTestInfo containerLayoutTestInfo;
private ContainerLayoutTestInfo containerLayoutTestInfo;
private MutableVolumeSet volumeSet;
private OzoneConfiguration conf;
private File testRoot;
Expand All @@ -73,10 +72,9 @@ public class TestKeyValueContainerIntegrityChecks {
protected static final int CHUNK_LEN = 3 * UNIT_LEN;
protected static final int CHUNKS_PER_BLOCK = 4;

public TestKeyValueContainerIntegrityChecks(
ContainerTestVersionInfo versionInfo) {
LOG.info("new {} for {}", getClass().getSimpleName(), versionInfo);
this.conf = new OzoneConfiguration();
private void initialize(ContainerTestVersionInfo versionInfo) {
LOG.info("new TestKeyValueContainerIntegrityChecks for {}", versionInfo);
conf = new OzoneConfiguration();
ContainerTestVersionInfo.setTestSchemaVersion(
versionInfo.getSchemaVersion(), conf);
if (versionInfo.getLayout()
Expand All @@ -87,11 +85,12 @@ public TestKeyValueContainerIntegrityChecks(
}
}

@Parameterized.Parameters public static Iterable<Object[]> data() {
return ContainerTestVersionInfo.versionParameters();
private static Stream<Object> data() {
return ContainerTestVersionInfo.versionParametersStream();
}

@Before public void setUp() throws Exception {
public void setUp(ContainerTestVersionInfo versionInfo) throws Exception {
initialize(versionInfo);
LOG.info("Testing layout:{}", containerLayoutTestInfo.getLayout());
this.testRoot = GenericTestUtils.getRandomizedTestDir();
conf.set(HDDS_DATANODE_DIR_KEY, testRoot.getAbsolutePath());
Expand All @@ -103,7 +102,8 @@ public TestKeyValueContainerIntegrityChecks(
chunkManager = containerLayoutTestInfo.createChunkManager(true, null);
}

@After public void teardown() {
@AfterEach
public void teardown() {
BlockUtils.shutdownCache(conf);
volumeSet.shutdown();
FileUtil.fullyDelete(testRoot);
Expand Down
Loading

0 comments on commit c0f79c4

Please sign in to comment.