diff --git hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverBypass.java hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverBypass.java index ab1b0e0..17c8922 100644 --- hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverBypass.java +++ hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverBypass.java @@ -18,31 +18,34 @@ */ package org.apache.hadoop.hbase.coprocessor; +import static junit.framework.Assert.assertEquals; + import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hbase.*; +import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.HBaseTestingUtility; +import org.apache.hadoop.hbase.KeyValue; +import org.apache.hadoop.hbase.MediumTests; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; +import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; -import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver; -import org.apache.hadoop.hbase.coprocessor.CoprocessorHost; -import org.apache.hadoop.hbase.coprocessor.ObserverContext; -import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.regionserver.wal.WALEdit; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.hbase.util.EnvironmentEdgeManagerTestHelper; +import org.apache.hadoop.hbase.util.IncrementingEnvironmentEdge; import org.junit.AfterClass; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.experimental.categories.Category; -import static org.junit.Assert.assertEquals; - @Category(MediumTests.class) public class TestRegionObserverBypass { private static HBaseTestingUtility util; @@ -60,7 +63,6 @@ public class TestRegionObserverBypass { TestCoprocessor.class.getName()); util = new HBaseTestingUtility(conf); util.startMiniCluster(); - util.createTable(tableName, new byte[][] {dummy, test}); } @AfterClass @@ -68,6 +70,18 @@ public class TestRegionObserverBypass { util.shutdownMiniCluster(); } + @Before + public void setUp() throws Exception { + HBaseAdmin admin = util.getHBaseAdmin(); + if (admin.tableExists(tableName)) { + if (admin.isTableEnabled(tableName)) { + admin.disableTable(tableName); + } + admin.deleteTable(tableName); + } + util.createTable(tableName, new byte[][] {dummy, test}); + } + /** * do a single put that is bypassed by a RegionObserver * @throws Exception @@ -89,6 +103,10 @@ public class TestRegionObserverBypass { */ @Test public void testMulti() throws Exception { + //ensure that server time increments every time we do an operation, otherwise + //previous deletes will eclipse successive puts having the same timestamp + EnvironmentEdgeManagerTestHelper.injectEdge(new IncrementingEnvironmentEdge()); + HTable t = new HTable(util.getConfiguration(), tableName); List puts = new ArrayList(); Put p = new Put(row1);