You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2017/11/01 16:05:28 UTC
[geode] branch develop updated: GEODE-3933: remove tests from the
test suite and run them individually with parameters to avoid test
contamination. (#996)
This is an automated email from the ASF dual-hosted git repository.
jinmeiliao pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new ba40a7f GEODE-3933: remove tests from the test suite and run them individually with parameters to avoid test contamination. (#996)
ba40a7f is described below
commit ba40a7fcdc8b7f329c9fb48e6780955bc7e636b7
Author: jinmeiliao <ji...@pivotal.io>
AuthorDate: Wed Nov 1 09:05:26 2017 -0700
GEODE-3933: remove tests from the test suite and run them individually with parameters to avoid test contamination. (#996)
---
.../commands/ChangeLogLevelCommandDUnitTest.java | 79 +++++++++-------------
.../internal/cli/commands/GcCommandDUnitTest.java | 32 ++++++---
.../cli/commands/ShowLogCommandDUnitTest.java | 46 ++++++++-----
.../cli/commands/ShutdownCommandDUnitTest.java | 16 ++++-
.../cli/commands/CommandOverHttpDUnitTest.java | 11 +--
5 files changed, 100 insertions(+), 84 deletions(-)
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ChangeLogLevelCommandDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ChangeLogLevelCommandDUnitTest.java
index caed02c..d417995 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ChangeLogLevelCommandDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ChangeLogLevelCommandDUnitTest.java
@@ -16,20 +16,18 @@ package org.apache.geode.management.internal.cli.commands;
import static org.apache.geode.distributed.ConfigurationProperties.GROUPS;
import static org.apache.geode.distributed.ConfigurationProperties.NAME;
-import static org.apache.geode.management.internal.cli.commands.CliCommandTestBase.USE_HTTP_SYSTEM_PROPERTY;
import static org.apache.geode.test.junit.rules.GfshShellConnectionRule.PortType.http;
import static org.apache.geode.test.junit.rules.GfshShellConnectionRule.PortType.jmxManager;
-import static org.assertj.core.api.Assertions.assertThat;
import java.util.Properties;
-import org.junit.Before;
-import org.junit.Rule;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
-import org.apache.geode.management.cli.Result;
-import org.apache.geode.management.internal.cli.result.CommandResult;
import org.apache.geode.test.dunit.rules.LocatorServerStartupRule;
import org.apache.geode.test.dunit.rules.MemberVM;
import org.apache.geode.test.junit.categories.DistributedTest;
@@ -37,8 +35,8 @@ import org.apache.geode.test.junit.rules.GfshShellConnectionRule;
@Category(DistributedTest.class)
+@RunWith(Parameterized.class)
public class ChangeLogLevelCommandDUnitTest {
- private static final boolean CONNECT_OVER_HTTP = Boolean.getBoolean(USE_HTTP_SYSTEM_PROPERTY);
private static final String MANAGER_NAME = "Manager";
private static final String SERVER1_NAME = "Server1";
private static final String SERVER2_NAME = "Server2";
@@ -46,14 +44,23 @@ public class ChangeLogLevelCommandDUnitTest {
private static final String GROUP1 = "Group1";
private static final String GROUP2 = "Group2";
- @Rule
- public LocatorServerStartupRule locatorServerStartupRule = new LocatorServerStartupRule();
+ @ClassRule
+ public static LocatorServerStartupRule locatorServerStartupRule = new LocatorServerStartupRule();
- @Rule
- public GfshShellConnectionRule gfsh = new GfshShellConnectionRule();
+ @ClassRule
+ public static GfshShellConnectionRule gfsh = new GfshShellConnectionRule();
- @Before
- public void setup() throws Exception {
+
+ @Parameterized.Parameter
+ public static boolean useHttp;
+
+ @Parameterized.Parameters
+ public static Object[] data() {
+ return new Object[] {true, false};
+ }
+
+ @BeforeClass
+ public static void setup() throws Exception {
Properties managerProps = new Properties();
managerProps.setProperty(NAME, MANAGER_NAME);
managerProps.setProperty(GROUPS, GROUP0);
@@ -69,7 +76,7 @@ public class ChangeLogLevelCommandDUnitTest {
server2Props.setProperty(GROUPS, GROUP2);
locatorServerStartupRule.startServerVM(2, server2Props, manager.getPort());
- if (CONNECT_OVER_HTTP) {
+ if (useHttp) {
gfsh.connectAndVerify(manager.getHttpPort(), http);
} else {
gfsh.connectAndVerify(manager.getJmxPort(), jmxManager);
@@ -81,26 +88,16 @@ public class ChangeLogLevelCommandDUnitTest {
public void testChangeLogLevelForGroups() {
String commandString = "change loglevel --loglevel=finer --groups=" + GROUP1 + "," + GROUP2;
- gfsh.executeAndAssertThat(commandString).statusIsSuccess();
-
- String output = gfsh.getGfshOutput();
-
- assertThat(output).contains(SERVER1_NAME);
- assertThat(output).contains(SERVER2_NAME);
- assertThat(output).doesNotContain(MANAGER_NAME);
+ gfsh.executeAndAssertThat(commandString).statusIsSuccess()
+ .containsOutput(SERVER1_NAME, SERVER2_NAME).doesNotContainOutput(MANAGER_NAME);
}
@Test
public void testChangeLogLevelForGroup() {
String commandString = "change loglevel --loglevel=finer --groups=" + GROUP1;
- gfsh.executeAndAssertThat(commandString).statusIsSuccess();
-
- String output = gfsh.getGfshOutput();
-
- assertThat(output).contains(SERVER1_NAME);
- assertThat(output).doesNotContain(SERVER2_NAME);
- assertThat(output).doesNotContain(MANAGER_NAME);
+ gfsh.executeAndAssertThat(commandString).statusIsSuccess().containsOutput(SERVER1_NAME)
+ .doesNotContainOutput(SERVER2_NAME, MANAGER_NAME);
}
@Test
@@ -108,37 +105,23 @@ public class ChangeLogLevelCommandDUnitTest {
String commandString =
"change loglevel --loglevel=finer --members=" + SERVER1_NAME + "," + SERVER2_NAME;
- gfsh.executeAndAssertThat(commandString).statusIsSuccess();
-
- String output = gfsh.getGfshOutput();
-
- assertThat(output).contains(SERVER1_NAME);
- assertThat(output).contains(SERVER2_NAME);
- assertThat(output).doesNotContain(MANAGER_NAME);
+ gfsh.executeAndAssertThat(commandString).statusIsSuccess()
+ .containsOutput(SERVER1_NAME, SERVER2_NAME).doesNotContainOutput(MANAGER_NAME);
}
@Test
public void testChangeLogLevelForMember() {
String commandString = "change loglevel --loglevel=finer --members=" + SERVER1_NAME;
- gfsh.executeAndAssertThat(commandString).statusIsSuccess();
-
- String output = gfsh.getGfshOutput();
-
- assertThat(output).contains(SERVER1_NAME);
- assertThat(output).doesNotContain(SERVER2_NAME);
- assertThat(output).doesNotContain(MANAGER_NAME);
+ gfsh.executeAndAssertThat(commandString).statusIsSuccess().containsOutput(SERVER1_NAME)
+ .doesNotContainOutput(SERVER2_NAME, MANAGER_NAME);
}
@Test
public void testChangeLogLevelForInvalidMember() {
String commandString = "change loglevel --loglevel=finer --members=NotAValidMember";
- CommandResult result = gfsh.executeCommand(commandString);
-
- assertThat(result.getStatus()).isEqualTo(Result.Status.ERROR);
- String output = gfsh.getGfshOutput();
-
- assertThat(output).contains("No members were found matching the given member IDs or groups.");
+ gfsh.executeAndAssertThat(commandString).statusIsError()
+ .containsOutput("No members were found matching the given member IDs or groups.");
}
}
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GcCommandDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GcCommandDUnitTest.java
index 2cf5772..a3e2937 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GcCommandDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/GcCommandDUnitTest.java
@@ -17,17 +17,18 @@ package org.apache.geode.management.internal.cli.commands;
import static org.apache.geode.distributed.ConfigurationProperties.GROUPS;
import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
import static org.apache.geode.distributed.ConfigurationProperties.NAME;
-import static org.apache.geode.management.internal.cli.commands.CliCommandTestBase.USE_HTTP_SYSTEM_PROPERTY;
import static org.apache.geode.test.junit.rules.GfshShellConnectionRule.PortType.http;
import static org.apache.geode.test.junit.rules.GfshShellConnectionRule.PortType.jmxManager;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Properties;
-import org.junit.Before;
-import org.junit.Rule;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
import org.apache.geode.management.cli.Result;
import org.apache.geode.management.internal.cli.result.CommandResult;
@@ -38,8 +39,8 @@ import org.apache.geode.test.junit.rules.GfshShellConnectionRule;
@Category(DistributedTest.class)
+@RunWith(Parameterized.class)
public class GcCommandDUnitTest {
- private static final boolean CONNECT_OVER_HTTP = Boolean.getBoolean(USE_HTTP_SYSTEM_PROPERTY);
private static final String MANAGER_NAME = "Manager";
private static final String SERVER1_NAME = "Server1";
private static final String SERVER2_NAME = "Server2";
@@ -47,14 +48,23 @@ public class GcCommandDUnitTest {
private static final String GROUP1 = "Group1";
private static final String GROUP2 = "Group2";
- @Rule
- public LocatorServerStartupRule locatorServerStartupRule = new LocatorServerStartupRule();
+ @Parameterized.Parameter
+ public static boolean useHttp;
- @Rule
- public GfshShellConnectionRule gfsh = new GfshShellConnectionRule();
+ @Parameterized.Parameters
+ public static Object[] data() {
+ return new Object[] {true, false};
+ }
+
+
+ @ClassRule
+ public static LocatorServerStartupRule locatorServerStartupRule = new LocatorServerStartupRule();
+
+ @ClassRule
+ public static GfshShellConnectionRule gfsh = new GfshShellConnectionRule();
- @Before
- public void setup() throws Exception {
+ @BeforeClass
+ public static void setup() throws Exception {
Properties managerProps = new Properties();
managerProps.setProperty(NAME, MANAGER_NAME);
managerProps.setProperty(GROUPS, GROUP0);
@@ -72,7 +82,7 @@ public class GcCommandDUnitTest {
server2Props.setProperty(GROUPS, GROUP2);
locatorServerStartupRule.startServerVM(2, server2Props, manager.getPort());
- if (CONNECT_OVER_HTTP) {
+ if (useHttp) {
gfsh.connectAndVerify(manager.getHttpPort(), http);
} else {
gfsh.connectAndVerify(manager.getJmxPort(), jmxManager);
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowLogCommandDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowLogCommandDUnitTest.java
index cf1cd52..6f9dd88 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowLogCommandDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShowLogCommandDUnitTest.java
@@ -16,8 +16,8 @@ package org.apache.geode.management.internal.cli.commands;
import static org.apache.geode.distributed.ConfigurationProperties.GROUPS;
import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
+import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
import static org.apache.geode.distributed.ConfigurationProperties.NAME;
-import static org.apache.geode.management.internal.cli.commands.CliCommandTestBase.USE_HTTP_SYSTEM_PROPERTY;
import static org.apache.geode.test.junit.rules.GfshShellConnectionRule.PortType.http;
import static org.apache.geode.test.junit.rules.GfshShellConnectionRule.PortType.jmxManager;
import static org.assertj.core.api.Assertions.assertThat;
@@ -27,10 +27,12 @@ import java.util.Properties;
import java.util.concurrent.TimeUnit;
import org.awaitility.Awaitility;
-import org.junit.Before;
-import org.junit.Rule;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.distributed.DistributedMember;
@@ -45,9 +47,8 @@ import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.rules.GfshShellConnectionRule;
@Category(DistributedTest.class)
+@RunWith(Parameterized.class)
public class ShowLogCommandDUnitTest implements Serializable {
- private static final boolean CONNECT_OVER_HTTP = Boolean.getBoolean(USE_HTTP_SYSTEM_PROPERTY);
-
private static final String MANAGER_NAME = "Manager";
private static final String SERVER1_NAME = "Server1";
private static final String SERVER2_NAME = "Server2";
@@ -57,22 +58,30 @@ public class ShowLogCommandDUnitTest implements Serializable {
private static final String MESSAGE_ON_MANAGER = "someLogMessageOnManager";
private static final String MESSAGE_ON_SERVER1 = "someLogMessageOnServer1";
private static final String MESSAGE_ON_SERVER2 = "someLogMessageOnServer2";
- private MemberVM manager;
- private MemberVM server1;
- private MemberVM server2;
- @Rule
- public LocatorServerStartupRule locatorServerStartupRule = new LocatorServerStartupRule();
+ private static MemberVM manager;
+ private static MemberVM server1;
+ private static MemberVM server2;
+ @ClassRule
+ public static LocatorServerStartupRule locatorServerStartupRule = new LocatorServerStartupRule();
+
+ @ClassRule
+ public static GfshShellConnectionRule gfsh = new GfshShellConnectionRule();
- @Rule
- public GfshShellConnectionRule gfsh = new GfshShellConnectionRule();
+ @Parameterized.Parameter
+ public static boolean useHttp;
+ @Parameterized.Parameters
+ public static Object[] data() {
+ return new Object[] {true, false};
+ }
- @Before
- public void setup() throws Exception {
+ @BeforeClass
+ public static void setup() throws Exception {
Properties managerProps = new Properties();
managerProps.setProperty(NAME, MANAGER_NAME);
managerProps.setProperty(GROUPS, GROUP0);
managerProps.setProperty(LOG_FILE, MANAGER_NAME + ".log");
+ managerProps.setProperty(LOG_LEVEL, "info");
manager = locatorServerStartupRule.startLocatorVM(0, managerProps);
@@ -80,6 +89,7 @@ public class ShowLogCommandDUnitTest implements Serializable {
server1Props.setProperty(NAME, SERVER1_NAME);
server1Props.setProperty(GROUPS, GROUP1);
server1Props.setProperty(LOG_FILE, SERVER1_NAME + ".log");
+ managerProps.setProperty(LOG_LEVEL, "info");
server1 = locatorServerStartupRule.startServerVM(1, server1Props, manager.getPort());
@@ -87,16 +97,18 @@ public class ShowLogCommandDUnitTest implements Serializable {
server2Props.setProperty(NAME, SERVER2_NAME);
server2Props.setProperty(GROUPS, GROUP2);
server2Props.setProperty(LOG_FILE, SERVER2_NAME + ".log");
+ managerProps.setProperty(LOG_LEVEL, "info");
server2 = locatorServerStartupRule.startServerVM(2, server2Props, manager.getPort());
- if (CONNECT_OVER_HTTP) {
+ if (useHttp) {
gfsh.connectAndVerify(manager.getHttpPort(), http);
} else {
gfsh.connectAndVerify(manager.getJmxPort(), jmxManager);
}
- Awaitility.await().atMost(2, TimeUnit.MINUTES).until(this::allMembersAreConnected);
+ Awaitility.await().atMost(2, TimeUnit.MINUTES)
+ .until(ShowLogCommandDUnitTest::allMembersAreConnected);
}
private void writeLogMessages() {
@@ -147,7 +159,7 @@ public class ShowLogCommandDUnitTest implements Serializable {
}
- private boolean allMembersAreConnected() {
+ private static boolean allMembersAreConnected() {
return manager.getVM().invoke(() -> {
InternalCache cache = (InternalCache) CacheFactory.getAnyInstance();
DistributedMember server1 = CliUtil.getDistributedMemberByNameOrId(SERVER1_NAME);
diff --git a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShutdownCommandDUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShutdownCommandDUnitTest.java
index e60262c..84e2803 100644
--- a/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShutdownCommandDUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/internal/cli/commands/ShutdownCommandDUnitTest.java
@@ -17,7 +17,6 @@ package org.apache.geode.management.internal.cli.commands;
import static org.apache.geode.distributed.ConfigurationProperties.GROUPS;
import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
import static org.apache.geode.distributed.ConfigurationProperties.NAME;
-import static org.apache.geode.management.internal.cli.commands.CliCommandTestBase.USE_HTTP_SYSTEM_PROPERTY;
import static org.apache.geode.test.junit.rules.GfshShellConnectionRule.PortType.http;
import static org.apache.geode.test.junit.rules.GfshShellConnectionRule.PortType.jmxManager;
import static org.assertj.core.api.Assertions.assertThat;
@@ -31,6 +30,8 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheClosedException;
@@ -43,8 +44,8 @@ import org.apache.geode.test.junit.rules.GfshShellConnectionRule;
@Category(DistributedTest.class)
+@RunWith(Parameterized.class)
public class ShutdownCommandDUnitTest {
- private static final boolean CONNECT_OVER_HTTP = Boolean.getBoolean(USE_HTTP_SYSTEM_PROPERTY);
private static final String MANAGER_NAME = "Manager";
private static final String SERVER1_NAME = "Server1";
private static final String SERVER2_NAME = "Server2";
@@ -56,6 +57,15 @@ public class ShutdownCommandDUnitTest {
private MemberVM server1;
private MemberVM server2;
+
+ @Parameterized.Parameter
+ public static boolean useHttp;
+
+ @Parameterized.Parameters
+ public static Object[] data() {
+ return new Object[] {true, false};
+ }
+
@Rule
public LocatorServerStartupRule locatorServerStartupRule = new LocatorServerStartupRule();
@@ -82,7 +92,7 @@ public class ShutdownCommandDUnitTest {
server2Props.setProperty(GROUPS, GROUP2);
server2 = locatorServerStartupRule.startServerVM(2, server2Props, manager.getPort());
- if (CONNECT_OVER_HTTP) {
+ if (useHttp) {
gfsh.connectAndVerify(manager.getHttpPort(), http);
} else {
gfsh.connectAndVerify(manager.getJmxPort(), jmxManager);
diff --git a/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/CommandOverHttpDUnitTest.java b/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/CommandOverHttpDUnitTest.java
index 97a5112..5334e10 100644
--- a/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/CommandOverHttpDUnitTest.java
+++ b/geode-web/src/test/java/org/apache/geode/management/internal/cli/commands/CommandOverHttpDUnitTest.java
@@ -24,13 +24,14 @@ import org.apache.geode.test.junit.categories.DistributedTest;
import org.apache.geode.test.junit.categories.SecurityTest;
import org.apache.geode.test.junit.runners.SuiteRunner;
+/**
+ * Only commands that extends CliCommandTestBase needs to be in this test suite
+ */
@Category({DistributedTest.class, SecurityTest.class})
@RunWith(SuiteRunner.class)
-@Suite.SuiteClasses({ChangeLogLevelCommandDUnitTest.class, DeployWithGroupsDUnitTest.class,
- DiskStoreCommandsDUnitTest.class, GcCommandDUnitTest.class, GemfireDataCommandsDUnitTest.class,
- ListAndDescribeDiskStoreCommandsDUnitTest.class, ShutdownCommandDUnitTest.class,
- QueueCommandsDUnitTest.class, ShellCommandsDUnitTest.class, ShowDeadlockDUnitTest.class,
- ShowLogCommandDUnitTest.class, ShowMetricsDUnitTest.class, ShowStackTraceDUnitTest.class})
+@Suite.SuiteClasses({DiskStoreCommandsDUnitTest.class, GemfireDataCommandsDUnitTest.class,
+ ListAndDescribeDiskStoreCommandsDUnitTest.class, QueueCommandsDUnitTest.class,
+ ShellCommandsDUnitTest.class, ShowStackTraceDUnitTest.class})
public class CommandOverHttpDUnitTest {
@ClassRule
public static ProvideSystemProperty provideSystemProperty =
--
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].