GEODE-1198: refactor test with before/after and cleanup use of ports
Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/25be0b70 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/25be0b70 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/25be0b70 Branch: refs/heads/feature/GEODE-2420 Commit: 25be0b70fa47d8050c2dc9cfca02794bb21cd01c Parents: a900948 Author: Kirk Lund <[email protected]> Authored: Tue Mar 7 12:32:36 2017 -0800 Committer: Ken Howe <[email protected]> Committed: Mon Mar 27 13:59:35 2017 -0700 ---------------------------------------------------------------------- .../distributed/DistributedSystemDUnitTest.java | 81 ++++++++++---------- 1 file changed, 42 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/25be0b70/geode-core/src/test/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java b/geode-core/src/test/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java index 8b669f3..dfe4588 100644 --- a/geode-core/src/test/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/distributed/DistributedSystemDUnitTest.java @@ -14,9 +14,32 @@ */ package org.apache.geode.distributed; +import static java.lang.Integer.parseInt; +import static java.net.NetworkInterface.getNetworkInterfaces; import static org.apache.geode.distributed.ConfigurationProperties.*; +import static org.apache.geode.distributed.internal.DistributionConfig.*; +import static org.apache.geode.distributed.internal.DistributionManager.*; import static org.apache.geode.internal.AvailablePort.*; -import static org.junit.Assert.*; +import static org.apache.geode.internal.AvailablePortHelper.*; +import static org.apache.geode.internal.net.SocketCreator.getLocalHost; +import static org.apache.geode.test.dunit.DistributedTestUtils.getDUnitLocatorPort; +import static org.apache.geode.test.dunit.Host.getHost; +import static org.apache.geode.test.dunit.LogWriterUtils.getLogWriter; +import static org.assertj.core.api.Assertions.*; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.experimental.categories.Category; + +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.net.UnknownHostException; +import java.util.Enumeration; +import java.util.Properties; import org.apache.geode.CancelException; import org.apache.geode.GemFireConfigException; @@ -24,9 +47,6 @@ import org.apache.geode.cache.AttributesFactory; import org.apache.geode.cache.Cache; import org.apache.geode.cache.CacheFactory; import org.apache.geode.cache.Region; -import org.apache.geode.cache30.CacheSerializableRunnable; -import org.apache.geode.distributed.internal.DistributionConfig; -import org.apache.geode.distributed.internal.DistributionException; import org.apache.geode.distributed.internal.DistributionManager; import org.apache.geode.distributed.internal.InternalDistributedSystem; import org.apache.geode.distributed.internal.SerialDistributionMessage; @@ -35,40 +55,33 @@ import org.apache.geode.distributed.internal.membership.InternalDistributedMembe import org.apache.geode.distributed.internal.membership.gms.MembershipManagerHelper; import org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger; import org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager; -import org.apache.geode.internal.AvailablePort; -import org.apache.geode.internal.AvailablePortHelper; -import org.apache.geode.internal.net.SocketCreator; -import org.apache.geode.test.dunit.DistributedTestUtils; -import org.apache.geode.test.dunit.Host; -import org.apache.geode.test.dunit.LogWriterUtils; -import org.apache.geode.test.dunit.RMIException; -import org.apache.geode.test.dunit.VM; import org.apache.geode.test.dunit.internal.JUnit4DistributedTestCase; import org.apache.geode.test.junit.categories.DistributedTest; import org.apache.geode.test.junit.categories.MembershipTest; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.experimental.categories.Category; - -import java.net.Inet4Address; -import java.net.Inet6Address; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.util.Enumeration; -import java.util.Properties; -import java.util.concurrent.TimeoutException; - /** * Tests the functionality of the {@link DistributedSystem} class. */ @Category({DistributedTest.class, MembershipTest.class}) public class DistributedSystemDUnitTest extends JUnit4DistributedTestCase { + private int mcastPort; + private int locatorPort; + private int tcpPort; + private int lowerBoundOfPortRange; + private int upperBoundOfPortRange; + @Before public void before() throws Exception { disconnectAllFromDS(); + + this.mcastPort = getRandomAvailablePort(MULTICAST); + this.locatorPort = getRandomAvailablePort(SOCKET); + this.tcpPort = getRandomAvailablePort(SOCKET); + + int[] portRange = getRandomAvailableTCPPortRange(3, true); + this.lowerBoundOfPortRange = portRange[0]; + this.upperBoundOfPortRange = portRange[portRange.length - 1]; } @After @@ -111,8 +124,6 @@ public class DistributedSystemDUnitTest extends JUnit4DistributedTestCase { } }); - // TODO: assert that queue was created or this test is just broken - assertThat(distributionManager.getMembershipManager().waitForDeparture(member)) .as("expected the serial queue to be flushed").isTrue(); } @@ -235,22 +246,14 @@ public class DistributedSystemDUnitTest extends JUnit4DistributedTestCase { @Test public void testUDPPortRange() throws Exception { - int[] unicastPort = AvailablePortHelper.getRandomAvailableTCPPortRange(3, true); - Properties config = new Properties(); - config.put(LOCATORS, "localhost[" + DistributedTestUtils.getDUnitLocatorPort() + "]"); - // Minimum 3 ports required in range for UDP, FD_SOCK and TcpConduit. - config.setProperty(MEMBERSHIP_PORT_RANGE, unicastPort[0] + "-" + unicastPort[2]); + config.put(LOCATORS, "localhost[" + getDUnitLocatorPort() + "]"); + config.setProperty(MEMBERSHIP_PORT_RANGE, + this.lowerBoundOfPortRange + "-" + this.upperBoundOfPortRange); InternalDistributedSystem system = getSystem(config); DistributionManager dm = (DistributionManager) system.getDistributionManager(); - InternalDistributedMember idm = dm.getDistributionManagerId(); - - assertTrue(unicastPort[0] <= idm.getPort() && idm.getPort() <= unicastPort[2]); - assertTrue(unicastPort[0] <= idm.getPort() && idm.getDirectChannelPort() <= unicastPort[2]); - - system.disconnect(); - } + InternalDistributedMember member = dm.getDistributionManagerId(); verifyMembershipPortsInRange(member, this.lowerBoundOfPortRange, this.upperBoundOfPortRange); }
