# ignite-117 : GridIpcSharedMemoryNativeLoaderSelfTest#testLoadIfLibFileWasCorrupted was added
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/75544b27 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/75544b27 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/75544b27 Branch: refs/heads/ignite-113 Commit: 75544b271e92bf9abc64423a4fd4914265ff19ff Parents: 1461271 Author: Artem SHutak <ashu...@gridgain.com> Authored: Tue Jan 27 16:32:49 2015 +0300 Committer: Artem SHutak <ashu...@gridgain.com> Committed: Tue Jan 27 16:32:49 2015 +0300 ---------------------------------------------------------------------- .../shmem/GridIpcSharedMemoryNativeLoader.java | 2 + ...GridIpcSharedMemoryNativeLoaderSelfTest.java | 45 ++++++++++++++++++++ 2 files changed, 47 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/75544b27/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 2795e03..cb001cd 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 @@ -61,6 +61,8 @@ public class GridIpcSharedMemoryNativeLoader { return name.replaceAll("\\W+", "_"); } + static String libFileName(){return LIB_NAME;} + /** * @return Platform. */ http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/75544b27/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 new file mode 100644 index 0000000..bf2396c --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/GridIpcSharedMemoryNativeLoaderSelfTest.java @@ -0,0 +1,45 @@ +package org.apache.ignite.internal.util.ipc.shmem; + +import junit.framework.TestCase; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +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_FILE_NAME = System.mapLibraryName(GridIpcSharedMemoryNativeLoader.libFileName()); + + @Override + public void setUp() throws Exception { + System.setProperty("java.io.tmpdir", TMP_DIR_FOR_TEST); + } + + @Override + public void tearDown() throws Exception { + super.tearDown(); + System.setProperty("java.io.tmpdir", DEFAULT_TMP_DIR); + } + + //TODO linux specific + public void testLoadIfLibFileWasCorrupted() throws Exception { + createCorruptedLibFile(); + + GridIpcSharedMemoryNativeLoader.load(); + } + + private void createCorruptedLibFile() throws IOException { + File loadedFile = new File(System.getProperty("java.io.tmpdir"), LOADED_FILE_NAME); + + if (loadedFile.exists()) + assertTrue("Could not delete libggshem file.",loadedFile.delete()); + loadedFile.deleteOnExit(); + + assertTrue("Could not create new file.", loadedFile.createNewFile()); + + try (FileOutputStream out = new FileOutputStream(loadedFile)){ + out.write("Corrupted information.\n".getBytes()); + }; + } +} \ No newline at end of file