Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 162B8200B33 for ; Tue, 24 May 2016 20:54:00 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 14DE7160A35; Tue, 24 May 2016 18:54:00 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id B864B160A38 for ; Tue, 24 May 2016 20:53:57 +0200 (CEST) Received: (qmail 10903 invoked by uid 500); 24 May 2016 18:53:56 -0000 Mailing-List: contact commits-help@geode.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@geode.incubator.apache.org Delivered-To: mailing list commits@geode.incubator.apache.org Received: (qmail 10887 invoked by uid 99); 24 May 2016 18:53:56 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 May 2016 18:53:56 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 5ABABC6815 for ; Tue, 24 May 2016 18:53:56 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx2-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id T3vmq1o_yBYy for ; Tue, 24 May 2016 18:53:47 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-eu.apache.org (ASF Mail Server at mx2-lw-eu.apache.org) with SMTP id 4E9E55FE1F for ; Tue, 24 May 2016 18:53:43 +0000 (UTC) Received: (qmail 7395 invoked by uid 99); 24 May 2016 18:53:42 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 May 2016 18:53:42 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5A9C0E9E94; Tue, 24 May 2016 18:53:42 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sai_boorlagadda@apache.org To: commits@geode.incubator.apache.org Date: Tue, 24 May 2016 18:53:55 -0000 Message-Id: In-Reply-To: <5a31d59ae60d443ea8b3494d800eb9be@git.apache.org> References: <5a31d59ae60d443ea8b3494d800eb9be@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [14/55] [abbrv] incubator-geode git commit: GEODE-1276: Change UnitTests file system to IntegrationTest category GEODE-1307: Rename HeterogenousLuceneSerializer to HeterogeneousLuceneSerializer GEODE-1279: Tests for old TRAC bugs should be renamed to use archived-at: Tue, 24 May 2016 18:54:00 -0000 http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/AbstractLauncherTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/AbstractLauncherTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/AbstractLauncherTest.java index cabb5ff..0ebd4b6 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/AbstractLauncherTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/AbstractLauncherTest.java @@ -42,7 +42,7 @@ import com.gemstone.gemfire.test.junit.categories.UnitTest; @Category(UnitTest.class) public class AbstractLauncherTest { - protected AbstractLauncher createAbstractLauncher(final String memberName, final String memberId) { + private AbstractLauncher createAbstractLauncher(final String memberName, final String memberId) { return new FakeServiceLauncher(memberName, memberId); } @@ -249,7 +249,7 @@ public class AbstractLauncherTest { TimeUnit.DAYS.toMillis(2) + TimeUnit.HOURS.toMillis(1) + TimeUnit.MINUTES.toMillis(30) + TimeUnit.SECONDS.toMillis(1))); } - protected static final class FakeServiceLauncher extends AbstractLauncher { + private static final class FakeServiceLauncher extends AbstractLauncher { private final String memberId; private final String memberName; http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherLocalIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherLocalIntegrationTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherLocalIntegrationTest.java index 252b5aa..897d0fa 100755 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherLocalIntegrationTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherLocalIntegrationTest.java @@ -289,7 +289,7 @@ public class LocatorLauncherLocalIntegrationTest extends AbstractLocatorLauncher final int pid = readPid(this.pidFile); assertTrue(pid > 0); assertTrue(ProcessUtils.isProcessAlive(pid)); - assertEquals(getPid(), pid); + assertIndexDetailsEquals(getPid(), pid); // validate log file was created final String logFileName = getUniqueName()+".log"; @@ -303,7 +303,7 @@ public class LocatorLauncherLocalIntegrationTest extends AbstractLocatorLauncher } try { - assertEquals(Status.STOPPED, this.launcher.stop().getStatus()); + assertIndexDetailsEquals(Status.STOPPED, this.launcher.stop().getStatus()); waitForFileToDelete(this.pidFile); } catch (Throwable e) { logger.error(e); @@ -433,7 +433,7 @@ public class LocatorLauncherLocalIntegrationTest extends AbstractLocatorLauncher expected = e; assertNotNull(expected.getMessage()); assertTrue(expected.getMessage(), expected.getMessage().contains("A PID file already exists and a Locator may be running in")); - assertEquals(RuntimeException.class, expected.getClass()); + assertIndexDetailsEquals(RuntimeException.class, expected.getClass()); } catch (Throwable e) { logger.error(e); if (failure == null) { http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherRemoteIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherRemoteIntegrationTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherRemoteIntegrationTest.java index 8550a35..a5b8831 100755 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherRemoteIntegrationTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorLauncherRemoteIntegrationTest.java @@ -93,7 +93,7 @@ public class LocatorLauncherRemoteIntegrationTest extends AbstractLocatorLaunche Thread waiting = new Thread(new Runnable() { public void run() { try { - assertEquals(0, process.waitFor()); + assertIndexDetailsEquals(0, process.waitFor()); } catch (InterruptedException ignore) { logger.error("Interrupted while waiting for process!", ignore); @@ -114,8 +114,8 @@ public class LocatorLauncherRemoteIntegrationTest extends AbstractLocatorLaunche LocatorLauncher locatorLauncher = new Builder().setWorkingDirectory(this.temporaryFolder.getRoot().getCanonicalPath()).build(); - assertEquals(Status.ONLINE, locatorLauncher.status().getStatus()); - assertEquals(Status.STOPPED, locatorLauncher.stop().getStatus()); + assertIndexDetailsEquals(Status.ONLINE, locatorLauncher.status().getStatus()); + assertIndexDetailsEquals(Status.STOPPED, locatorLauncher.stop().getStatus()); } */ @@ -556,7 +556,7 @@ public class LocatorLauncherRemoteIntegrationTest extends AbstractLocatorLaunche // check the status final LocatorState locatorState = dirLauncher.status(); assertNotNull(locatorState); - assertEquals(Status.NOT_RESPONDING, locatorState.getStatus()); + assertIndexDetailsEquals(Status.NOT_RESPONDING, locatorState.getStatus()); final String logFileName = getUniqueName()+".log"; assertFalse("Log file should not exist: " + logFileName, new File(this.temporaryFolder.getRoot(), logFileName).exists()); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorStateTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorStateTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorStateTest.java index 55d7d6a..5693460 100755 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorStateTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/LocatorStateTest.java @@ -40,6 +40,22 @@ import com.gemstone.gemfire.test.junit.categories.UnitTest; @Category(UnitTest.class) public class LocatorStateTest { + private String classpath = "test_classpath"; + private String gemFireVersion = "test_gemfireversion"; + private String host = "test_host"; + private String javaVersion = "test_javaversion"; + private String jvmArguments = "test_jvmarguments"; + private String serviceLocation = "test_location"; + private String logFile = "test_logfile"; + private String memberName = "test_membername"; + private Integer pid = 6396; + private String port = "test_port"; + private String statusDescription = Status.NOT_RESPONDING.getDescription(); + private String statusMessage = "test_statusmessage"; + private Long timestampTime = 1450728233024L; + private Long uptime = 1629L; + private String workingDirectory = "test_workingdirectory"; + @Test public void fromJsonWithEmptyStringThrowsIllegalArgumentException() throws Exception { // given: empty string @@ -122,66 +138,64 @@ public class LocatorStateTest { return LocatorState.fromJson(value); } - private String classpath = "test_classpath"; - private String gemFireVersion = "test_gemfireversion"; - private String host = "test_host"; - private String javaVersion = "test_javaversion"; - private String jvmArguments = "test_jvmarguments"; - private String serviceLocation = "test_location"; - private String logFile = "test_logfile"; - private String memberName = "test_membername"; - private Integer pid = 6396; - private String port = "test_port"; - private String statusDescription = Status.NOT_RESPONDING.getDescription(); - private String statusMessage = "test_statusmessage"; - private Long timestampTime = 1450728233024L; - private Long uptime = 1629L; - private String workingDirectory = "test_workingdirectory"; - private String getClasspath() { return this.classpath; } + private String getGemFireVersion() { return this.gemFireVersion; } + private String getHost() { return this.host; } + private String getJavaVersion() { return this.javaVersion; } + private List getJvmArguments() { List list = new ArrayList(); list.add(this.jvmArguments); return list; } + private String getServiceLocation() { return this.serviceLocation; } + private String getLogFile() { return this.logFile; } + private String getMemberName() { return this.memberName; } + private Integer getPid() { return this.pid; } + private String getPort() { return this.port; } + private String getStatusDescription() { return this.statusDescription; } + private String getStatusMessage() { return this.statusMessage; } + private Long getTimestampTime() { return this.timestampTime; } + private Long getUptime() { return this.uptime; } + private String getWorkingDirectory() { return this.workingDirectory; } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherLocalIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherLocalIntegrationTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherLocalIntegrationTest.java index 911bfab..85bfe0a 100755 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherLocalIntegrationTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherLocalIntegrationTest.java @@ -432,7 +432,7 @@ public class ServerLauncherLocalIntegrationTest extends AbstractServerLauncherIn final int pid = readPid(this.pidFile); assertTrue(pid > 0); assertTrue(ProcessUtils.isProcessAlive(pid)); - assertEquals(getPid(), pid); + assertIndexDetailsEquals(getPid(), pid); // validate log file was created final String logFileName = getUniqueName()+".log"; @@ -446,7 +446,7 @@ public class ServerLauncherLocalIntegrationTest extends AbstractServerLauncherIn } try { - assertEquals(Status.STOPPED, this.launcher.stop().getStatus()); + assertIndexDetailsEquals(Status.STOPPED, this.launcher.stop().getStatus()); waitForFileToDelete(this.pidFile); } catch (Throwable e) { logger.error(e); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherRemoteIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherRemoteIntegrationTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherRemoteIntegrationTest.java index 4cd21a2..06c6bd1 100755 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherRemoteIntegrationTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherRemoteIntegrationTest.java @@ -111,7 +111,7 @@ public class ServerLauncherRemoteIntegrationTest extends AbstractServerLauncherR // @Override // public void run() { // try { -// assertEquals(0, process.waitFor()); +// assertIndexDetailsEquals(0, process.waitFor()); // } catch (InterruptedException e) { // logger.error("Interrupted while waiting for process", e); // } @@ -932,7 +932,7 @@ public class ServerLauncherRemoteIntegrationTest extends AbstractServerLauncherR // check the status final ServerState serverState = dirLauncher.status(); assertNotNull(serverState); - assertEquals(Status.NOT_RESPONDING, serverState.getStatus()); + assertIndexDetailsEquals(Status.NOT_RESPONDING, serverState.getStatus()); final String logFileName = getUniqueName()+".log"; assertFalse("Log file should not exist: " + logFileName, new File(this.temporaryFolder.getRoot(), logFileName).exists()); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherTest.java index 25e9528..ac331e2 100755 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/ServerLauncherTest.java @@ -739,6 +739,7 @@ public class ServerLauncherTest { assertFalse(serverLauncher.isDisableDefaultServer()); assertFalse(serverLauncher.isDefaultServerEnabled(mockCache)); } + @Test public void testIsDefaultServerEnabledWhenNoCacheServersExistAndDefaultServerDisabled() { final Cache mockCache = mockContext.mock(Cache.class, "Cache"); @@ -821,12 +822,6 @@ public class ServerLauncherTest { serverLauncher.startCacheServer(mockCache); } - public static void main(final String... args) { - System.err.printf("Thread (%1$s) is daemon (%2$s)%n", Thread.currentThread().getName(), - Thread.currentThread().isDaemon()); - new Builder(args).setCommand(Command.START).build().run(); - } - private final class ServerWaitMultiThreadedTestCase extends MultithreadedTestCase { private final AtomicBoolean connectionStateHolder = new AtomicBoolean(true); @@ -840,7 +835,8 @@ public class ServerLauncherTest { final Cache mockCache = mockContext.mock(Cache.class, "Cache"); final DistributedSystem mockDistributedSystem = new DistributedSystemAdapter() { - @Override public boolean isConnected() { + @Override + public boolean isConnected() { return connectionStateHolder.get(); } }; http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/AtomicLongWithTerminalStateJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/AtomicLongWithTerminalStateJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/AtomicLongWithTerminalStateJUnitTest.java index aca6874..eec4730 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/AtomicLongWithTerminalStateJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/AtomicLongWithTerminalStateJUnitTest.java @@ -16,18 +16,17 @@ */ package com.gemstone.gemfire.distributed.internal; +import static org.junit.Assert.*; + +import org.junit.Test; import org.junit.experimental.categories.Category; import com.gemstone.gemfire.test.junit.categories.UnitTest; -import junit.framework.TestCase; - -/** - * - */ @Category(UnitTest.class) -public class AtomicLongWithTerminalStateJUnitTest extends TestCase { - +public class AtomicLongWithTerminalStateJUnitTest { + + @Test public void test() { AtomicLongWithTerminalState al = new AtomicLongWithTerminalState(); assertEquals(23, al.compareAddAndGet(-1, 23)); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionConfigJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionConfigJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionConfigJUnitTest.java index 31acc47..8e1031f 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionConfigJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/DistributionConfigJUnitTest.java @@ -29,39 +29,47 @@ import java.util.List; import java.util.Map; import java.util.Properties; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.categories.Category; + import com.gemstone.gemfire.InternalGemFireException; import com.gemstone.gemfire.UnmodifiableException; import com.gemstone.gemfire.internal.ConfigSource; import com.gemstone.gemfire.management.internal.security.JSONAuthorization; import com.gemstone.gemfire.test.junit.categories.UnitTest; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.experimental.categories.Category; - - @Category(UnitTest.class) public class DistributionConfigJUnitTest { - static Map attributes; - static Map setters; - static Map getters; - static Map isModifiables; - static Map checkers; - static String[] attNames; - DistributionConfigImpl config; - - @BeforeClass - public static void beforeClass() { + + private Map, Class> classMap; + + private Map attributes; + private Map setters; + private Map getters; + private Map checkers; + private String[] attNames; + + private DistributionConfigImpl config; + + @Before + public void before() { + classMap = new HashMap, Class>(); + classMap.put(boolean.class, Boolean.class); + classMap.put(byte.class, Byte.class); + classMap.put(short.class, Short.class); + classMap.put(char.class, Character.class); + classMap.put(int.class, Integer.class); + classMap.put(long.class, Long.class); + classMap.put(float.class, Float.class); + classMap.put(double.class, Double.class); + attributes = DistributionConfig.attributes; setters = DistributionConfig.setters; getters = DistributionConfig.getters; attNames = DistributionConfig.dcValidAttributeNames; checkers = AbstractDistributionConfig.checkers; - } - @Before - public void before() { config = new DistributionConfigImpl(new Properties()); } @@ -99,6 +107,7 @@ public class DistributionConfigJUnitTest { System.out.println("filelList: " + fileList); System.out.println(); System.out.println("otherList: " + otherList); + assertEquals(boolList.size(), 30); assertEquals(intList.size(), 33); assertEquals(stringList.size(), 70); @@ -245,6 +254,7 @@ public class DistributionConfigJUnitTest { modifiables.add(attName); } } + assertEquals(modifiables.size(), 10); assertEquals(modifiables.get(0), "archive-disk-space-limit"); assertEquals(modifiables.get(1), "archive-file-size-limit"); @@ -256,7 +266,6 @@ public class DistributionConfigJUnitTest { assertEquals(modifiables.get(7), "statistic-archive-file"); assertEquals(modifiables.get(8), "statistic-sample-rate"); assertEquals(modifiables.get(9), "statistic-sampling-enabled"); - } @Test(expected = IllegalArgumentException.class) @@ -343,17 +352,4 @@ public class DistributionConfigJUnitTest { DistributionConfig config = new DistributionConfigImpl(props); assertEquals(config.getSecurityProps().size(), 4); } - - public final static Map, Class> classMap = new HashMap, Class>(); - - static { - classMap.put(boolean.class, Boolean.class); - classMap.put(byte.class, Byte.class); - classMap.put(short.class, Short.class); - classMap.put(char.class, Character.class); - classMap.put(int.class, Integer.class); - classMap.put(long.class, Long.class); - classMap.put(float.class, Float.class); - classMap.put(double.class, Double.class); - } } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/InternalDistributedSystemJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/InternalDistributedSystemJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/InternalDistributedSystemJUnitTest.java index 2024bf2..8832459 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/InternalDistributedSystemJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/InternalDistributedSystemJUnitTest.java @@ -132,7 +132,7 @@ public class InternalDistributedSystemJUnitTest assertEquals(DistributionConfig.DEFAULT_LOG_FILE, config.getLogFile()); //default log level gets overrided by the gemfire.properties created for unit tests. -// assertEquals(DistributionConfig.DEFAULT_LOG_LEVEL, config.getLogLevel()); +// assertIndexDetailsEquals(DistributionConfig.DEFAULT_LOG_LEVEL, config.getLogLevel()); assertEquals(DistributionConfig.DEFAULT_STATISTIC_SAMPLING_ENABLED, config.getStatisticSamplingEnabled()); @@ -145,7 +145,7 @@ public class InternalDistributedSystemJUnitTest // ack-wait-threadshold is overridden on VM's command line using a // system property. This is not a valid test. Hrm. -// assertEquals(DistributionConfig.DEFAULT_ACK_WAIT_THRESHOLD, config.getAckWaitThreshold()); +// assertIndexDetailsEquals(DistributionConfig.DEFAULT_ACK_WAIT_THRESHOLD, config.getAckWaitThreshold()); assertEquals(DistributionConfig.DEFAULT_ACK_SEVERE_ALERT_THRESHOLD, config.getAckSevereAlertThreshold()); @@ -683,7 +683,7 @@ public class InternalDistributedSystemJUnitTest Locator locator = (Locator) locators.iterator().next(); Assert.assertTrue(locator.isPeerLocator()); // Assert.assertFalse(locator.isServerLocator()); server location is forced on while licensing is disabled in GemFire -// Assert.assertEquals("127.0.0.1", locator.getBindAddress().getHostAddress()); removed this check for ipv6 testing +// Assert.assertIndexDetailsEquals("127.0.0.1", locator.getBindAddress().getHostAddress()); removed this check for ipv6 testing Assert.assertEquals(unusedPort, locator.getPort()); deleteStateFile(unusedPort); } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotIntegrationTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotIntegrationTest.java new file mode 100644 index 0000000..08648d9 --- /dev/null +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotIntegrationTest.java @@ -0,0 +1,122 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.gemstone.gemfire.distributed.internal; + +import static org.junit.Assert.*; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import com.gemstone.gemfire.cache.server.ServerLoad; +import com.gemstone.gemfire.test.junit.categories.FlakyTest; +import com.gemstone.gemfire.test.junit.categories.IntegrationTest; + +/** + * Integration tests extracted from LocatorLoadSnapshotJUnitTest + */ +@Category(IntegrationTest.class) +public class LocatorLoadSnapshotIntegrationTest { + + /** + * A basic test of concurrent functionality. Starts a number of + * threads making requests and expects the load to be balanced between + * three servers. + * @throws InterruptedException + */ + @Category(FlakyTest.class) // GEODE-613: lots of threads, async action, IntegrationTest-not-UnitTest, thread joins, time sensitive + @Test + public void testConcurrentBalancing() throws InterruptedException { + int NUM_THREADS = 50; + final int NUM_REQUESTS = 10000; + int ALLOWED_THRESHOLD = 50; //We should never be off by more than + //the number of concurrent threads. + + final LocatorLoadSnapshot sn = new LocatorLoadSnapshot(); + final ServerLocation l1 = new ServerLocation("localhost", 1); + final ServerLocation l2 = new ServerLocation("localhost", 2); + final ServerLocation l3 = new ServerLocation("localhost", 3); + + int initialLoad1 = (int) (Math.random() * (NUM_REQUESTS / 2)); + int initialLoad2 = (int) (Math.random() * (NUM_REQUESTS / 2)); + int initialLoad3 = (int) (Math.random() * (NUM_REQUESTS / 2)); + + sn.addServer(l1, new String[0], new ServerLoad(initialLoad1, 1, 0, 1)); + sn.addServer(l2, new String[0], new ServerLoad(initialLoad2, 1, 0, 1)); + sn.addServer(l3, new String[0], new ServerLoad(initialLoad3, 1, 0, 1)); + + final Map loadCounts = new HashMap(); + loadCounts.put(l1, new AtomicInteger(initialLoad1)); + loadCounts.put(l2, new AtomicInteger(initialLoad2)); + loadCounts.put(l3, new AtomicInteger(initialLoad3)); + + Thread[] threads = new Thread[NUM_THREADS]; +// final Object lock = new Object(); + for(int i =0; i < NUM_THREADS; i++) { + threads[i] = new Thread("Thread-" + i) { + public void run() { + for(int ii = 0; ii < NUM_REQUESTS; ii++) { + ServerLocation location; +// synchronized(lock) { + location = sn.getServerForConnection(null, Collections.EMPTY_SET); +// } + AtomicInteger count = (AtomicInteger) loadCounts.get(location); + count.incrementAndGet(); + } + } + }; + } + + for(int i =0; i < NUM_THREADS; i++) { + threads[i].start(); + } + + for(int i =0; i < NUM_THREADS; i++) { + Thread t = threads[i]; + long ms = 30 * 1000; + t.join(30 * 1000); + if (t.isAlive()) { + for(int j =0; j < NUM_THREADS; j++) { + threads[j].interrupt(); + } + fail("Thread did not terminate after " + ms + " ms: " + t); + } + } + + double expectedPerServer = ( initialLoad1 + initialLoad2 + initialLoad3 + + NUM_REQUESTS * NUM_THREADS) / (double) loadCounts.size(); +// for(Iterator itr = loadCounts.entrySet().iterator(); itr.hasNext(); ) { +// Map.Entry entry = (Entry) itr.next(); +// ServerLocation location = (ServerLocation) entry.getKey(); +// AI count= (AI) entry.getValue(); +// } + + for(Iterator itr = loadCounts.entrySet().iterator(); itr.hasNext(); ) { + Map.Entry entry = (Map.Entry) itr.next(); + ServerLocation location = (ServerLocation) entry.getKey(); + AtomicInteger count= (AtomicInteger) entry.getValue(); + int difference = (int) Math.abs(count.get() - expectedPerServer); + assertTrue("Count " + count + " for server " + location + " is not within " + ALLOWED_THRESHOLD + " of " + expectedPerServer, difference < ALLOWED_THRESHOLD); + } + } + +} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotJUnitTest.java index 34ac767..fb391f9 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/LocatorLoadSnapshotJUnitTest.java @@ -22,23 +22,18 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.Map; -import java.util.Map.Entry; -import java.util.concurrent.atomic.AtomicInteger; import org.junit.Test; import org.junit.experimental.categories.Category; import com.gemstone.gemfire.cache.server.ServerLoad; -import com.gemstone.gemfire.test.junit.categories.FlakyTest; import com.gemstone.gemfire.test.junit.categories.UnitTest; /** * Tests the functionality of the LocatorLoadSnapshot, which * is the data structure that is used in the locator to compare * the load between multiple servers. - * */ @Category(UnitTest.class) public class LocatorLoadSnapshotJUnitTest { @@ -61,7 +56,6 @@ public class LocatorLoadSnapshotJUnitTest { * and then we test that after several requests, the * load balancer starts sending connections to the second * server. - * */ @Test public void testTwoServers() { @@ -174,7 +168,7 @@ public class LocatorLoadSnapshotJUnitTest { * servers with interecting groups correctly. */ @Test - public void testInterectingGroups() { + public void testIntersectingGroups() { LocatorLoadSnapshot sn = new LocatorLoadSnapshot(); ServerLocation l1 = new ServerLocation("localhost", 1); ServerLocation l2 = new ServerLocation("localhost", 2); @@ -258,88 +252,6 @@ public class LocatorLoadSnapshotJUnitTest { assertEquals(Arrays.asList(new ServerLocation[] {} ), sn.getServersForQueue(null, excludeAll, 3)); } - /** - * A basic test of concurrent functionality. Starts a number of - * threads making requests and expects the load to be balanced between - * three servers. - * @throws InterruptedException - */ - @Category(FlakyTest.class) // GEODE-613: lots of threads, async action, IntegrationTest-not-UnitTest, thread joins, time sensitive - @Test - public void testConcurrentBalancing() throws InterruptedException { - int NUM_THREADS = 50; - final int NUM_REQUESTS = 10000; - int ALLOWED_THRESHOLD = 50; //We should never be off by more than - //the number of concurrent threads. - - final LocatorLoadSnapshot sn = new LocatorLoadSnapshot(); - final ServerLocation l1 = new ServerLocation("localhost", 1); - final ServerLocation l2 = new ServerLocation("localhost", 2); - final ServerLocation l3 = new ServerLocation("localhost", 3); - - int initialLoad1 = (int) (Math.random() * (NUM_REQUESTS / 2)); - int initialLoad2 = (int) (Math.random() * (NUM_REQUESTS / 2)); - int initialLoad3 = (int) (Math.random() * (NUM_REQUESTS / 2)); - - sn.addServer(l1, new String[0], new ServerLoad(initialLoad1, 1, 0, 1)); - sn.addServer(l2, new String[0], new ServerLoad(initialLoad2, 1, 0, 1)); - sn.addServer(l3, new String[0], new ServerLoad(initialLoad3, 1, 0, 1)); - - final Map loadCounts = new HashMap(); - loadCounts.put(l1, new AtomicInteger(initialLoad1)); - loadCounts.put(l2, new AtomicInteger(initialLoad2)); - loadCounts.put(l3, new AtomicInteger(initialLoad3)); - - Thread[] threads = new Thread[NUM_THREADS]; -// final Object lock = new Object(); - for(int i =0; i < NUM_THREADS; i++) { - threads[i] = new Thread("Thread-" + i) { - public void run() { - for(int ii = 0; ii < NUM_REQUESTS; ii++) { - ServerLocation location; -// synchronized(lock) { - location = sn.getServerForConnection(null, Collections.EMPTY_SET); -// } - AtomicInteger count = (AtomicInteger) loadCounts.get(location); - count.incrementAndGet(); - } - } - }; - } - - for(int i =0; i < NUM_THREADS; i++) { - threads[i].start(); - } - - for(int i =0; i < NUM_THREADS; i++) { - Thread t = threads[i]; - long ms = 30 * 1000; - t.join(30 * 1000); - if (t.isAlive()) { - for(int j =0; j < NUM_THREADS; j++) { - threads[j].interrupt(); - } - fail("Thread did not terminate after " + ms + " ms: " + t); - } - } - - double expectedPerServer = ( initialLoad1 + initialLoad2 + initialLoad3 + - NUM_REQUESTS * NUM_THREADS) / (double) loadCounts.size(); -// for(Iterator itr = loadCounts.entrySet().iterator(); itr.hasNext(); ) { -// Map.Entry entry = (Entry) itr.next(); -// ServerLocation location = (ServerLocation) entry.getKey(); -// AI count= (AI) entry.getValue(); -// } - - for(Iterator itr = loadCounts.entrySet().iterator(); itr.hasNext(); ) { - Map.Entry entry = (Entry) itr.next(); - ServerLocation location = (ServerLocation) entry.getKey(); - AtomicInteger count= (AtomicInteger) entry.getValue(); - int difference = (int) Math.abs(count.get() - expectedPerServer); - assertTrue("Count " + count + " for server " + location + " is not within " + ALLOWED_THRESHOLD + " of " + expectedPerServer, difference < ALLOWED_THRESHOLD); - } - } - @Test public void testAreBalanced() { final LocatorLoadSnapshot sn = new LocatorLoadSnapshot(); @@ -367,19 +279,5 @@ public class LocatorLoadSnapshotJUnitTest { assertTrue(sn.hasBalancedConnections("a")); assertFalse(sn.hasBalancedConnections("b")); } - - public void _test2() { // delete this method? - final LocatorLoadSnapshot sn = new LocatorLoadSnapshot(); - sn.addServer(new ServerLocation("hs20h.gemstone.com",28543), new String[0], new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20l.gemstone.com",22385), new String[0], new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20n.gemstone.com",23482), new String[0], new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20m.gemstone.com",23429), new String[0], new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20e.gemstone.com",20154), new String[0],new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20j.gemstone.com",24273), new String[0],new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20g.gemstone.com",27125), new String[0],new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20i.gemstone.com",25201), new String[0],new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20k.gemstone.com",23711), new String[0],new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - sn.addServer(new ServerLocation("hs20f.gemstone.com",21025), new String[0],new ServerLoad(0.0f, 0.00125f, 0.0f, 1.0f)); - } } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogJUnitTest.java index ffcf09c..7e23f7b 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/ProductUseLogJUnitTest.java @@ -16,71 +16,92 @@ */ package com.gemstone.gemfire.distributed.internal; +import static org.junit.Assert.*; + import java.io.BufferedReader; import java.io.File; import java.io.FileReader; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; import org.junit.experimental.categories.Category; +import org.junit.rules.TemporaryFolder; +import org.junit.rules.TestName; import com.gemstone.gemfire.test.junit.categories.UnitTest; -import junit.framework.TestCase; +@Category(UnitTest.class) // Fails on Windows -- see GEODE-373 +public class ProductUseLogJUnitTest { -@Category(UnitTest.class) -public class ProductUseLogJUnitTest extends TestCase { + private long oldMax; + private File logFile; + private ProductUseLog log; - public void testBasics() throws Exception { - File logFile = new File("ProductUseLogTest_testBasics.log"); - if (logFile.exists()) { - logFile.delete(); + @Rule + public TemporaryFolder temporaryFolder = new TemporaryFolder(); + + @Rule + public TestName testName = new TestName(); + + @Before + public void setUp() throws Exception { + oldMax = ProductUseLog.MAX_PRODUCT_USE_FILE_SIZE; + logFile = temporaryFolder.newFile(getClass().getSimpleName() + "_" + testName.getMethodName() + ".log"); + } + + @After + public void tearDown() throws Exception { + ProductUseLog.MAX_PRODUCT_USE_FILE_SIZE = oldMax; + if (log != null) { + log.close(); } - ProductUseLog log = new ProductUseLog(logFile); + } + + @Test + public void testBasics() throws Exception { + assertTrue(logFile.delete()); + + log = new ProductUseLog(logFile); + assertTrue(logFile.exists()); + log.log("test message"); log.close(); log.log("shouldn't be logged"); log.reopen(); log.log("test message"); log.close(); + BufferedReader reader = new BufferedReader(new FileReader(logFile)); - try { - String line = reader.readLine(); - assertTrue(line.length() == 0); - line = reader.readLine(); - assertTrue("expected first line to contain 'test message'", line.contains("test message")); - - line = reader.readLine(); - assertTrue(line.length() == 0); - line = reader.readLine(); - assertTrue("expected second line to contain 'test message'", line.contains("test message")); - - line = reader.readLine(); - assertTrue("expected only two non-empty lines in the file", line == null); - } finally { - reader.close(); - } + + String line = reader.readLine(); + assertTrue(line.length() == 0); + line = reader.readLine(); + assertTrue("expected first line to contain 'test message'", line.contains("test message")); + + line = reader.readLine(); + assertTrue(line.length() == 0); + line = reader.readLine(); + assertTrue("expected second line to contain 'test message'", line.contains("test message")); + + line = reader.readLine(); + assertTrue("expected only two non-empty lines in the file", line == null); } + @Test public void testSizeLimit() throws Exception { - long oldMax = ProductUseLog.MAX_PRODUCT_USE_FILE_SIZE; ProductUseLog.MAX_PRODUCT_USE_FILE_SIZE = 2000L; - try { - File logFile = new File("ProductUseLogTest_testSizeLimit.log"); - assertTrue(logFile.createNewFile()); - ProductUseLog log = new ProductUseLog(logFile); - try { - String logEntry = "log entry"; - for (long i=0; i + * TODO: write more unit tests for this class... + *

* @see com.gemstone.gemfire.distributed.internal.ServerLocator * @see org.junit.Assert * @see org.junit.Test * @since 7.0 */ -// TODO Dan, write more unit tests for this class... @Category(UnitTest.class) public class ServerLocatorJUnitTest { - protected ServerLocator createServerLocator() throws IOException { - return new TestServerLocator(); - } - @Test public void testProcessRequestProcessesLocatorStatusRequest() throws IOException { final ServerLocator serverLocator = createServerLocator(); @@ -56,7 +53,11 @@ public class ServerLocatorJUnitTest { assertTrue(response instanceof LocatorStatusResponse); } - protected static class TestServerLocator extends ServerLocator { + private ServerLocator createServerLocator() throws IOException { + return new TestServerLocator(); + } + + private static class TestServerLocator extends ServerLocator { TestServerLocator() throws IOException { super(); } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/SharedConfigurationJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/SharedConfigurationJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/SharedConfigurationJUnitTest.java index f308855..8af42b6 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/SharedConfigurationJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/SharedConfigurationJUnitTest.java @@ -31,7 +31,6 @@ import com.gemstone.gemfire.test.junit.categories.UnitTest; /** * Unit tests for {@link SharedConfiguration}. - * * * @since 8.1 */ http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/StartupMessageDataJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/StartupMessageDataJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/StartupMessageDataJUnitTest.java index aa0a88e..ee3f99e 100755 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/StartupMessageDataJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/StartupMessageDataJUnitTest.java @@ -16,6 +16,8 @@ */ package com.gemstone.gemfire.distributed.internal; +import static org.junit.Assert.*; + import java.io.DataInput; import java.io.DataOutputStream; import java.util.ArrayList; @@ -24,6 +26,7 @@ import java.util.List; import java.util.Properties; import java.util.StringTokenizer; +import org.junit.Test; import org.junit.experimental.categories.Category; import com.gemstone.gemfire.DataSerializer; @@ -33,21 +36,15 @@ import com.gemstone.gemfire.internal.ByteArrayData; import com.gemstone.gemfire.internal.admin.remote.DistributionLocatorId; import com.gemstone.gemfire.test.junit.categories.UnitTest; -import junit.framework.TestCase; - /** * Tests {@link StartupMessageData}. * * @since 7.0 */ @Category(UnitTest.class) -public class StartupMessageDataJUnitTest extends TestCase { - - public StartupMessageDataJUnitTest(String name) { - super(name); - } - +public class StartupMessageDataJUnitTest { + @Test public void testWriteHostedLocatorsWithEmpty() throws Exception { Collection hostedLocators = new ArrayList(); StartupMessageData data = new StartupMessageData(); @@ -55,6 +52,7 @@ public class StartupMessageDataJUnitTest extends TestCase { assertTrue(data.getOptionalFields().isEmpty()); } + @Test public void testWriteHostedLocatorsWithNull() throws Exception { Collection hostedLocators = null; StartupMessageData data = new StartupMessageData(); @@ -62,6 +60,7 @@ public class StartupMessageDataJUnitTest extends TestCase { assertTrue(data.getOptionalFields().isEmpty()); } + @Test public void testWriteHostedLocatorsWithOne() throws Exception { String locatorString = createOneLocatorString(); @@ -74,6 +73,7 @@ public class StartupMessageDataJUnitTest extends TestCase { assertEquals(locatorString, data.getOptionalFields().get(StartupMessageData.HOSTED_LOCATORS)); } + @Test public void testWriteHostedLocatorsWithThree() throws Exception { String[] locatorStrings = createManyLocatorStrings(3); List hostedLocators = new ArrayList(); @@ -94,7 +94,8 @@ public class StartupMessageDataJUnitTest extends TestCase { assertEquals(locatorStrings[i], st.nextToken()); } } - + + @Test public void testReadHostedLocatorsWithThree() throws Exception { // set up the data String[] locatorStrings = createManyLocatorStrings(3); @@ -116,7 +117,8 @@ public class StartupMessageDataJUnitTest extends TestCase { i++; } } - + + @Test public void testToDataWithEmptyHostedLocators() throws Exception { Collection hostedLocators = new ArrayList(); StartupMessageData data = new StartupMessageData(); @@ -134,6 +136,7 @@ public class StartupMessageDataJUnitTest extends TestCase { assertNull(props); } + @Test public void testToDataWithNullHostedLocators() throws Exception { Collection hostedLocators = null; StartupMessageData data = new StartupMessageData(); @@ -150,7 +153,8 @@ public class StartupMessageDataJUnitTest extends TestCase { Properties props = (Properties) DataSerializer.readObject(in); assertNull(props); } - + + @Test public void testToDataWithOneHostedLocator() throws Exception { String locatorString = createOneLocatorString(); @@ -176,6 +180,7 @@ public class StartupMessageDataJUnitTest extends TestCase { assertEquals(locatorString, hostedLocatorsString); } + @Test public void testToDataWithThreeHostedLocators() throws Exception { String[] locatorStrings = createManyLocatorStrings(3); List hostedLocators = new ArrayList(); @@ -215,6 +220,7 @@ public class StartupMessageDataJUnitTest extends TestCase { } } + @Test public void testNullHostedLocator() throws Exception { String locatorString = null; DataInput in = getDataInputWithOneHostedLocator(locatorString); @@ -223,7 +229,8 @@ public class StartupMessageDataJUnitTest extends TestCase { Collection readHostedLocators = dataToRead.readHostedLocators(); assertNull(readHostedLocators); } - + + @Test public void testEmptyHostedLocator() throws Exception { String locatorString = ""; DataInput in = getDataInputWithOneHostedLocator(locatorString); @@ -232,7 +239,8 @@ public class StartupMessageDataJUnitTest extends TestCase { Collection readHostedLocators = dataToRead.readHostedLocators(); assertNull(readHostedLocators); } - + + @Test public void testOneHostedLocator() throws Exception { String locatorString = createOneLocatorString(); DataInput in = getDataInputWithOneHostedLocator(locatorString); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorIntegrationTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorIntegrationTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorIntegrationTest.java new file mode 100644 index 0000000..4eaf9cb --- /dev/null +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorIntegrationTest.java @@ -0,0 +1,299 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.gemstone.gemfire.distributed.internal.deadlock; + +import static org.junit.Assert.*; + +import java.io.Serializable; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Set; +import java.util.concurrent.Semaphore; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import com.gemstone.gemfire.test.junit.categories.IntegrationTest; + +/** + * TODO: can we get rid of the Thread.sleep calls? + */ +@Category(IntegrationTest.class) +public class DeadlockDetectorIntegrationTest { + + private volatile Set stuckThreads; + + @Before + public void setUp() throws Exception { + stuckThreads = Collections.synchronizedSet(new HashSet()); + } + + /** + * IntegrationTests are forkEvery 1 so cleanup is not necessary + */ + @After + public void tearDown() throws Exception { + for (Thread thread: stuckThreads) { + thread.interrupt(); + } + + stuckThreads.clear(); + } + + /** + * must be IntegrationTest because: "we can't clean up the threads deadlocked on monitors" + */ + @Test + public void testMonitorDeadlock() throws Exception { + final Object lock1 = new Object(); + final Object lock2 = new Object(); + + Thread thread1 = new Thread() { + public void run() { + stuckThreads.add(Thread.currentThread()); + + synchronized(lock1) { + Thread thread2 = new Thread() { + public void run() { + stuckThreads.add(Thread.currentThread()); + synchronized(lock2) { + synchronized(lock1) { + System.out.println("we won't get here"); + } + } + } + }; + + thread2.start(); + + try { + Thread.sleep(1000); + synchronized(lock2) { + System.out.println("We won't get here"); + } + } catch (InterruptedException ignore) { + } + } + } + }; + + thread1.start(); + + Thread.sleep(2000); + + DeadlockDetector detector = new DeadlockDetector(); + detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); + LinkedList deadlocks = detector.findDeadlock(); + + System.out.println("deadlocks=" + DeadlockDetector.prettyFormat(deadlocks)); + + assertEquals(4, detector.findDeadlock().size()); + } + + /** + * Make sure that we can detect a deadlock between two threads + * that are trying to acquire a two different syncs in the different orders. + */ + @Test + public void testSyncDeadlock() throws Exception { + final Lock lock1 = new ReentrantLock(); + final Lock lock2 = new ReentrantLock(); + + Thread thread1 = new Thread() { + public void run() { + stuckThreads.add(Thread.currentThread()); + + lock1.lock(); + + Thread thread2 = new Thread() { + public void run() { + stuckThreads.add(Thread.currentThread()); + lock2.lock(); + try { + lock1.tryLock(10, TimeUnit.SECONDS); + } catch (InterruptedException e) { + //ignore + } + lock2.unlock(); + } + }; + + thread2.start(); + + try { + Thread.sleep(1000); + lock2.tryLock(10, TimeUnit.SECONDS); + } catch (InterruptedException ignore) { + } + + lock1.unlock(); + } + }; + + thread1.start(); + + Thread.sleep(2000); + + DeadlockDetector detector = new DeadlockDetector(); + detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); + LinkedList deadlocks = detector.findDeadlock(); + + System.out.println("deadlocks=" + DeadlockDetector.prettyFormat(deadlocks)); + + assertEquals(4, detector.findDeadlock().size()); + } + + @Ignore("Semaphore deadlock detection is not supported by the JDK") + @Test + public void testSemaphoreDeadlock() throws Exception { + final Semaphore lock1 = new Semaphore(1); + final Semaphore lock2 = new Semaphore(1); + + Thread thread1 = new Thread() { + public void run() { + stuckThreads.add(Thread.currentThread()); + + try { + lock1.acquire(); + } catch (InterruptedException e1) { + e1.printStackTrace(); + } + + Thread thread2 = new Thread() { + public void run() { + stuckThreads.add(Thread.currentThread()); + try { + lock2.acquire(); + lock1.tryAcquire(10, TimeUnit.SECONDS); + } catch (InterruptedException ignore) { + } + lock2.release(); + } + }; + + thread2.start(); + + try { + Thread.sleep(1000); + lock2.tryAcquire(10, TimeUnit.SECONDS); + } catch (InterruptedException ignore) { + } + + lock1.release(); + } + }; + + thread1.start(); + + Thread.sleep(2000); + + DeadlockDetector detector = new DeadlockDetector(); + detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); + LinkedList deadlocks = detector.findDeadlock(); + + System.out.println("deadlocks=" + DeadlockDetector.prettyFormat(deadlocks)); + + assertEquals(4, detector.findDeadlock().size()); + } + + @Ignore("ReadWriteLock deadlock detection is not currently supported by DeadlockDetector") + @Test + public void testReadLockDeadlock() throws Exception { + final ReadWriteLock lock1 = new ReentrantReadWriteLock(); + final ReadWriteLock lock2 = new ReentrantReadWriteLock(); + + Thread thread1 = new Thread() { + @Override + public void run() { + stuckThreads.add(Thread.currentThread()); + + lock1.readLock().lock(); + + Thread thread2 = new Thread() { + @Override + public void run() { + stuckThreads.add(Thread.currentThread()); + lock2.readLock().lock(); + try { + lock1.writeLock().tryLock(10, TimeUnit.SECONDS); + } catch (InterruptedException ignore) { + } + lock2.readLock().unlock(); + } + }; + + thread2.start(); + + try { + Thread.sleep(1000); + lock2.writeLock().tryLock(10, TimeUnit.SECONDS); + } catch (InterruptedException ignore) { + } + + lock1.readLock().unlock(); + } + }; + + thread1.start(); + + Thread.sleep(2000); + + DeadlockDetector detector = new DeadlockDetector(); + detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); + LinkedList deadlocks = detector.findDeadlock(); + + System.out.println("deadlocks=" + deadlocks); + + assertEquals(4, detector.findDeadlock().size()); + } + + /** + * A fake dependency monitor. + */ + private static class MockDependencyMonitor implements DependencyMonitor { + + Set> blockedThreads = new HashSet<>(); + Set> held = new HashSet<>(); + + @Override + public Set> getBlockedThreads(Thread[] allThreads) { + return blockedThreads; + } + + public void addDependency(String resource, Thread thread) { + held.add(new Dependency<>(resource, thread)); + } + + public void addDependency(Thread thread, String resource) { + blockedThreads.add(new Dependency<>(thread, resource)); + } + + @Override + public Set> getHeldResources(Thread[] allThreads) { + return held; + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorJUnitTest.java deleted file mode 100644 index d27aa2c..0000000 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorJUnitTest.java +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.gemstone.gemfire.distributed.internal.deadlock; - -import static org.junit.Assert.*; - -import java.io.Serializable; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.Set; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Semaphore; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; - -import org.junit.After; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -import com.gemstone.gemfire.test.junit.categories.UnitTest; - -/** - * - */ -@Category(UnitTest.class) -public class DeadlockDetectorJUnitTest { - - private final Set stuckThreads = Collections.synchronizedSet(new HashSet()); - - @After - public void tearDown() { - for(Thread thread: stuckThreads) { - thread.interrupt(); - try { - thread.join(20 * 1000); - } catch (InterruptedException e) { - throw new RuntimeException("interrupted", e); - } - if(thread.isAlive()) { - fail("Couldn't kill" + thread); - } - } - stuckThreads.clear(); - } - - @Test - public void testNoDeadlocks() { - DeadlockDetector detector = new DeadlockDetector(); - detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); - assertEquals(null, detector.findDeadlock()); - } - - //this is commented out, because we can't - //clean up the threads deadlocked on monitors. - @Ignore - @Test - public void testMonitorDeadlock() throws InterruptedException { - final Object lock1 = new Object(); - final Object lock2 = new Object(); - Thread thread1 = new Thread() { - public void run() { - stuckThreads.add(Thread.currentThread()); - synchronized(lock1) { - Thread thread2 = new Thread() { - public void run() { - stuckThreads.add(Thread.currentThread()); - synchronized(lock2) { - synchronized(lock1) { - System.out.println("we won't get here"); - } - } - } - }; - thread2.start(); - try { - Thread.sleep(1000); - synchronized(lock2) { - System.out.println("We won't get here"); - } - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - }; - - thread1.start(); - Thread.sleep(2000); - DeadlockDetector detector = new DeadlockDetector(); - detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); - LinkedList deadlocks = detector.findDeadlock(); - System.out.println("deadlocks=" + DeadlockDetector.prettyFormat(deadlocks)); - assertEquals(4, detector.findDeadlock().size()); - } - - /** - * Make sure that we can detect a deadlock between two threads - * that are trying to acquire a two different syncs in the different orders. - * @throws InterruptedException - */ - @Test - public void testSyncDeadlock() throws InterruptedException { - - final Lock lock1 = new ReentrantLock(); - final Lock lock2 = new ReentrantLock(); - Thread thread1 = new Thread() { - public void run() { - stuckThreads.add(Thread.currentThread()); - lock1.lock(); - Thread thread2 = new Thread() { - public void run() { - stuckThreads.add(Thread.currentThread()); - lock2.lock(); - try { - lock1.tryLock(10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - //ignore - } - lock2.unlock(); - } - }; - thread2.start(); - try { - Thread.sleep(1000); - lock2.tryLock(10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - //ignore - } - lock1.unlock(); - } - }; - - thread1.start(); - Thread.sleep(2000); - DeadlockDetector detector = new DeadlockDetector(); - detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); - LinkedList deadlocks = detector.findDeadlock(); - System.out.println("deadlocks=" + DeadlockDetector.prettyFormat(deadlocks)); - assertEquals(4, detector.findDeadlock().size()); - } - - //Semaphore are also not supported by the JDK - @Ignore - @Test - public void testSemaphoreDeadlock() throws InterruptedException { - - final Semaphore lock1 = new Semaphore(1); - final Semaphore lock2 = new Semaphore(1); - Thread thread1 = new Thread() { - public void run() { - stuckThreads.add(Thread.currentThread()); - try { - lock1.acquire(); - } catch (InterruptedException e1) { - e1.printStackTrace(); - } - Thread thread2 = new Thread() { - public void run() { - stuckThreads.add(Thread.currentThread()); - try { - lock2.acquire(); - lock1.tryAcquire(10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - //ignore - } - lock2.release(); - } - }; - thread2.start(); - try { - Thread.sleep(1000); - lock2.tryAcquire(10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - //ignore - } - lock1.release(); - } - }; - - thread1.start(); - Thread.sleep(2000); - DeadlockDetector detector = new DeadlockDetector(); - detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); - LinkedList deadlocks = detector.findDeadlock(); - System.out.println("deadlocks=" + DeadlockDetector.prettyFormat(deadlocks)); - assertEquals(4, detector.findDeadlock().size()); - } - - /** - * This type of deadlock is currently not detected - * @throws InterruptedException - */ - @Ignore - @Test - public void testReadLockDeadlock() throws InterruptedException { - - final ReadWriteLock lock1 = new ReentrantReadWriteLock(); - final ReadWriteLock lock2 = new ReentrantReadWriteLock(); - Thread thread1 = new Thread() { - public void run() { - stuckThreads.add(Thread.currentThread()); - lock1.readLock().lock(); - Thread thread2 = new Thread() { - public void run() { - stuckThreads.add(Thread.currentThread()); - lock2.readLock().lock(); - try { - lock1.writeLock().tryLock(10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - e.printStackTrace(); - } - lock2.readLock().unlock(); - } - }; - thread2.start(); - try { - Thread.sleep(1000); - lock2.writeLock().tryLock(10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - lock1.readLock().unlock(); - } - }; - - thread1.start(); - Thread.sleep(2000); - DeadlockDetector detector = new DeadlockDetector(); - detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); - LinkedList deadlocks = detector.findDeadlock(); - System.out.println("deadlocks=" + deadlocks); - assertEquals(4, detector.findDeadlock().size()); - } - - /** - * Test that the deadlock detector will find deadlocks - * that are reported by the {@link DependencyMonitorManager} - */ - @Test - public void testProgramaticDependencies() { - final CountDownLatch cdl = new CountDownLatch(1); - MockDependencyMonitor mock = new MockDependencyMonitor(); - DependencyMonitorManager.addMonitor(mock); - - Thread t1 = startAThread(cdl); - Thread t2 = startAThread(cdl); - - String resource1 = "one"; - String resource2 = "two"; - - mock.addDependency(t1, resource1); - mock.addDependency(resource1, t2); - mock.addDependency(t2, resource2); - mock.addDependency(resource2, t1); - - - DeadlockDetector detector = new DeadlockDetector(); - detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); - LinkedList deadlocks = detector.findDeadlock(); - System.out.println("deadlocks=" + deadlocks); - assertEquals(4, deadlocks.size()); - cdl.countDown(); - DependencyMonitorManager.removeMonitor(mock); - } - - private Thread startAThread(final CountDownLatch cdl) { - Thread thread = new Thread() { - public void run() { - try { - cdl.await(); - } catch (InterruptedException e) { - } - } - }; - thread.start(); - - return thread; - } - - /** - * A fake dependency monitor. - * - */ - private static class MockDependencyMonitor implements DependencyMonitor { - - Set> blockedThreads = new HashSet>(); - Set> held = new HashSet>(); - - public Set> getBlockedThreads( - Thread[] allThreads) { - return blockedThreads; - } - - public void addDependency(String resource, Thread thread) { - held.add(new Dependency(resource, thread)); - - } - - public void addDependency(Thread thread, String resource) { - blockedThreads.add(new Dependency(thread, resource)); - } - - public Set> getHeldResources( - Thread[] allThreads) { - return held; - } - - } - -} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorTest.java new file mode 100644 index 0000000..9490f47 --- /dev/null +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DeadlockDetectorTest.java @@ -0,0 +1,140 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.gemstone.gemfire.distributed.internal.deadlock; + +import static org.junit.Assert.*; + +import java.io.Serializable; +import java.util.Collections; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Set; +import java.util.concurrent.CountDownLatch; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import com.gemstone.gemfire.test.junit.categories.UnitTest; + +@Category(UnitTest.class) +public class DeadlockDetectorTest { + + private volatile Set stuckThreads; + + @Before + public void setUp() throws Exception { + stuckThreads = Collections.synchronizedSet(new HashSet()); + } + + @After + public void tearDown() throws Exception { + for (Thread thread: stuckThreads) { + thread.interrupt(); + thread.join(20 * 1000); + if (thread.isAlive()) { + fail("Couldn't kill" + thread); + } + } + + stuckThreads.clear(); + } + + @Test + public void testNoDeadlocks() { + DeadlockDetector detector = new DeadlockDetector(); + detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); + assertEquals(null, detector.findDeadlock()); + } + + /** + * Test that the deadlock detector will find deadlocks + * that are reported by the {@link DependencyMonitorManager} + */ + @Test + public void testProgrammaticDependencies() throws Exception { + final CountDownLatch latch = new CountDownLatch(1); + MockDependencyMonitor mockDependencyMonitor = new MockDependencyMonitor(); + DependencyMonitorManager.addMonitor(mockDependencyMonitor); + + Thread thread1 = startAThread(latch); + Thread thread2 = startAThread(latch); + + String resource1 = "one"; + String resource2 = "two"; + + mockDependencyMonitor.addDependency(thread1, resource1); + mockDependencyMonitor.addDependency(resource1, thread2); + mockDependencyMonitor.addDependency(thread2, resource2); + mockDependencyMonitor.addDependency(resource2, thread1); + + DeadlockDetector detector = new DeadlockDetector(); + detector.addDependencies(DeadlockDetector.collectAllDependencies("here")); + LinkedList deadlocks = detector.findDeadlock(); + + System.out.println("deadlocks=" + deadlocks); + + assertEquals(4, deadlocks.size()); + + latch.countDown(); + DependencyMonitorManager.removeMonitor(mockDependencyMonitor); + } + + private Thread startAThread(final CountDownLatch latch) { + Thread thread = new Thread() { + @Override + public void run() { + try { + latch.await(); + } catch (InterruptedException ignore) { + } + } + }; + + thread.start(); + + return thread; + } + + /** + * A fake dependency monitor. + */ + private static class MockDependencyMonitor implements DependencyMonitor { + + Set> blockedThreads = new HashSet<>(); + Set> held = new HashSet<>(); + + @Override + public Set> getBlockedThreads(Thread[] allThreads) { + return blockedThreads; + } + + public void addDependency(String resource, Thread thread) { + held.add(new Dependency<>(resource, thread)); + } + + public void addDependency(Thread thread, String resource) { + blockedThreads.add(new Dependency<>(thread, resource)); + } + + @Override + public Set> getHeldResources(Thread[] allThreads) { + return held; + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DependencyGraphJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DependencyGraphJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DependencyGraphJUnitTest.java index b93ea09..93f47f0 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DependencyGraphJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/DependencyGraphJUnitTest.java @@ -16,23 +16,21 @@ */ package com.gemstone.gemfire.distributed.internal.deadlock; +import static org.junit.Assert.*; + import java.util.HashSet; import java.util.Set; +import org.junit.Test; import org.junit.experimental.categories.Category; import com.gemstone.gemfire.test.junit.categories.UnitTest; -import junit.framework.TestCase; - -/** - * - */ @Category(UnitTest.class) -public class DependencyGraphJUnitTest extends TestCase { - +public class DependencyGraphJUnitTest { + + @Test public void testFindCycle() { - DependencyGraph graph = new DependencyGraph(); graph.addEdge(new Dependency("A", "B")); graph.addEdge(new Dependency("A", "F")); @@ -47,9 +45,9 @@ public class DependencyGraphJUnitTest extends TestCase { expected.add(new Dependency("E", "A")); assertEquals(expected, new HashSet(graph.findCycle())); } - + + @Test public void testSubGraph() { - DependencyGraph graph = new DependencyGraph(); graph.addEdge(new Dependency("A", "B")); graph.addEdge(new Dependency("B", "C")); @@ -68,7 +66,8 @@ public class DependencyGraphJUnitTest extends TestCase { DependencyGraph sub2 = graph.getSubGraph("E"); assertEquals(null, sub2.findCycle()); } - + + @Test public void testTwoPaths() { DependencyGraph graph = new DependencyGraph(); graph.addEdge(new Dependency("A", "B")); @@ -78,7 +77,8 @@ public class DependencyGraphJUnitTest extends TestCase { assertEquals(null, graph.findCycle()); } - + + @Test public void testEmptySet() { DependencyGraph graph = new DependencyGraph(); assertEquals(null, graph.findCycle()); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/UnsafeThreadLocalJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/UnsafeThreadLocalJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/UnsafeThreadLocalJUnitTest.java index 7c7a7fc..41e2ff7 100644 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/UnsafeThreadLocalJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/deadlock/UnsafeThreadLocalJUnitTest.java @@ -16,45 +16,62 @@ */ package com.gemstone.gemfire.distributed.internal.deadlock; +import static org.junit.Assert.*; + import java.util.concurrent.CountDownLatch; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; import org.junit.experimental.categories.Category; import com.gemstone.gemfire.test.junit.categories.UnitTest; -import junit.framework.TestCase; - -/** - * - */ @Category(UnitTest.class) -public class UnsafeThreadLocalJUnitTest extends TestCase { +public class UnsafeThreadLocalJUnitTest { + + private static final long INTERVAL = 10; + + private volatile boolean sleep; + + @Before + public void setUp() throws Exception { + sleep = true; + } + + @After + public void tearDown() throws Exception { + sleep = false; + } /** * Test that we can get the value of a thread local from another thread. - * - * @throws InterruptedException */ + @Test public void test() throws InterruptedException { - final UnsafeThreadLocal utl = new UnsafeThreadLocal(); + final UnsafeThreadLocal unsafeThreadLocal = new UnsafeThreadLocal(); final CountDownLatch localSet = new CountDownLatch(1); Thread test = new Thread() { public void run() { - utl.set("hello"); + unsafeThreadLocal.set("hello"); localSet.countDown(); try { - Thread.sleep(100 * 1000); + while (sleep) { + Thread.sleep(INTERVAL); + } } catch (InterruptedException e) { - e.printStackTrace(); + throw new AssertionError(e); } } }; + test.setDaemon(true); test.start(); + localSet.await(); - assertEquals("hello", utl.get(test)); - assertEquals(null, utl.get(Thread.currentThread())); - } + assertEquals("hello", unsafeThreadLocal.get(test)); + assertEquals(null, unsafeThreadLocal.get(Thread.currentThread())); + } } http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/bf258f62/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/NetViewJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/NetViewJUnitTest.java b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/NetViewJUnitTest.java index dd7b432..5caf997 100755 --- a/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/NetViewJUnitTest.java +++ b/geode-core/src/test/java/com/gemstone/gemfire/distributed/internal/membership/NetViewJUnitTest.java @@ -1,54 +1,42 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.gemstone.gemfire.distributed.internal.membership; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; +import static org.junit.Assert.*; -import java.io.IOException; -import java.net.UnknownHostException; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; import java.util.Set; -import java.util.Timer; -import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; import com.gemstone.gemfire.distributed.internal.DistributionManager; -import com.gemstone.gemfire.distributed.internal.membership.InternalDistributedMember; -import com.gemstone.gemfire.distributed.internal.membership.NetView; import com.gemstone.gemfire.internal.SocketCreator; import com.gemstone.gemfire.test.junit.categories.UnitTest; -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ @Category(UnitTest.class) public class NetViewJUnitTest { - List members; + + private List members; @Before public void initMembers() throws Exception { @@ -205,7 +193,6 @@ public class NetViewJUnitTest { /** * Test that failed weight calculations are correctly performed. See bug #47342 - * @throws Exception */ @Test public void testFailedWeight() throws Exception {