HBASE-4883 TestCatalogTracker failing for me on ubuntu
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1207639 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
bdc28714e1
commit
01c389c879
|
@ -50,9 +50,9 @@ import org.junit.After;
|
|||
import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.experimental.categories.Category;
|
||||
import org.mockito.Matchers;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
/**
|
||||
|
@ -326,34 +326,29 @@ public class TestCatalogTracker {
|
|||
* Test waiting on meta w/ no timeout specified.
|
||||
* @throws Exception
|
||||
*/
|
||||
@Ignore // Can't make it work reliably on all platforms; mockito gets confused
|
||||
// Throwing: org.mockito.exceptions.misusing.WrongTypeOfReturnValue:
|
||||
// Result cannot be returned by locateRegion()
|
||||
// If you plug locateRegion, it then throws for incCounter, and if you plug
|
||||
// that ... and so one.
|
||||
@Test public void testNoTimeoutWaitForMeta()
|
||||
throws Exception {
|
||||
// Mock an HConnection and a HRegionInterface implementation. Have the
|
||||
// HConnection return the HRI. Have the HRI return a few mocked up responses
|
||||
// to make our test work.
|
||||
HConnection connection =
|
||||
HConnectionTestingUtility.getMockedConnection(UTIL.getConfiguration());
|
||||
// Mock an HRegionInterface.
|
||||
final HRegionInterface implementation = Mockito.mock(HRegionInterface.class);
|
||||
HConnection connection = mockConnection(implementation);
|
||||
try {
|
||||
// Mock an HRegionInterface.
|
||||
|
||||
final HRegionInterface implementation = Mockito.mock(HRegionInterface.class);
|
||||
// Make it so our implementation is returned when we do a connection.
|
||||
// Need to fake out the location lookup stuff first.
|
||||
ServerName sn = new ServerName("example.com", 1234, System.currentTimeMillis());
|
||||
final HRegionLocation anyLocation =
|
||||
new HRegionLocation(HRegionInfo.FIRST_META_REGIONINFO, sn.getHostname(),
|
||||
sn.getPort());
|
||||
Mockito.when(connection.getRegionLocation((byte[]) Mockito.any(),
|
||||
(byte[]) Mockito.any(), Mockito.anyBoolean())).
|
||||
thenReturn(anyLocation);
|
||||
// Have implementation returned which ever way getHRegionConnection is called.
|
||||
Mockito.when(connection.getHRegionConnection(Mockito.anyString(),
|
||||
Mockito.anyInt(), Matchers.anyBoolean())).
|
||||
thenReturn(implementation);
|
||||
Mockito.when(connection.getHRegionConnection(Mockito.anyString(),
|
||||
Mockito.anyInt())).
|
||||
thenReturn(implementation);
|
||||
|
||||
// Now the ct is up... set into the mocks some answers that make it look
|
||||
// like things have been getting assigned. Make it so we'll return a
|
||||
// location (no matter what the Get is). Same for getHRegionInfo -- always
|
||||
// just return the meta region.
|
||||
final Result result = getMetaTableRowResult();
|
||||
Mockito.when(connection.getRegionServerWithRetries((ServerCallable<Result>)Mockito.any())).
|
||||
thenReturn(result);
|
||||
Mockito.when(implementation.getRegionInfo((byte[]) Mockito.any())).
|
||||
thenReturn(HRegionInfo.FIRST_META_REGIONINFO);
|
||||
final CatalogTracker ct = constructAndStartCatalogTracker(connection);
|
||||
ServerName hsa = ct.getMetaLocation();
|
||||
Assert.assertNull(hsa);
|
||||
|
@ -367,15 +362,6 @@ public class TestCatalogTracker {
|
|||
};
|
||||
startWaitAliveThenWaitItLives(t, 1000);
|
||||
|
||||
// Now the ct is up... set into the mocks some answers that make it look
|
||||
// like things have been getting assigned. Make it so we'll return a
|
||||
// location (no matter what the Get is). Same for getHRegionInfo -- always
|
||||
// just return the meta region.
|
||||
final Result result = getMetaTableRowResult();
|
||||
Mockito.when(connection.getRegionServerWithRetries((ServerCallable<Result>)Mockito.any())).
|
||||
thenReturn(result);
|
||||
Mockito.when(implementation.getRegionInfo((byte[]) Mockito.any())).
|
||||
thenReturn(HRegionInfo.FIRST_META_REGIONINFO);
|
||||
// This should trigger wake up of meta wait (Its the removal of the meta
|
||||
// region unassigned node that triggers catalogtrackers that a meta has
|
||||
// been assigned).
|
||||
|
@ -411,6 +397,7 @@ public class TestCatalogTracker {
|
|||
throws IOException {
|
||||
HConnection connection =
|
||||
HConnectionTestingUtility.getMockedConnection(UTIL.getConfiguration());
|
||||
Mockito.doNothing().when(connection).close();
|
||||
// Make it so we return any old location when asked.
|
||||
final HRegionLocation anyLocation =
|
||||
new HRegionLocation(HRegionInfo.FIRST_META_REGIONINFO, SN.getHostname(),
|
||||
|
@ -418,6 +405,9 @@ public class TestCatalogTracker {
|
|||
Mockito.when(connection.getRegionLocation((byte[]) Mockito.any(),
|
||||
(byte[]) Mockito.any(), Mockito.anyBoolean())).
|
||||
thenReturn(anyLocation);
|
||||
Mockito.when(connection.locateRegion((byte[]) Mockito.any(),
|
||||
(byte[]) Mockito.any())).
|
||||
thenReturn(anyLocation);
|
||||
if (implementation != null) {
|
||||
// If a call to getHRegionConnection, return this implementation.
|
||||
Mockito.when(connection.getHRegionConnection(Mockito.anyString(), Mockito.anyInt())).
|
||||
|
|
Loading…
Reference in New Issue