# ignite-117 : run test at own process

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/3f4c4167
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/3f4c4167
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/3f4c4167

Branch: refs/heads/sprint-1
Commit: 3f4c416715b07cdad4b1704a9490b18f05b93b0d
Parents: cd613db
Author: Artem SHutak <ashu...@gridgain.com>
Authored: Tue Jan 27 21:25:24 2015 +0300
Committer: Artem SHutak <ashu...@gridgain.com>
Committed: Tue Jan 27 21:25:24 2015 +0300

----------------------------------------------------------------------
 .../shmem/GridIpcSharedMemoryNativeLoader.java  |  2 -
 ...GridIpcSharedMemoryNativeLoaderSelfTest.java | 41 +++++++++-----------
 .../LoadIfLibFileWasCorruptedTestRunner.java    | 36 +++++++++++++++++
 3 files changed, 54 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3f4c4167/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoader.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoader.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoader.java
index 825a235..243a099 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoader.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoader.java
@@ -275,8 +275,6 @@ public class GridIpcSharedMemoryNativeLoader {
             sb.append(Integer.toString((md5Byte & 0xff) + 0x100, 
16).substring(1));
         }
 
-        System.out.println("Digest(in hex format):: " + sb.toString());
-
         return md5Bytes;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3f4c4167/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoaderSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoaderSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoaderSelfTest.java
index 196be0a..2d082c2 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoaderSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoaderSelfTest.java
@@ -1,42 +1,37 @@
 package org.apache.ignite.internal.util.ipc.shmem;
 
 import junit.framework.TestCase;
+import org.apache.ignite.internal.util.GridJavaProcess;
 
+import java.io.BufferedReader;
 import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Collections;
 
 public class GridIpcSharedMemoryNativeLoaderSelfTest extends TestCase {
-    private static final String DEFAULT_TMP_DIR = 
System.getProperty("java.io.tmpdir");
-    public static final String TMP_DIR_FOR_TEST = 
System.getProperty("user.home");
-    public static final String LOADED_LIB_FILE_NAME = 
System.mapLibraryName(GridIpcSharedMemoryNativeLoader.libFileName());
-
     //TODO linux specific
     public void testLoadIfLibFileWasCorrupted() throws Exception {
-        try {
-            System.setProperty("java.io.tmpdir", TMP_DIR_FOR_TEST);
+        Process ps = 
GridJavaProcess.exec(LoadIfLibFileWasCorruptedTestRunner.class, null, null, 
null, null, Collections.<String>emptyList(), null).getProcess();
 
-            createCorruptedLibFile();
+        readStreams(ps);
+        int code = ps.waitFor();
 
-            GridIpcSharedMemoryNativeLoader.load();
-        } finally {
-            System.setProperty("java.io.tmpdir", DEFAULT_TMP_DIR);
-        }
+        assertEquals("Returned code have to be 0.", 0, code);
     }
 
-    private void createCorruptedLibFile() throws IOException {
-        File loadedFile = new File(System.getProperty("java.io.tmpdir"), 
LOADED_LIB_FILE_NAME);
-
-        if (loadedFile.exists())
-            assertTrue("Could not delete libggshem file.",loadedFile.delete());
-        loadedFile.deleteOnExit();
+    private void readStreams(Process proc) throws IOException {
+        BufferedReader stdOut = new BufferedReader(new 
InputStreamReader(proc.getInputStream()));
+        String s;
+        while ((s = stdOut.readLine()) != null) {
+            System.out.println("OUT>>>>>> " + s);
+        }
 
-        assertTrue("Could not create new file.", loadedFile.createNewFile());
+        BufferedReader errOut = new BufferedReader(new 
InputStreamReader(proc.getErrorStream()));
+        while ((s = errOut.readLine()) != null) {
+            System.out.println("ERR>>>>>> " + s);
+        }
 
-        try (FileOutputStream out = new FileOutputStream(loadedFile)){
-            out.write("Corrupted information.\n".getBytes());
-        };
     }
 
     public void testMD5Calculation() throws Exception {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3f4c4167/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/LoadIfLibFileWasCorruptedTestRunner.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/LoadIfLibFileWasCorruptedTestRunner.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/LoadIfLibFileWasCorruptedTestRunner.java
new file mode 100644
index 0000000..544d2c2
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/LoadIfLibFileWasCorruptedTestRunner.java
@@ -0,0 +1,36 @@
+package org.apache.ignite.internal.util.ipc.shmem;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+public class LoadIfLibFileWasCorruptedTestRunner {
+    public static final String TMP_DIR_FOR_TEST = 
System.getProperty("user.home");
+    public static final String LOADED_LIB_FILE_NAME = 
System.mapLibraryName(GridIpcSharedMemoryNativeLoader.libFileName());
+
+    public static void main(String[] args) throws Exception {
+        System.setProperty("java.io.tmpdir", TMP_DIR_FOR_TEST);
+
+        createCorruptedLibFile();
+
+        GridIpcSharedMemoryNativeLoader.load();
+    }
+
+    private static void createCorruptedLibFile() throws IOException {
+        File libFile = new File(System.getProperty("java.io.tmpdir"), 
LOADED_LIB_FILE_NAME);
+
+        if (libFile.exists() && ! libFile.delete())
+            throw new IllegalStateException("Could not delete loaded lib 
file.");
+
+        libFile.deleteOnExit();
+
+        if (! libFile.createNewFile())
+            throw new IllegalStateException("Could not create new file.");
+
+        try (FileOutputStream out = new FileOutputStream(libFile)) {
+            out.write("Corrupted file information instead of good 
info.\n".getBytes());
+        }
+    }
+
+
+}

Reply via email to