diff options
| author | Frank Willmore <Frank.Willmore@hdfgroup.org> | 2016-12-19 18:09:38 (GMT) |
|---|---|---|
| committer | Frank Willmore <Frank.Willmore@hdfgroup.org> | 2016-12-19 18:09:38 (GMT) |
| commit | d0a7400a344394f2a17157d2c8250adfbd57e93a (patch) | |
| tree | 29d1e3be8400846f432656b09d360556d789ed8e /java/test/TestH5Fswmr.java | |
| parent | a2e93075f2ec86dad367a8aafadc20f6386f9b0e (diff) | |
| parent | ab3963b28e59419f8e857ec224dd4efa3ea6dd8e (diff) | |
| download | hdf5-d0a7400a344394f2a17157d2c8250adfbd57e93a.zip hdf5-d0a7400a344394f2a17157d2c8250adfbd57e93a.tar.gz hdf5-d0a7400a344394f2a17157d2c8250adfbd57e93a.tar.bz2 | |
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit 'ab3963b28e59419f8e857ec224dd4efa3ea6dd8e': (214 commits)
Merge SWMR-related testing to existing tests.
Bring over tweak for missing environment variable.
Update CMake configuration files with SWMR accumulator changes.
Add missing accumulator test.
Merge SWMR-oriented accumulator tests from revise_chunks to develop.
Bring Java SWMR changes from revise_chunks to develop branch
Snapshot version 1.9 release 235
Change dlopen from RTLD_NOW to RTLD_LAZY
Fix bad implementation of Windows nanosleep equivalent.
Removed NDEBUG guards from H5AC test functions.
Bring SWMR-related tools changes from revise_chunks to develop.
Bring over changes from revise_chunks that cleanup recent SWMR changes from code review feedback.
Updated the H5FS cache code to grab the correct tag and modified the freespace test to use dxpls that have been tagged with the H5AC__FREESPACE_TAG global tag instead of H5AC_ind_read_dxpl_id. The library code now expects the owner of the free space manager to tag it so the owner-less free space managers in the freespace tag had to be tagged with *something* to avoid cache errors.
Updated the comment for the valgrind fix.
Fixed a valgrind problem in file shutdown exposed by the swmr.c test.
Reduce timeout as normal run time on windows is less then 10 min
Updated the icc flags (C flags only).
Another Java oversight (sorry, don't have Java configured on my Mac)
Correct oversight in Java test and remove direct VFD from SWMR supported drivers.
Bring SWMR support in to the main development branch. (Finally!) More tests and the tool and API wrappers will be coming in over the weekend.
...
Diffstat (limited to 'java/test/TestH5Fswmr.java')
| -rw-r--r-- | java/test/TestH5Fswmr.java | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/java/test/TestH5Fswmr.java b/java/test/TestH5Fswmr.java new file mode 100644 index 0000000..b65ebf2 --- /dev/null +++ b/java/test/TestH5Fswmr.java @@ -0,0 +1,118 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * 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 files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdfgroup.org/HDF5/doc/Copyright.html. 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 = -1; + long H5fapl = -1; + long H5fcpl = -1; + + 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 = -1; + } + if (H5fcpl > 0) { + try {H5.H5Pclose(H5fcpl);} catch (Exception ex) {} + H5fcpl = -1; + } + if (H5fid > 0) { + try {H5.H5Fclose(H5fid);} catch (Exception ex) {} + H5fid = -1; + } + _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); + } +} |
