Repository: hbase Updated Branches: refs/heads/master c01d4d3a3 -> 74ea01116
HBASE-20194 Remove the explicit timeout config for TestTruncateTableProcedure Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/74ea0111 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/74ea0111 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/74ea0111 Branch: refs/heads/master Commit: 74ea0111696e2a01a478fd7e11cfad14d1bfc3b5 Parents: c01d4d3 Author: Duo Zhang <zhang...@apache.org> Authored: Wed Aug 22 11:29:23 2018 +0800 Committer: Duo Zhang <zhang...@apache.org> Committed: Wed Aug 22 14:27:11 2018 +0800 ---------------------------------------------------------------------- .../procedure/TestTruncateTableProcedure.java | 37 ++++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/74ea0111/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java index ea6ee0e..5b38b17 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/procedure/TestTruncateTableProcedure.java @@ -55,12 +55,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos; -@Category({MasterTests.class, MediumTests.class}) +@Category({ MasterTests.class, MediumTests.class }) public class TestTruncateTableProcedure extends TestTableDDLProcedureBase { @ClassRule public static final HBaseClassTestRule CLASS_RULE = - HBaseClassTestRule.forClass(TestTruncateTableProcedure.class); + HBaseClassTestRule.forClass(TestTruncateTableProcedure.class); private static final Logger LOG = LoggerFactory.getLogger(TestTruncateTableProcedure.class); @@ -316,7 +316,7 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase { ProcedureTestingUtility.assertProcNotFailed(procExec, procId); } - @Test(timeout = 60000) + @Test public void testTruncateWithPreserveAfterSplit() throws Exception { String[] families = new String[] { "f1", "f2" }; byte[][] splitKeys = @@ -324,10 +324,10 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase { TableName tableName = TableName.valueOf(name.getMethodName()); RegionInfo[] regions = MasterProcedureTestingUtility.createTable(getMasterProcedureExecutor(), tableName, splitKeys, families); - splitAndTruncate(tableName, regions); + splitAndTruncate(tableName, regions, 1); } - @Test(timeout = 60000) + @Test public void testTruncatePreserveWithReplicaRegionAfterSplit() throws Exception { String[] families = new String[] { "f1", "f2" }; byte[][] splitKeys = @@ -335,12 +335,10 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase { TableName tableName = TableName.valueOf(name.getMethodName()); // create a table with region replications - TableDescriptor htd = TableDescriptorBuilder.newBuilder(tableName) - .setRegionReplication(3) - .setColumnFamilies( - Arrays.stream(families) - .map(fam -> ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(fam)).build()) - .collect(Collectors.toList())) + TableDescriptor htd = TableDescriptorBuilder.newBuilder(tableName).setRegionReplication(3) + .setColumnFamilies(Arrays.stream(families) + .map(fam -> ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(fam)).build()) + .collect(Collectors.toList())) .build(); RegionInfo[] regions = ModifyRegionUtils.createRegionInfos(htd, splitKeys); ProcedureExecutor<MasterProcedureEnv> procExec = getMasterProcedureExecutor(); @@ -348,20 +346,18 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase { new CreateTableProcedure(procExec.getEnvironment(), htd, regions)); ProcedureTestingUtility.assertProcNotFailed(procExec.getResult(procId)); - splitAndTruncate(tableName, regions); + splitAndTruncate(tableName, regions, 3); } - private void splitAndTruncate(TableName tableName, RegionInfo[] regions) throws IOException, - InterruptedException { - + private void splitAndTruncate(TableName tableName, RegionInfo[] regions, int regionReplication) + throws IOException, InterruptedException { // split a region - UTIL.getAdmin().split(tableName, new byte[]{'0'}); + UTIL.getAdmin().split(tableName, new byte[] { '0' }); UTIL.waitUntilAllRegionsAssigned(tableName); // wait until split really happens - while (UTIL.getAdmin().getRegions(tableName).size() <= regions.length) { - Thread.sleep(50); - } + UTIL.waitFor(60000, + () -> UTIL.getAdmin().getRegions(tableName).size() > regions.length * regionReplication); // disable the table UTIL.getAdmin().disableTable(tableName); @@ -373,5 +369,8 @@ public class TestTruncateTableProcedure extends TestTableDDLProcedureBase { ProcedureTestingUtility.assertProcNotFailed(procExec, procId); UTIL.waitUntilAllRegionsAssigned(tableName); + // confirm that we have the correct number of regions + assertEquals((regions.length + 1) * regionReplication, + UTIL.getAdmin().getRegions(tableName).size()); } }