summaryrefslogtreecommitdiffstats
path: root/java/test/TestH5Fswmr.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/test/TestH5Fswmr.java')
-rw-r--r--java/test/TestH5Fswmr.java136
1 files changed, 136 insertions, 0 deletions
diff --git a/java/test/TestH5Fswmr.java b/java/test/TestH5Fswmr.java
new file mode 100644
index 0000000..823640d
--- /dev/null
+++ b/java/test/TestH5Fswmr.java
@@ -0,0 +1,136 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * Copyright by The HDF Group. *
+ * All rights reserved. *
+ * *
+ * This file is part of HDF5. The full HDF5 copyright notice, including *
+ * terms governing use, modification, and redistribution, is contained in *
+ * the COPYING file, which can be found at the root of the source code *
+ * distribution tree, or in https://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+package test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+
+import hdf.hdf5lib.H5;
+import hdf.hdf5lib.HDF5Constants;
+import hdf.hdf5lib.exceptions.HDF5LibraryException;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestName;
+
+public class TestH5Fswmr {
+ @Rule
+ public TestName testname = new TestName();
+ private static final String H5_FILE = "testswmr.h5";
+
+ long H5fid = HDF5Constants.H5I_INVALID_HID;
+ long H5fapl = HDF5Constants.H5I_INVALID_HID;
+ long H5fcpl = HDF5Constants.H5I_INVALID_HID;
+
+ private final void _deleteFile(String filename)
+ {
+ File file = new File(filename);
+
+ if (file.exists()) {
+ try {
+ file.delete();
+ }
+ catch (SecurityException e) {
+ }
+ }
+ }
+
+ @Before
+ public void createH5file() throws HDF5LibraryException, NullPointerException
+ {
+ assertTrue("H5 open ids is 0", H5.getOpenIDCount() == 0);
+ System.out.print(testname.getMethodName());
+
+ H5fapl = H5.H5Pcreate(HDF5Constants.H5P_FILE_ACCESS);
+ H5fcpl = H5.H5Pcreate(HDF5Constants.H5P_FILE_CREATE);
+ H5.H5Pset_libver_bounds(H5fapl, HDF5Constants.H5F_LIBVER_LATEST, HDF5Constants.H5F_LIBVER_LATEST);
+
+ H5fid = H5.H5Fcreate(H5_FILE, HDF5Constants.H5F_ACC_TRUNC, H5fcpl, H5fapl);
+ H5.H5Fflush(H5fid, HDF5Constants.H5F_SCOPE_LOCAL);
+ }
+
+ @After
+ public void deleteH5file() throws HDF5LibraryException
+ {
+ if (H5fapl > 0) {
+ try {
+ H5.H5Pclose(H5fapl);
+ }
+ catch (Exception ex) {
+ }
+ H5fapl = HDF5Constants.H5I_INVALID_HID;
+ }
+ if (H5fcpl > 0) {
+ try {
+ H5.H5Pclose(H5fcpl);
+ }
+ catch (Exception ex) {
+ }
+ H5fcpl = HDF5Constants.H5I_INVALID_HID;
+ }
+ if (H5fid > 0) {
+ try {
+ H5.H5Fclose(H5fid);
+ }
+ catch (Exception ex) {
+ }
+ H5fid = HDF5Constants.H5I_INVALID_HID;
+ }
+ _deleteFile(H5_FILE);
+ System.out.println();
+ }
+
+ @Test
+ public void testH5Fstart_swmr_write()
+ {
+ try {
+ H5.H5Fstart_swmr_write(H5fid);
+ }
+ catch (Throwable err) {
+ fail("H5.H5Fstart_swmr_write: " + err);
+ }
+ }
+
+ @Test
+ public void testH5Fswmr_read_attempts()
+ {
+ long read_attempts = 0;
+
+ try {
+ read_attempts = H5.H5Pget_metadata_read_attempts(H5fapl);
+ }
+ catch (Throwable err) {
+ fail("H5.testH5Fswmr_read_attempts: " + err);
+ }
+ assertTrue(read_attempts == 1);
+
+ try {
+ H5.H5Pset_metadata_read_attempts(H5fapl, 20);
+ }
+ catch (Throwable err) {
+ fail("H5.testH5Fswmr_read_attempts: " + err);
+ }
+ try {
+ read_attempts = H5.H5Pget_metadata_read_attempts(H5fapl);
+ }
+ catch (Throwable err) {
+ fail("H5.testH5Fswmr_read_attempts: " + err);
+ }
+ assertTrue(read_attempts == 20);
+ }
+}