Skip to content

Commit

Permalink
HBASE-27851 Fix TestListTablesByState which is silently failing due t…
Browse files Browse the repository at this point in the history
…o a surefire bug (#5227)

surefire version 3.0.0-M6 has a bug where tests end up being removed from
the test results if they fail with a long exception message. See:

https://issues.apache.org/jira/browse/SUREFIRE-2079

TestListTablesByState is currently failing due to an error. However,
it is being missed because of the surefire bug. I found this while testing
the final surfire 3.0.0 version which fixes the bug and the test then
shows up as failing.

Co-authored-by: Jonathan Albrecht <jonathan.albrecht@ibm.com>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
  • Loading branch information
jonathan-albrecht-ibm committed May 11, 2023
1 parent 5cea811 commit 55aff4c
Showing 1 changed file with 30 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,15 @@
import org.apache.hadoop.hbase.HBaseTestingUtil;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;
import org.apache.hadoop.hbase.client.TableDescriptor;
import org.apache.hadoop.hbase.client.TableDescriptorBuilder;
import org.apache.hadoop.hbase.testclassification.MasterTests;
import org.apache.hadoop.hbase.testclassification.MediumTests;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
Expand All @@ -40,7 +43,12 @@ public class TestListTablesByState {

private static HBaseTestingUtil UTIL;
private static Admin ADMIN;
private final static int SLAVES = 1;
private static final int SLAVES = 1;
private static final byte[] COLUMN = Bytes.toBytes("cf");
private static final TableName TABLE = TableName.valueOf("test");
private static final TableDescriptor TABLE_DESC = TableDescriptorBuilder.newBuilder(TABLE)
.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(COLUMN).setMaxVersions(3).build())
.build();

@BeforeClass
public static void setUpBeforeClass() throws Exception {
Expand All @@ -49,26 +57,33 @@ public static void setUpBeforeClass() throws Exception {
ADMIN = UTIL.getAdmin();
}

@Before
public void before() throws Exception {
if (ADMIN.tableExists(TABLE)) {
if (ADMIN.isTableEnabled(TABLE)) {
ADMIN.disableTable(TABLE);
}

ADMIN.deleteTable(TABLE);
}
}

@Test
public void testListTableNamesByState() throws Exception {
TableName testTableName = TableName.valueOf("test");
TableDescriptor testTableDesc = TableDescriptorBuilder.newBuilder(testTableName).build();
ADMIN.createTable(testTableDesc);
ADMIN.disableTable(testTableName);
Assert.assertEquals(ADMIN.listTableNamesByState(false).get(0), testTableName);
ADMIN.enableTable(testTableName);
Assert.assertEquals(ADMIN.listTableNamesByState(true).get(0), testTableName);
ADMIN.createTable(TABLE_DESC);
ADMIN.disableTable(TABLE);
Assert.assertEquals(ADMIN.listTableNamesByState(false).get(0), TABLE);
ADMIN.enableTable(TABLE);
Assert.assertEquals(ADMIN.listTableNamesByState(true).get(0), TABLE);
}

@Test
public void testListTableDescriptorByState() throws Exception {
TableName testTableName = TableName.valueOf("test");
TableDescriptor testTableDesc = TableDescriptorBuilder.newBuilder(testTableName).build();
ADMIN.createTable(testTableDesc);
ADMIN.disableTable(testTableName);
Assert.assertEquals(ADMIN.listTableDescriptorsByState(false).get(0), testTableDesc);
ADMIN.enableTable(testTableName);
Assert.assertEquals(ADMIN.listTableDescriptorsByState(true).get(0), testTableDesc);
ADMIN.createTable(TABLE_DESC);
ADMIN.disableTable(TABLE);
Assert.assertEquals(ADMIN.listTableDescriptorsByState(false).get(0).getTableName(), TABLE);
ADMIN.enableTable(TABLE);
Assert.assertEquals(ADMIN.listTableDescriptorsByState(true).get(0).getTableName(), TABLE);
}

@AfterClass
Expand Down

0 comments on commit 55aff4c

Please sign in to comment.