You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by sa...@apache.org on 2018/10/04 00:10:24 UTC
[geode] branch feature/GEODE-5787-refactor-dunit updated: wip2
This is an automated email from the ASF dual-hosted git repository.
sai_boorlagadda pushed a commit to branch feature/GEODE-5787-refactor-dunit
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-5787-refactor-dunit by this push:
new fd74f42 wip2
fd74f42 is described below
commit fd74f422a84b4ca11a30e4d48a117b91c230b2dd
Author: Sai Boorlagadda <sb...@pivotal.io>
AuthorDate: Tue Oct 2 11:10:45 2018 -0700
wip2
---
.../geode/test/dunit/standalone/DUnitLauncher.java | 2 +-
.../apache/geode/test/dunit2/ChildVMLauncher.java | 7 ++---
.../apache/geode/test/dunit2/DUnitEnvironment.java | 4 +++
.../main/java/org/apache/geode/test/dunit2/VM.java | 35 ++++++++++++++++++++--
.../java/org/apache/geode/test/dunit2/VMTest.java | 7 +++--
5 files changed, 45 insertions(+), 10 deletions(-)
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
index 58c7c9b..39e5e4f 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit/standalone/DUnitLauncher.java
@@ -125,7 +125,7 @@ public class DUnitLauncher {
public static final String RMI_PORT_PARAM = GEMFIRE_PREFIX + "DUnitLauncher.RMI_PORT";
public static final String VM_NUM_PARAM = GEMFIRE_PREFIX + "DUnitLauncher.VM_NUM";
- static final String VM_VERSION_PARAM = GEMFIRE_PREFIX + "DUnitLauncher.VM_VERSION";
+ public static final String VM_VERSION_PARAM = GEMFIRE_PREFIX + "DUnitLauncher.VM_VERSION";
private static final String LAUNCHED_PROPERTY = GEMFIRE_PREFIX + "DUnitLauncher.LAUNCHED";
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/ChildVMLauncher.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/ChildVMLauncher.java
index 6a19cab..40727b3 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/ChildVMLauncher.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/ChildVMLauncher.java
@@ -13,6 +13,8 @@ import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
+import org.apache.commons.io.FileUtils;
+
import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.distributed.internal.DistributionConfig;
import org.apache.geode.distributed.internal.InternalLocator;
@@ -43,10 +45,6 @@ public class ChildVMLauncher {
String[] cmd = buildJavaCommand(vmId, geodeVersion, registryHost, registryPort);
System.out.println("Executing " + Arrays.toString(cmd));
-// if (log4jConfig != null) {
-// FileUtils.copyFileToDirectory(log4jConfig, workingDir);
-// }
-
// TODO - delete directory contents, preferably with commons io FileUtils
Process process = Runtime.getRuntime().exec(cmd, null, workingDir);
linkStreams(geodeVersion, vmId, process, process.getErrorStream(), System.err);
@@ -102,7 +100,6 @@ public class ChildVMLauncher {
String jreLib = separator + "jre" + separator + "lib" + separator;
classPath = removeFromPath(classPath, jreLib);
cmds.add(classPath);
- cmds.add("-D" + DUnitLauncher.RMI_HOST_PARAM + "=" + registryHost);
cmds.add("-D" + DUnitLauncher.RMI_PORT_PARAM + "=" + registryPort);
cmds.add("-D" + DUnitLauncher.VM_NUM_PARAM + "=" + vmId);
cmds.add("-D" + DUnitLauncher.VM_VERSION_PARAM + "=" + geodeVersion);
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/DUnitEnvironment.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/DUnitEnvironment.java
index 62a3e72..555406b 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/DUnitEnvironment.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/DUnitEnvironment.java
@@ -4,4 +4,8 @@ public class DUnitEnvironment {
public VM getVM(int i) {
return new VM();
}
+
+ public VM bounce(int i) {
+ //TODO:
+ }
}
diff --git a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/VM.java b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/VM.java
index 85ffcc5..87ce256 100644
--- a/geode-dunit/src/main/java/org/apache/geode/test/dunit2/VM.java
+++ b/geode-dunit/src/main/java/org/apache/geode/test/dunit2/VM.java
@@ -1,7 +1,10 @@
package org.apache.geode.test.dunit2;
import java.io.IOException;
+import java.rmi.NotBoundException;
import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
import java.util.concurrent.Callable;
import hydra.MethExecutorResult;
@@ -13,11 +16,13 @@ import org.apache.geode.test.dunit.SerializableCallable;
import org.apache.geode.test.dunit.SerializableCallableIF;
import org.apache.geode.test.dunit.SerializableRunnable;
import org.apache.geode.test.dunit.SerializableRunnableIF;
+import org.apache.geode.test.dunit.standalone.BounceResult;
import org.apache.geode.test.dunit.standalone.RemoteDUnitVMIF;
+import org.apache.geode.test.dunit.standalone.VersionManager;
public class VM {
private ChildVMLauncher launcher;
- private int id = 1;
+ private int id;
private boolean alive = false;
private Process process;
@@ -26,7 +31,13 @@ public class VM {
public VM() {
}
- public VM(DUnitEnvConfig config, ChildVMLauncher launcher) {
+ public VM(int id, Process process, RemoteDUnitVMIF stub) {
+ this.id = id;
+ this.process = process;
+ this.stub = stub;
+ }
+
+ public VM(ChildVMLauncher launcher) {
this.launcher = launcher;
}
@@ -37,6 +48,26 @@ public class VM {
public VM launch() throws IOException {
alive = true;
process = launcher.launch(1, "0", "0", "", 0);
+
+ //get the RMI stub
+
+ try {
+ if (!process.is(STARTUP_TIMEOUT)) {
+ throw new RuntimeException(STARTUP_TIMEOUT_MESSAGE);
+ }
+
+ Registry registry = LocateRegistry.createRegistry(rmiPort);
+ stub = (RemoteDUnitVMIF) registry.lookup(
+ org.apache.geode.test.dunit.VM.getVMName(VersionManager.CURRENT_VERSION, id));
+
+
+ } catch (RemoteException | NotBoundException e) {
+ throw new RuntimeException("could not lookup name", e);
+ } catch (InterruptedException e) {
+ throw new RuntimeException("Failed waiting for VM", e);
+ }
+ }
+
return this;
}
diff --git a/geode-dunit/src/test/java/org/apache/geode/test/dunit2/VMTest.java b/geode-dunit/src/test/java/org/apache/geode/test/dunit2/VMTest.java
index 47e8fac..767df93 100644
--- a/geode-dunit/src/test/java/org/apache/geode/test/dunit2/VMTest.java
+++ b/geode-dunit/src/test/java/org/apache/geode/test/dunit2/VMTest.java
@@ -8,6 +8,8 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.SystemOutRule;
+import org.apache.geode.test.dunit.standalone.VersionManager;
+
public class VMTest {
@Rule
@@ -32,10 +34,11 @@ public class VMTest {
public void testInvokeReturnsValueFromCallable() throws IOException {
final String message = "Hello! World";
- VM vm = new VM().launch();
+ ChildVMLauncher childVMLauncher = new ChildVMLauncher(new VersionManager());
+ VM vm = new VM(childVMLauncher).launch();
String result = vm.invoke(() -> message);
assertThat(result).isEqualTo(message);
}
-}
\ No newline at end of file
+}