This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new af9d37e342f HBASE-29918 Upgrade hbase-diagnostics to use junit5 (#7788)
af9d37e342f is described below
commit af9d37e342f5ca55bd41e16c63560c5eb7dc1601
Author: Liu Xiao <[email protected]>
AuthorDate: Tue Mar 3 22:00:51 2026 +0800
HBASE-29918 Upgrade hbase-diagnostics to use junit5 (#7788)
Signed-off-by: Duo Zhang <[email protected]>
---
hbase-diagnostics/pom.xml | 5 -
.../hadoop/hbase/TestClientClusterMetrics.java | 211 ++++++++++-----------
.../hadoop/hbase/TestPerformanceEvaluation.java | 27 ++-
.../hbase/io/encoding/TestEncodedSeekers.java | 36 ++--
.../io/encoding/TestLoadAndSwitchEncodeOnDisk.java | 28 +--
.../hadoop/hbase/security/TestEncryptionUtil.java | 49 +++--
.../hadoop/hbase/util/TestLoadTestKVGenerator.java | 17 +-
.../hbase/util/TestMiniClusterLoadEncoded.java | 26 ++-
.../hbase/util/TestMiniClusterLoadParallel.java | 26 +--
.../hbase/util/TestMiniClusterLoadSequential.java | 43 ++---
...tBoundedRegionGroupingStrategyUsingWPETool.java | 41 ++--
.../TestFSHLogProviderWithConcurrentWrites.java | 32 ++--
.../wal/TestBoundedRegionGroupingStrategy.java | 58 +++---
13 files changed, 263 insertions(+), 336 deletions(-)
diff --git a/hbase-diagnostics/pom.xml b/hbase-diagnostics/pom.xml
index 5f366ffccb5..60e908217e5 100644
--- a/hbase-diagnostics/pom.xml
+++ b/hbase-diagnostics/pom.xml
@@ -181,11 +181,6 @@
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/TestClientClusterMetrics.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/TestClientClusterMetrics.java
index a459074ba27..a63d9585fa0 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/TestClientClusterMetrics.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/TestClientClusterMetrics.java
@@ -17,6 +17,11 @@
*/
package org.apache.hadoop.hbase;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+
import java.io.IOException;
import java.security.PrivilegedAction;
import java.util.EnumSet;
@@ -58,19 +63,13 @@ import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.hadoop.hbase.util.JVMClusterUtil.MasterThread;
import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-
-@Category(MediumTests.class)
-public class TestClientClusterMetrics {
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestClientClusterMetrics.class);
+@Tag(MediumTests.TAG)
+public class TestClientClusterMetrics {
private static HBaseTestingUtil UTIL;
private static Admin ADMIN;
@@ -94,7 +93,7 @@ public class TestClientClusterMetrics {
}
}
- @BeforeClass
+ @BeforeAll
public static void setUpBeforeClass() throws Exception {
Configuration conf = HBaseConfiguration.create();
conf.set(CoprocessorHost.MASTER_COPROCESSOR_CONF_KEY,
MyObserver.class.getName());
@@ -120,23 +119,21 @@ public class TestClientClusterMetrics {
public void testDefaults() throws Exception {
ClusterMetrics origin = ADMIN.getClusterMetrics();
ClusterMetrics defaults =
ADMIN.getClusterMetrics(EnumSet.allOf(Option.class));
- Assert.assertEquals(origin.getHBaseVersion(), defaults.getHBaseVersion());
- Assert.assertEquals(origin.getClusterId(), defaults.getClusterId());
- Assert.assertEquals(origin.getAverageLoad(), defaults.getAverageLoad(), 0);
- Assert.assertEquals(origin.getBackupMasterNames().size(),
- defaults.getBackupMasterNames().size());
- Assert.assertEquals(origin.getDeadServerNames().size(),
defaults.getDeadServerNames().size());
- Assert.assertEquals(origin.getRegionCount(), defaults.getRegionCount());
- Assert.assertEquals(origin.getLiveServerMetrics().size(),
- defaults.getLiveServerMetrics().size());
- Assert.assertEquals(origin.getMasterInfoPort(),
defaults.getMasterInfoPort());
- Assert.assertEquals(origin.getServersName().size(),
defaults.getServersName().size());
- Assert.assertEquals(ADMIN.getRegionServers().size(),
defaults.getServersName().size());
+ assertEquals(origin.getHBaseVersion(), defaults.getHBaseVersion());
+ assertEquals(origin.getClusterId(), defaults.getClusterId());
+ assertEquals(origin.getAverageLoad(), defaults.getAverageLoad(), 0);
+ assertEquals(origin.getBackupMasterNames().size(),
defaults.getBackupMasterNames().size());
+ assertEquals(origin.getDeadServerNames().size(),
defaults.getDeadServerNames().size());
+ assertEquals(origin.getRegionCount(), defaults.getRegionCount());
+ assertEquals(origin.getLiveServerMetrics().size(),
defaults.getLiveServerMetrics().size());
+ assertEquals(origin.getMasterInfoPort(), defaults.getMasterInfoPort());
+ assertEquals(origin.getServersName().size(),
defaults.getServersName().size());
+ assertEquals(ADMIN.getRegionServers().size(),
defaults.getServersName().size());
// We decommission the first online region server and verify the metrics.
List<ServerName> serverNames = origin.getServersName().subList(0, 1);
ADMIN.decommissionRegionServers(serverNames, false);
- Assert.assertEquals(1,
ADMIN.getClusterMetrics().getDecommissionedServerNames().size());
-
Assert.assertEquals(ADMIN.getClusterMetrics().getDecommissionedServerNames().get(0),
+ assertEquals(1,
ADMIN.getClusterMetrics().getDecommissionedServerNames().size());
+
assertEquals(ADMIN.getClusterMetrics().getDecommissionedServerNames().get(0),
serverNames.get(0));
}
@@ -150,23 +147,21 @@ public class TestClientClusterMetrics {
asyncAdmin.getClusterMetrics(EnumSet.allOf(Option.class));
ClusterMetrics origin = originFuture.get();
ClusterMetrics defaults = defaultsFuture.get();
- Assert.assertEquals(origin.getHBaseVersion(),
defaults.getHBaseVersion());
- Assert.assertEquals(origin.getClusterId(), defaults.getClusterId());
- Assert.assertEquals(origin.getHBaseVersion(),
defaults.getHBaseVersion());
- Assert.assertEquals(origin.getClusterId(), defaults.getClusterId());
- Assert.assertEquals(origin.getAverageLoad(), defaults.getAverageLoad(),
0);
- Assert.assertEquals(origin.getBackupMasterNames().size(),
- defaults.getBackupMasterNames().size());
- Assert.assertEquals(origin.getDeadServerNames().size(),
defaults.getDeadServerNames().size());
- Assert.assertEquals(origin.getRegionCount(), defaults.getRegionCount());
- Assert.assertEquals(origin.getLiveServerMetrics().size(),
- defaults.getLiveServerMetrics().size());
- Assert.assertEquals(origin.getMasterInfoPort(),
defaults.getMasterInfoPort());
- Assert.assertEquals(origin.getServersName().size(),
defaults.getServersName().size());
+ assertEquals(origin.getHBaseVersion(), defaults.getHBaseVersion());
+ assertEquals(origin.getClusterId(), defaults.getClusterId());
+ assertEquals(origin.getHBaseVersion(), defaults.getHBaseVersion());
+ assertEquals(origin.getClusterId(), defaults.getClusterId());
+ assertEquals(origin.getAverageLoad(), defaults.getAverageLoad(), 0);
+ assertEquals(origin.getBackupMasterNames().size(),
defaults.getBackupMasterNames().size());
+ assertEquals(origin.getDeadServerNames().size(),
defaults.getDeadServerNames().size());
+ assertEquals(origin.getRegionCount(), defaults.getRegionCount());
+ assertEquals(origin.getLiveServerMetrics().size(),
defaults.getLiveServerMetrics().size());
+ assertEquals(origin.getMasterInfoPort(), defaults.getMasterInfoPort());
+ assertEquals(origin.getServersName().size(),
defaults.getServersName().size());
origin.getTableRegionStatesCount().forEach(((tableName,
regionStatesCount) -> {
RegionStatesCount defaultRegionStatesCount =
defaults.getTableRegionStatesCount().get(tableName);
- Assert.assertEquals(defaultRegionStatesCount, regionStatesCount);
+ assertEquals(defaultRegionStatesCount, regionStatesCount);
}));
}
}
@@ -188,7 +183,7 @@ public class TestClientClusterMetrics {
@Override
public boolean evaluate() throws Exception {
ClusterMetrics metrics =
ADMIN.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS));
- Assert.assertNotNull(metrics);
+ assertNotNull(metrics);
return metrics.getRegionCount() > 0;
}
});
@@ -196,20 +191,20 @@ public class TestClientClusterMetrics {
EnumSet<Option> options =
EnumSet.of(Option.LIVE_SERVERS, Option.DEAD_SERVERS,
Option.SERVERS_NAME);
ClusterMetrics metrics = ADMIN.getClusterMetrics(options);
- Assert.assertNotNull(metrics);
+ assertNotNull(metrics);
// exclude a dead region server
- Assert.assertEquals(SLAVES - 1, numRs);
+ assertEquals(SLAVES - 1, numRs);
// live servers = nums of regionservers
// By default, HMaster don't carry any regions so it won't report its load.
// Hence, it won't be in the server list.
- Assert.assertEquals(numRs, metrics.getLiveServerMetrics().size());
- Assert.assertTrue(metrics.getRegionCount() > 0);
- Assert.assertNotNull(metrics.getDeadServerNames());
- Assert.assertEquals(1, metrics.getDeadServerNames().size());
+ assertEquals(numRs, metrics.getLiveServerMetrics().size());
+ assertTrue(metrics.getRegionCount() > 0);
+ assertNotNull(metrics.getDeadServerNames());
+ assertEquals(1, metrics.getDeadServerNames().size());
ServerName deadServerName = metrics.getDeadServerNames().iterator().next();
- Assert.assertEquals(DEAD.getServerName(), deadServerName);
- Assert.assertNotNull(metrics.getServersName());
- Assert.assertEquals(numRs, metrics.getServersName().size());
+ assertEquals(DEAD.getServerName(), deadServerName);
+ assertNotNull(metrics.getServersName());
+ assertEquals(numRs, metrics.getServersName().size());
}
@Test
@@ -220,22 +215,21 @@ public class TestClientClusterMetrics {
table.put(new Put(Bytes.toBytes("k3")).addColumn(CF, Bytes.toBytes("q3"),
Bytes.toBytes("v3")));
ClusterMetrics metrics = ADMIN.getClusterMetrics();
- Assert.assertEquals(metrics.getTableRegionStatesCount().size(), 2);
- Assert.assertEquals(
+ assertEquals(metrics.getTableRegionStatesCount().size(), 2);
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getRegionsInTransition(),
0);
- Assert.assertEquals(
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getOpenRegions(),
1);
- Assert.assertEquals(
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getTotalRegions(),
1);
- Assert.assertEquals(
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getClosedRegions(),
0);
- Assert.assertEquals(
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getSplitRegions(),
0);
- Assert.assertEquals(
-
metrics.getTableRegionStatesCount().get(TABLE_NAME).getRegionsInTransition(),
0);
-
Assert.assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getOpenRegions(),
1);
-
Assert.assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getTotalRegions(),
1);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getRegionsInTransition(),
0);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getOpenRegions(),
1);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getTotalRegions(),
1);
UTIL.deleteTable(TABLE_NAME);
}
@@ -251,18 +245,17 @@ public class TestClientClusterMetrics {
insertData(TABLE_NAME, startRowNum, rowCount);
ClusterMetrics metrics = ADMIN.getClusterMetrics();
- Assert.assertEquals(metrics.getTableRegionStatesCount().size(), 2);
- Assert.assertEquals(
+ assertEquals(metrics.getTableRegionStatesCount().size(), 2);
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getRegionsInTransition(),
0);
- Assert.assertEquals(
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getOpenRegions(),
1);
- Assert.assertEquals(
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getTotalRegions(),
1);
- Assert.assertEquals(
-
metrics.getTableRegionStatesCount().get(TABLE_NAME).getRegionsInTransition(),
0);
-
Assert.assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getOpenRegions(),
1);
-
Assert.assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getTotalRegions(),
1);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getRegionsInTransition(),
0);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getOpenRegions(),
1);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getTotalRegions(),
1);
int splitRowNum = startRowNum + rowCount / 2;
byte[] splitKey = Bytes.toBytes("" + splitRowNum);
@@ -271,20 +264,19 @@ public class TestClientClusterMetrics {
ADMIN.split(TABLE_NAME, splitKey);
metrics = ADMIN.getClusterMetrics();
- Assert.assertEquals(metrics.getTableRegionStatesCount().size(), 2);
- Assert.assertEquals(
+ assertEquals(metrics.getTableRegionStatesCount().size(), 2);
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getRegionsInTransition(),
0);
- Assert.assertEquals(
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getOpenRegions(),
1);
- Assert.assertEquals(
+ assertEquals(
metrics.getTableRegionStatesCount().get(TableName.META_TABLE_NAME).getTotalRegions(),
1);
- Assert.assertEquals(
-
metrics.getTableRegionStatesCount().get(TABLE_NAME).getRegionsInTransition(),
0);
-
Assert.assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getOpenRegions(),
2);
-
Assert.assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getTotalRegions(),
3);
-
Assert.assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getSplitRegions(),
1);
-
Assert.assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getClosedRegions(),
0);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getRegionsInTransition(),
0);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getOpenRegions(),
2);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getTotalRegions(),
3);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getSplitRegions(),
1);
+
assertEquals(metrics.getTableRegionStatesCount().get(TABLE_NAME).getClosedRegions(),
0);
UTIL.deleteTable(TABLE_NAME);
}
@@ -305,14 +297,14 @@ public class TestClientClusterMetrics {
activeName = active.getServerName();
}
}
- Assert.assertNotNull(active);
- Assert.assertEquals(1, numActive);
- Assert.assertEquals(MASTERS, masterThreads.size());
+ assertNotNull(active);
+ assertEquals(1, numActive);
+ assertEquals(MASTERS, masterThreads.size());
// Retrieve master and backup masters infos only.
EnumSet<Option> options = EnumSet.of(Option.MASTER, Option.BACKUP_MASTERS);
ClusterMetrics metrics = ADMIN.getClusterMetrics(options);
- Assert.assertTrue(metrics.getMasterName().equals(activeName));
- Assert.assertEquals(MASTERS - 1, metrics.getBackupMasterNames().size());
+ assertTrue(metrics.getMasterName().equals(activeName));
+ assertEquals(MASTERS - 1, metrics.getBackupMasterNames().size());
}
@Test
@@ -337,7 +329,7 @@ public class TestClientClusterMetrics {
try {
doPut();
} catch (IOException e) {
- Assert.fail("Exception:" + e.getMessage());
+ fail("Exception:" + e.getMessage());
}
return null;
}
@@ -352,7 +344,7 @@ public class TestClientClusterMetrics {
try {
doGet();
} catch (IOException e) {
- Assert.fail("Exception:" + e.getMessage());
+ fail("Exception:" + e.getMessage());
}
return null;
}
@@ -367,10 +359,10 @@ public class TestClientClusterMetrics {
try {
Table table =
createConnection(UTIL.getConfiguration()).getTable(TABLE_NAME);
for (Result result : table.getScanner(new Scan().setFilter(new
FilterAllFilter()))) {
- Assert.fail("Should have filtered all rows");
+ fail("Should have filtered all rows");
}
} catch (IOException e) {
- Assert.fail("Exception:" + e.getMessage());
+ fail("Exception:" + e.getMessage());
}
return null;
}
@@ -383,25 +375,22 @@ public class TestClientClusterMetrics {
for (byte[] user : userMap.keySet()) {
switch (Bytes.toString(user)) {
case "FOO_USER_METRIC_TEST":
- Assert.assertEquals(1,
- userMap.get(user).getWriteRequestCount() -
writeMetaMetricForUserFoo);
+ assertEquals(1, userMap.get(user).getWriteRequestCount() -
writeMetaMetricForUserFoo);
break;
case "BAR_USER_METRIC_TEST":
- Assert.assertEquals(1,
- userMap.get(user).getReadRequestCount() -
readMetaMetricForUserBar);
- Assert.assertEquals(0, userMap.get(user).getWriteRequestCount());
+ assertEquals(1, userMap.get(user).getReadRequestCount() -
readMetaMetricForUserBar);
+ assertEquals(0, userMap.get(user).getWriteRequestCount());
break;
case "TEST_USER_METRIC_TEST":
- Assert.assertEquals(1,
+ assertEquals(1,
userMap.get(user).getFilteredReadRequests() -
filteredMetaReqeustForTestUser);
- Assert.assertEquals(0, userMap.get(user).getWriteRequestCount());
+ assertEquals(0, userMap.get(user).getWriteRequestCount());
break;
default:
// current user
-
Assert.assertEquals(UserProvider.instantiate(conf).getCurrent().getName(),
- Bytes.toString(user));
+ assertEquals(UserProvider.instantiate(conf).getCurrent().getName(),
Bytes.toString(user));
// Read/write count because of Meta operations
- Assert.assertTrue(userMap.get(user).getReadRequestCount() > 1);
+ assertTrue(userMap.get(user).getReadRequestCount() > 1);
break;
}
}
@@ -431,7 +420,7 @@ public class TestClientClusterMetrics {
break;
}
}
- Assert.assertTrue("Expected task not found in master task list", found);
+ assertTrue(found, "Expected task not found in master task list");
// Get the tasks information (carried in server metrics)
found = false;
for (ServerMetrics serverMetrics :
clusterMetrics.getLiveServerMetrics().values()) {
@@ -447,7 +436,7 @@ public class TestClientClusterMetrics {
}
// We will fall through here if getClusterMetrics(TASKS) did not correctly
process the
// task list.
- Assert.assertTrue("Expected task not found in server load", found);
+ assertTrue(found, "Expected task not found in server load");
}
private RegionMetrics getMetaMetrics() throws IOException {
@@ -459,7 +448,7 @@ public class TestClientClusterMetrics {
return metaMetrics;
}
}
- Assert.fail("Should have find meta metrics");
+ fail("Should have find meta metrics");
return null;
}
@@ -471,7 +460,7 @@ public class TestClientClusterMetrics {
public boolean evaluate() throws Exception {
Map<byte[], UserMetrics> metrics =
ADMIN.getClusterMetrics(EnumSet.of(Option.LIVE_SERVERS))
.getLiveServerMetrics().values().iterator().next().getUserMetrics();
- Assert.assertNotNull(metrics);
+ assertNotNull(metrics);
// including current user + noOfUsers
return metrics.keySet().size() > noOfUsers;
}
@@ -500,14 +489,14 @@ public class TestClientClusterMetrics {
EnumSet<Option> options = EnumSet.of(Option.MASTER_COPROCESSORS,
Option.HBASE_VERSION,
Option.CLUSTER_ID, Option.BALANCER_ON);
ClusterMetrics metrics = ADMIN.getClusterMetrics(options);
- Assert.assertEquals(1, metrics.getMasterCoprocessorNames().size());
- Assert.assertNotNull(metrics.getHBaseVersion());
- Assert.assertNotNull(metrics.getClusterId());
- Assert.assertTrue(metrics.getAverageLoad() == 0.0);
- Assert.assertNotNull(metrics.getBalancerOn());
+ assertEquals(1, metrics.getMasterCoprocessorNames().size());
+ assertNotNull(metrics.getHBaseVersion());
+ assertNotNull(metrics.getClusterId());
+ assertTrue(metrics.getAverageLoad() == 0.0);
+ assertNotNull(metrics.getBalancerOn());
}
- @AfterClass
+ @AfterAll
public static void tearDownAfterClass() throws Exception {
if (ADMIN != null) {
ADMIN.close();
@@ -519,10 +508,10 @@ public class TestClientClusterMetrics {
public void testObserver() throws IOException {
int preCount = MyObserver.PRE_COUNT.get();
int postCount = MyObserver.POST_COUNT.get();
-
Assert.assertTrue(ADMIN.getClusterMetrics().getMasterCoprocessorNames().stream()
+ assertTrue(ADMIN.getClusterMetrics().getMasterCoprocessorNames().stream()
.anyMatch(s -> s.equals(MyObserver.class.getSimpleName())));
- Assert.assertEquals(preCount + 1, MyObserver.PRE_COUNT.get());
- Assert.assertEquals(postCount + 1, MyObserver.POST_COUNT.get());
+ assertEquals(preCount + 1, MyObserver.PRE_COUNT.get());
+ assertEquals(postCount + 1, MyObserver.POST_COUNT.get());
}
private static void insertData(final TableName tableName, int startRow, int
rowCount)
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/TestPerformanceEvaluation.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/TestPerformanceEvaluation.java
index 84b211d4e31..eb11aed45a6 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/TestPerformanceEvaluation.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/TestPerformanceEvaluation.java
@@ -17,12 +17,12 @@
*/
package org.apache.hadoop.hbase;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
import com.codahale.metrics.Histogram;
import com.codahale.metrics.Snapshot;
@@ -53,17 +53,14 @@ import
org.apache.hadoop.hbase.regionserver.CompactingMemStore;
import org.apache.hadoop.hbase.testclassification.MiscTests;
import org.apache.hadoop.hbase.testclassification.SmallTests;
import org.apache.hadoop.hbase.util.GsonUtil;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
import org.apache.hbase.thirdparty.com.google.gson.Gson;
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
public class TestPerformanceEvaluation {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestPerformanceEvaluation.class);
private static final HBaseTestingUtil HTU = new HBaseTestingUtil();
@@ -168,7 +165,7 @@ public class TestPerformanceEvaluation {
break;
}
}
- assertTrue("We need to get a value more than 1000", foundValue);
+ assertTrue(foundValue, "We need to get a value more than 1000");
}
@Test
@@ -385,7 +382,7 @@ public class TestPerformanceEvaluation {
assertEquals("val1", options.getCommandProperties().get("prop1"));
}
- class PESampleTestImpl extends PerformanceEvaluation.Test {
+ static class PESampleTestImpl extends PerformanceEvaluation.Test {
PESampleTestImpl(Connection con, TestOptions options, Status status) {
super(con, options, status);
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/io/encoding/TestEncodedSeekers.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/io/encoding/TestEncodedSeekers.java
index 4b8db2967f7..45b6fa7016f 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/io/encoding/TestEncodedSeekers.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/io/encoding/TestEncodedSeekers.java
@@ -17,16 +17,16 @@
*/
package org.apache.hadoop.hbase.io.encoding;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.stream.Stream;
import org.apache.hadoop.hbase.ArrayBackedTag;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseParameterizedTestTemplate;
import org.apache.hadoop.hbase.HBaseTestingUtil;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.KeyValue;
@@ -48,24 +48,17 @@ import
org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.util.LoadTestKVGenerator;
import org.apache.hadoop.hbase.util.Strings;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.params.provider.Arguments;
/**
* Tests encoded seekers by loading and reading values.
*/
-@Category({ IOTests.class, LargeTests.class })
-@RunWith(Parameterized.class)
[email protected](IOTests.TAG)
[email protected](LargeTests.TAG)
+@HBaseParameterizedTestTemplate
public class TestEncodedSeekers {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestEncodedSeekers.class);
-
private static final String TABLE_NAME = "encodedSeekersTable";
private static final String CF_NAME = "encodedSeekersCF";
private static final byte[] CF_BYTES = Bytes.toBytes(CF_NAME);
@@ -87,17 +80,16 @@ public class TestEncodedSeekers {
/** Enable when debugging */
private static final boolean VERBOSE = false;
- @Parameters
- public static Collection<Object[]> parameters() {
- List<Object[]> paramList = new ArrayList<>();
+ public static Stream<Arguments> parameters() {
+ List<Arguments> params = new ArrayList<>();
for (DataBlockEncoding encoding : DataBlockEncoding.values()) {
for (boolean includeTags : new boolean[] { false, true }) {
for (boolean compressTags : new boolean[] { false, true }) {
- paramList.add(new Object[] { encoding, includeTags, compressTags });
+ params.add(Arguments.of(encoding, includeTags, compressTags));
}
}
}
- return paramList;
+ return params.stream();
}
public TestEncodedSeekers(DataBlockEncoding encoding, boolean includeTags,
boolean compressTags) {
@@ -106,7 +98,7 @@ public class TestEncodedSeekers {
this.compressTags = compressTags;
}
- @Test
+ @TestTemplate
public void testEncodedSeeker() throws IOException {
System.err.println("Testing encoded seekers for encoding : " + encoding +
", includeTags : "
+ includeTags + ", compressTags : " + compressTags);
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/io/encoding/TestLoadAndSwitchEncodeOnDisk.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/io/encoding/TestLoadAndSwitchEncodeOnDisk.java
index 6cbef50c9d0..d6b18f8ec9f 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/io/encoding/TestLoadAndSwitchEncodeOnDisk.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/io/encoding/TestLoadAndSwitchEncodeOnDisk.java
@@ -17,11 +17,10 @@
*/
package org.apache.hadoop.hbase.io.encoding;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collection;
import java.util.List;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
import org.apache.hadoop.hbase.HRegionLocation;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptor;
@@ -34,33 +33,22 @@ import org.apache.hadoop.hbase.io.compress.Compression;
import org.apache.hadoop.hbase.io.hfile.CacheConfig;
import org.apache.hadoop.hbase.regionserver.HRegionServer;
import org.apache.hadoop.hbase.testclassification.IOTests;
-import org.apache.hadoop.hbase.testclassification.MediumTests;
+import org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.util.TestMiniClusterLoadSequential;
import org.apache.hadoop.hbase.util.Threads;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
/**
* Uses the load tester
*/
-@Category({ IOTests.class, MediumTests.class })
+@Tag(IOTests.TAG)
+@Tag(LargeTests.TAG)
public class TestLoadAndSwitchEncodeOnDisk extends
TestMiniClusterLoadSequential {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestLoadAndSwitchEncodeOnDisk.class);
-
/** We do not alternate the multi-put flag in this test. */
private static final boolean USE_MULTI_PUT = true;
- /** Un-parameterize the test */
- @Parameters
- public static Collection<Object[]> parameters() {
- return Arrays.asList(new Object[][] { new Object[0] });
- }
-
public TestLoadAndSwitchEncodeOnDisk() {
super(USE_MULTI_PUT, DataBlockEncoding.PREFIX);
conf.setBoolean(CacheConfig.CACHE_BLOCKS_ON_WRITE_KEY, true);
@@ -118,7 +106,7 @@ public class TestLoadAndSwitchEncodeOnDisk extends
TestMiniClusterLoadSequential
Scan s = new Scan().withStartRow(startkey);
ResultScanner scanner = t.getScanner(s);
Result r = scanner.next();
- org.junit.Assert.assertTrue(r != null && r.size() > 0);
+ assertTrue(r != null && r.size() > 0);
scanner.close();
}
}
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/security/TestEncryptionUtil.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/security/TestEncryptionUtil.java
index 8c6ae1ec50a..6b2ce9ae2a8 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/security/TestEncryptionUtil.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/security/TestEncryptionUtil.java
@@ -17,15 +17,15 @@
*/
package org.apache.hadoop.hbase.security;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
import java.security.Key;
import java.security.KeyException;
import javax.crypto.spec.SecretKeySpec;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.io.crypto.Encryption;
import org.apache.hadoop.hbase.io.crypto.MockAesKeyProvider;
@@ -33,20 +33,16 @@ import org.apache.hadoop.hbase.io.crypto.aes.AES;
import org.apache.hadoop.hbase.testclassification.ClientTests;
import org.apache.hadoop.hbase.testclassification.SmallTests;
import org.apache.hadoop.hbase.util.Bytes;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
-@Category({ ClientTests.class, SmallTests.class })
+@Tag(ClientTests.TAG)
+@Tag(SmallTests.TAG)
public class TestEncryptionUtil {
private static final String INVALID_HASH_ALG =
"this-hash-algorithm-not-exists hopefully... :)";
private static final String DEFAULT_HASH_ALGORITHM = "use-default";
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestEncryptionUtil.class);
-
// There does not seem to be a ready way to test either
getKeyFromBytesOrMasterKey
// or createEncryptionContext, and the existing code under MobUtils appeared
to be
// untested. Not ideal!
@@ -71,9 +67,9 @@ public class TestEncryptionUtil {
testKeyWrapping("SHA-384");
}
- @Test(expected = RuntimeException.class)
+ @Test
public void testKeyWrappingWithInvalidHashAlg() throws Exception {
- testKeyWrapping(INVALID_HASH_ALG);
+ assertThrows(RuntimeException.class, () ->
testKeyWrapping(INVALID_HASH_ALG));
}
@Test
@@ -96,12 +92,12 @@ public class TestEncryptionUtil {
testWALKeyWrapping("SHA-384");
}
- @Test(expected = RuntimeException.class)
+ @Test
public void testWALKeyWrappingWithInvalidHashAlg() throws Exception {
- testWALKeyWrapping(INVALID_HASH_ALG);
+ assertThrows(RuntimeException.class, () ->
testWALKeyWrapping(INVALID_HASH_ALG));
}
- @Test(expected = KeyException.class)
+ @Test
public void testWALKeyWrappingWithIncorrectKey() throws Exception {
// set up the key provider for testing to resolve a key for our test
subject
Configuration conf = new Configuration(); // we don't need
HBaseConfiguration for this
@@ -118,14 +114,15 @@ public class TestEncryptionUtil {
assertNotNull(wrappedKeyBytes);
// unwrap with an incorrect key
- EncryptionUtil.unwrapWALKey(conf, "other", wrappedKeyBytes);
+ assertThrows(KeyException.class,
+ () -> EncryptionUtil.unwrapWALKey(conf, "other", wrappedKeyBytes));
}
- @Test(expected = KeyException.class)
+ @Test
public void testHashAlgorithmMismatchWhenFailExpected() throws Exception {
Configuration conf = new Configuration(); // we don't need
HBaseConfiguration for this
conf.setBoolean(Encryption.CRYPTO_KEY_FAIL_ON_ALGORITHM_MISMATCH_CONF_KEY,
true);
- testKeyWrappingWithMismatchingAlgorithms(conf);
+ assertThrows(KeyException.class, () ->
testKeyWrappingWithMismatchingAlgorithms(conf));
}
@Test
@@ -165,8 +162,8 @@ public class TestEncryptionUtil {
// only secretkeyspec supported for now
assertTrue(unwrappedKey instanceof SecretKeySpec);
// did we get back what we wrapped?
- assertTrue("Unwrapped key bytes do not match original",
- Bytes.equals(keyBytes, unwrappedKey.getEncoded()));
+ assertTrue(Bytes.equals(keyBytes, unwrappedKey.getEncoded()),
+ "Unwrapped key bytes do not match original");
// unwrap with an incorrect key
try {
@@ -201,8 +198,8 @@ public class TestEncryptionUtil {
// only secretkeyspec supported for now
assertTrue(unwrappedKey instanceof SecretKeySpec);
// did we get back what we wrapped?
- assertTrue("Unwrapped key bytes do not match original",
- Bytes.equals(keyBytes, unwrappedKey.getEncoded()));
+ assertTrue(Bytes.equals(keyBytes, unwrappedKey.getEncoded()),
+ "Unwrapped key bytes do not match original");
}
private void testKeyWrappingWithMismatchingAlgorithms(Configuration conf)
throws Exception {
@@ -230,8 +227,8 @@ public class TestEncryptionUtil {
assertNotNull(unwrappedKey);
// did we get back what we wrapped?
- assertTrue("Unwrapped key bytes do not match original",
- Bytes.equals(keyBytes, unwrappedKey.getEncoded()));
+ assertTrue(Bytes.equals(keyBytes, unwrappedKey.getEncoded()),
+ "Unwrapped key bytes do not match original");
}
}
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestLoadTestKVGenerator.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestLoadTestKVGenerator.java
index 1c35c7f0314..fea1c0bf850 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestLoadTestKVGenerator.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestLoadTestKVGenerator.java
@@ -17,26 +17,21 @@
*/
package org.apache.hadoop.hbase.util;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
import org.apache.hadoop.hbase.testclassification.MiscTests;
import org.apache.hadoop.hbase.testclassification.SmallTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
-@Category({ MiscTests.class, SmallTests.class })
+@Tag(MiscTests.TAG)
+@Tag(SmallTests.TAG)
public class TestLoadTestKVGenerator {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestLoadTestKVGenerator.class);
-
private static final int MIN_LEN = 10;
private static final int MAX_LEN = 20;
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadEncoded.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadEncoded.java
index c45e396fc91..f27f8ece682 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadEncoded.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadEncoded.java
@@ -18,38 +18,34 @@
package org.apache.hadoop.hbase.util;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
+import java.util.stream.Stream;
+import org.apache.hadoop.hbase.HBaseParameterizedTestTemplate;
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
import org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.testclassification.MiscTests;
-import org.junit.ClassRule;
-import org.junit.experimental.categories.Category;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.params.provider.Arguments;
/**
* Runs a load test on a mini HBase cluster with data block encoding turned
on. Compared to other
* load-test-style unit tests, this one writes a smaller amount of data, but
goes through all
* available data block encoding algorithms.
*/
-@Category({ MiscTests.class, LargeTests.class })
+@Tag(MiscTests.TAG)
+@Tag(LargeTests.TAG)
+@HBaseParameterizedTestTemplate
public class TestMiniClusterLoadEncoded extends TestMiniClusterLoadParallel {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestMiniClusterLoadEncoded.class);
-
/** We do not alternate the multi-put flag in this test. */
private static final boolean USE_MULTI_PUT = true;
- @Parameters
- public static Collection<Object[]> parameters() {
- List<Object[]> parameters = new ArrayList<>();
+ public static Stream<Arguments> parameters() {
+ List<Arguments> params = new ArrayList<>();
for (DataBlockEncoding dataBlockEncoding : DataBlockEncoding.values()) {
- parameters.add(new Object[] { dataBlockEncoding });
+ params.add(Arguments.of(dataBlockEncoding));
}
- return parameters;
+ return params.stream();
}
public TestMiniClusterLoadEncoded(DataBlockEncoding encoding) {
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadParallel.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadParallel.java
index e5136a1ffd4..b655b280e1d 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadParallel.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadParallel.java
@@ -17,36 +17,36 @@
*/
package org.apache.hadoop.hbase.util;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
+import java.util.stream.Stream;
+import org.apache.hadoop.hbase.HBaseParameterizedTestTemplate;
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
import org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.testclassification.MiscTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.params.provider.Arguments;
/**
* A write/read/verify load test on a mini HBase cluster. Tests reading and
writing at the same
* time.
*/
-@Category({ MiscTests.class, LargeTests.class })
-@RunWith(Parameterized.class)
+@Tag(MiscTests.TAG)
+@Tag(LargeTests.TAG)
+@HBaseParameterizedTestTemplate
public class TestMiniClusterLoadParallel extends TestMiniClusterLoadSequential
{
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestMiniClusterLoadParallel.class);
+ public static Stream<Arguments> parameters() {
+ return TestMiniClusterLoadSequential.parameters();
+ }
public TestMiniClusterLoadParallel(boolean isMultiPut, DataBlockEncoding
encoding) {
super(isMultiPut, encoding);
}
@Override
- @Test
+ @TestTemplate
public void loadTest() throws Exception {
prepareForLoadTest();
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java
index 6f9fa5b0e0e..31faf3361a9 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.java
@@ -17,16 +17,16 @@
*/
package org.apache.hadoop.hbase.util;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.EnumSet;
import java.util.List;
+import java.util.stream.Stream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.ClusterMetrics.Option;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseParameterizedTestTemplate;
import org.apache.hadoop.hbase.HBaseTestingUtil;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.TableName;
@@ -41,28 +41,22 @@ import
org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
import org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.testclassification.MiscTests;
import org.apache.hadoop.hbase.util.test.LoadTestDataGenerator;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.params.provider.Arguments;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A write/read/verify load test on a mini HBase cluster. Tests reading and
then writing.
*/
-@Category({ MiscTests.class, LargeTests.class })
-@RunWith(Parameterized.class)
+@Tag(MiscTests.TAG)
+@Tag(LargeTests.TAG)
+@HBaseParameterizedTestTemplate
public class TestMiniClusterLoadSequential {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestMiniClusterLoadSequential.class);
-
private static final Logger LOG =
LoggerFactory.getLogger(TestMiniClusterLoadSequential.class);
protected static final TableName TABLE = TableName.valueOf("load_test_tbl");
@@ -91,25 +85,24 @@ public class TestMiniClusterLoadSequential {
conf.setFloat(HConstants.LOAD_BALANCER_SLOP_KEY, 10.0f);
}
- @Parameters
- public static Collection<Object[]> parameters() {
- List<Object[]> parameters = new ArrayList<>();
+ public static Stream<Arguments> parameters() {
+ List<Arguments> params = new ArrayList<>();
for (boolean multiPut : new boolean[] { false, true }) {
for (DataBlockEncoding dataBlockEncoding : new DataBlockEncoding[] {
DataBlockEncoding.NONE,
DataBlockEncoding.PREFIX }) {
- parameters.add(new Object[] { multiPut, dataBlockEncoding });
+ params.add(Arguments.of(multiPut, dataBlockEncoding));
}
}
- return parameters;
+ return params.stream();
}
- @Before
+ @BeforeEach
public void setUp() throws Exception {
LOG.debug("Test setup: isMultiPut=" + isMultiPut);
TEST_UTIL.startMiniCluster(NUM_RS);
}
- @After
+ @AfterEach
public void tearDown() throws Exception {
LOG.debug("Test teardown: isMultiPut=" + isMultiPut);
TEST_UTIL.shutdownMiniCluster();
@@ -128,7 +121,7 @@ public class TestMiniClusterLoadSequential {
return writer;
}
- @Test
+ @TestTemplate
public void loadTest() throws Exception {
prepareForLoadTest();
runLoadTestOnExistingTable();
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategyUsingWPETool.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategyUsingWPETool.java
index e58e3312c1c..1dc50ac0fb4 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategyUsingWPETool.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategyUsingWPETool.java
@@ -17,41 +17,40 @@
*/
package org.apache.hadoop.hbase.wal;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import java.util.stream.Stream;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
-import org.apache.hadoop.hbase.testclassification.LargeTests;
+import org.apache.hadoop.hbase.HBaseParameterizedTestTemplate;
+import org.apache.hadoop.hbase.testclassification.MediumTests;
import org.apache.hadoop.hbase.testclassification.RegionServerTests;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.params.provider.Arguments;
/**
* Tests for TestBoundedRegionGroupingStrategy which use
WALPerformanceEvaluation for WAL data
* creation. This class was created as part of refactoring for
hbase-diagnostics module creation in
* HBASE-28432 to break cyclic dependency.
*/
-@RunWith(Parameterized.class)
-@Category({ RegionServerTests.class, LargeTests.class })
+@Tag(RegionServerTests.TAG)
+@Tag(MediumTests.TAG)
+@HBaseParameterizedTestTemplate
public class TestBoundedRegionGroupingStrategyUsingWPETool
extends TestBoundedRegionGroupingStrategy {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
-
HBaseClassTestRule.forClass(TestBoundedRegionGroupingStrategyUsingWPETool.class);
+ public TestBoundedRegionGroupingStrategyUsingWPETool(String walProvider) {
+ super(walProvider);
+ }
- private static final Logger LOG =
-
LoggerFactory.getLogger(TestBoundedRegionGroupingStrategyUsingWPETool.class);
+ public static Stream<Arguments> parameters() {
+ return TestBoundedRegionGroupingStrategy.parameters();
+ }
/**
* Write to a log file with three concurrent threads and verifying all data
is written.
*/
- @Test
+ @TestTemplate
public void testConcurrentWrites() throws Exception {
// Run the WPE tool with three threads writing 3000 edits each
concurrently.
// When done, verify that all edits were written.
@@ -63,7 +62,7 @@ public class TestBoundedRegionGroupingStrategyUsingWPETool
/**
* Make sure we can successfully run with more regions then our bound.
*/
- @Test
+ @TestTemplate
public void testMoreRegionsThanBound() throws Exception {
final String parallelism =
Integer.toString(BoundedGroupingStrategy.DEFAULT_NUM_REGION_GROUPS * 2);
@@ -73,7 +72,7 @@ public class TestBoundedRegionGroupingStrategyUsingWPETool
assertEquals(0, errCode);
}
- @Test
+ @TestTemplate
public void testBoundsGreaterThanDefault() throws Exception {
final int temp = CONF.getInt(BoundedGroupingStrategy.NUM_REGION_GROUPS,
BoundedGroupingStrategy.DEFAULT_NUM_REGION_GROUPS);
@@ -89,7 +88,7 @@ public class TestBoundedRegionGroupingStrategyUsingWPETool
}
}
- @Test
+ @TestTemplate
public void testMoreRegionsThanBoundWithBoundsGreaterThanDefault() throws
Exception {
final int temp = CONF.getInt(BoundedGroupingStrategy.NUM_REGION_GROUPS,
BoundedGroupingStrategy.DEFAULT_NUM_REGION_GROUPS);
diff --git
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/wal/TestFSHLogProviderWithConcurrentWrites.java
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/wal/TestFSHLogProviderWithConcurrentWrites.java
index 37efaa9f9dd..5fb93bc0bfc 100644
---
a/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/wal/TestFSHLogProviderWithConcurrentWrites.java
+++
b/hbase-diagnostics/src/test/java/org/apache/hadoop/hbase/wal/TestFSHLogProviderWithConcurrentWrites.java
@@ -17,24 +17,20 @@
*/
package org.apache.hadoop.hbase.wal;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
import org.apache.hadoop.hbase.HBaseTestingUtil;
import org.apache.hadoop.hbase.testclassification.MediumTests;
import org.apache.hadoop.hbase.testclassification.RegionServerTests;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.rules.TestName;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,23 +39,17 @@ import org.slf4j.LoggerFactory;
* was created as part of refactoring for hbase-diagnostics module creation in
HBASE-28432 to break
* cyclic dependency.
*/
-@Category({ RegionServerTests.class, MediumTests.class })
+@Tag(RegionServerTests.TAG)
+@Tag(MediumTests.TAG)
public class TestFSHLogProviderWithConcurrentWrites {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestFSHLogProviderWithConcurrentWrites.class);
-
private static final Logger LOG =
LoggerFactory.getLogger(TestFSHLogProviderWithConcurrentWrites.class);
private static FileSystem fs;
private final static HBaseTestingUtil TEST_UTIL = new HBaseTestingUtil();
- @Rule
- public final TestName currentTest = new TestName();
-
- @Before
+ @BeforeEach
public void setUp() throws Exception {
FileStatus[] entries = fs.listStatus(new Path("/"));
for (FileStatus dir : entries) {
@@ -67,7 +57,7 @@ public class TestFSHLogProviderWithConcurrentWrites {
}
}
- @BeforeClass
+ @BeforeAll
public static void setUpBeforeClass() throws Exception {
// Make block sizes small.
TEST_UTIL.getConfiguration().setInt("dfs.blocksize", 1024 * 1024);
@@ -87,7 +77,7 @@ public class TestFSHLogProviderWithConcurrentWrites {
fs = TEST_UTIL.getDFSCluster().getFileSystem();
}
- @AfterClass
+ @AfterAll
public static void tearDownAfterClass() throws Exception {
TEST_UTIL.shutdownMiniCluster();
}
diff --git
a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.java
index f2571851f71..909ede5d837 100644
---
a/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.java
+++
b/hbase-server/src/test/java/org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.java
@@ -17,17 +17,17 @@
*/
package org.apache.hadoop.hbase.wal;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.IOException;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ThreadLocalRandom;
+import java.util.stream.Stream;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseParameterizedTestTemplate;
import org.apache.hadoop.hbase.HBaseTestingUtil;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.RegionInfoBuilder;
@@ -35,28 +35,21 @@ import
org.apache.hadoop.hbase.testclassification.MediumTests;
import org.apache.hadoop.hbase.testclassification.RegionServerTests;
import org.apache.hadoop.hbase.util.CommonFSUtils;
import org.apache.hadoop.hdfs.DistributedFileSystem;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.junit.experimental.categories.Category;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.TestTemplate;
+import org.junit.jupiter.params.provider.Arguments;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-@RunWith(Parameterized.class)
-@Category({ RegionServerTests.class, MediumTests.class })
+@Tag(RegionServerTests.TAG)
+@Tag(MediumTests.TAG)
+@HBaseParameterizedTestTemplate
public class TestBoundedRegionGroupingStrategy {
- @ClassRule
- public static final HBaseClassTestRule CLASS_RULE =
- HBaseClassTestRule.forClass(TestBoundedRegionGroupingStrategy.class);
-
private static final Logger LOG =
LoggerFactory.getLogger(TestBoundedRegionGroupingStrategy.class);
@@ -65,20 +58,22 @@ public class TestBoundedRegionGroupingStrategy {
protected static Configuration CONF;
protected static DistributedFileSystem FS;
- @Parameter
public String walProvider;
- @Parameters(name = "{index}: delegate-provider={0}")
- public static Iterable<Object[]> data() {
- return Arrays.asList(new Object[] { "defaultProvider" }, new Object[] {
"asyncfs" });
+ public TestBoundedRegionGroupingStrategy(String walProvider) {
+ this.walProvider = walProvider;
+ }
+
+ public static Stream<Arguments> parameters() {
+ return Stream.of(Arguments.of("defaultProvider"), Arguments.of("asyncfs"));
}
- @Before
+ @BeforeEach
public void setUp() throws Exception {
CONF.set(RegionGroupingProvider.DELEGATE_PROVIDER, walProvider);
}
- @After
+ @AfterEach
public void tearDown() throws Exception {
FileStatus[] entries = FS.listStatus(new Path("/"));
for (FileStatus dir : entries) {
@@ -86,7 +81,7 @@ public class TestBoundedRegionGroupingStrategy {
}
}
- @BeforeClass
+ @BeforeAll
public static void setUpBeforeClass() throws Exception {
CONF = TEST_UTIL.getConfiguration();
// Make block sizes small.
@@ -110,7 +105,7 @@ public class TestBoundedRegionGroupingStrategy {
FS = TEST_UTIL.getDFSCluster().getFileSystem();
}
- @AfterClass
+ @AfterAll
public static void tearDownAfterClass() throws Exception {
TEST_UTIL.shutdownMiniCluster();
}
@@ -118,7 +113,7 @@ public class TestBoundedRegionGroupingStrategy {
/**
* Ensure that we can use Set.add to deduplicate WALs
*/
- @Test
+ @TestTemplate
public void setMembershipDedups() throws IOException {
final int temp = CONF.getInt(BoundedGroupingStrategy.NUM_REGION_GROUPS,
BoundedGroupingStrategy.DEFAULT_NUM_REGION_GROUPS);
@@ -140,8 +135,9 @@ public class TestBoundedRegionGroupingStrategy {
count++;
}
}
- assertEquals("received back a different number of WALs that are not
equal() to each other "
- + "than the bound we placed.", temp * 4, count);
+ assertEquals(temp * 4, count,
+ "received back a different number of WALs that are not equal() to each
other "
+ + "than the bound we placed.");
} finally {
if (wals != null) {
wals.close();