diff options
Diffstat (limited to 'java/test/TestH5R.java')
-rw-r--r-- | java/test/TestH5R.java | 400 |
1 files changed, 275 insertions, 125 deletions
diff --git a/java/test/TestH5R.java b/java/test/TestH5R.java index 5349855..031b8e4 100644 --- a/java/test/TestH5R.java +++ b/java/test/TestH5R.java @@ -1,12 +1,11 @@ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 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 COPYING file, which can be found at the root of the source code * - * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * 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. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ @@ -14,6 +13,7 @@ package test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -24,9 +24,11 @@ import hdf.hdf5lib.H5; import hdf.hdf5lib.HDF5Constants; import hdf.hdf5lib.exceptions.HDF5Exception; import hdf.hdf5lib.exceptions.HDF5LibraryException; +import hdf.hdf5lib.exceptions.HDF5FunctionArgumentException; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TestName; @@ -36,12 +38,14 @@ public class TestH5R { private static final String H5_FILE = "testH5R.h5"; private static final int DIM_X = 4; private static final int DIM_Y = 6; - long H5fid = -1; - long H5dsid = -1; - long H5did = -1; - long H5gid = -1; - long H5did2 = -1; + long H5fid = HDF5Constants.H5I_INVALID_HID; + long H5dsid = HDF5Constants.H5I_INVALID_HID; + long H5did = HDF5Constants.H5I_INVALID_HID; + long H5gid = HDF5Constants.H5I_INVALID_HID; + long H5did2 = HDF5Constants.H5I_INVALID_HID; long[] H5dims = { DIM_X, DIM_Y }; + int[][] dset_data = new int[DIM_X][DIM_Y]; + int FILLVAL = 99; private final void _deleteFile(String filename) { File file = null; @@ -51,12 +55,13 @@ public class TestH5R { catch (Throwable err) {} if (file.exists()) { - try {file.delete();} catch (SecurityException e) {} + try {file.delete();} catch (SecurityException e) {e.printStackTrace();} } + assertFalse("TestH5R._deleteFile file still exists ", file.exists()); } private final long _createDataset(long fid, long dsid, String name, long dapl) { - long did = -1; + long did = HDF5Constants.H5I_INVALID_HID; try { did = H5.H5Dcreate(fid, name, HDF5Constants.H5T_STD_I32BE, dsid, @@ -66,13 +71,13 @@ public class TestH5R { err.printStackTrace(); fail("H5.H5Dcreate: " + err); } - assertTrue("TestH5R._createDataset: ",did > 0); + assertTrue("TestH5R._createDataset: ", did > 0); return did; } private final long _createGroup(long fid, String name) { - long gid = -1; + long gid = HDF5Constants.H5I_INVALID_HID; try { gid = H5.H5Gcreate(fid, name, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT); @@ -100,6 +105,21 @@ public class TestH5R { H5did2 = _createDataset(H5gid, H5dsid, "dset2", HDF5Constants.H5P_DEFAULT); H5did = _createDataset(H5fid, H5dsid, "dset", HDF5Constants.H5P_DEFAULT); + // Initialize the dataset. + for (int indx = 0; indx < DIM_X; indx++) + for (int jndx = 0; jndx < DIM_Y; jndx++) + dset_data[indx][jndx] = FILLVAL; + + try { + if (H5did >= 0) + H5.H5Dwrite(H5did, HDF5Constants.H5T_NATIVE_INT, + HDF5Constants.H5S_ALL, HDF5Constants.H5S_ALL, + HDF5Constants.H5P_DEFAULT, dset_data[0]); + } + catch (Exception e) { + e.printStackTrace(); + } + } catch (Throwable err) { err.printStackTrace(); @@ -129,205 +149,335 @@ public class TestH5R { System.out.println(); } + // Test v1.12 APIs params + @Test - public void testH5Rget_name() { - long loc_id=H5fid; - int ref_type=HDF5Constants.H5R_OBJECT; - long ret_val=-1; - byte[] ref=null; - String[] name= {""}; + public void testH5Rget_object() { + int ref_type = HDF5Constants.H5R_OBJECT2; + long ret_val = -1; + byte[] ref = null; + String name = ""; String objName = "/dset"; try { - ref = H5.H5Rcreate(H5fid, objName, ref_type, -1); + ref = H5.H5Rcreate_object(H5fid, objName, HDF5Constants.H5P_DEFAULT); } catch (Throwable err) { err.printStackTrace(); - fail("H5.H5Rget_name:H5Rcreate " + err); + fail("testH5Rget_object: H5Rcreate_object " + err); } try { - ret_val = H5.H5Rget_name(loc_id, ref_type, ref, name, 16); + ret_val = H5.H5Rget_type(ref); } catch (Throwable err) { err.printStackTrace(); - fail("H5.H5Rget_name: " + err); + fail("testH5Rget_object: H5Rget_type: " + err); } - - assertTrue("testH5Rget_name: H5Rget_name", ret_val>0); - assertTrue("The name of the object: ", objName.equals(name[0])); - } - - @Test - public void testH5Rget_obj_type2() { - int ref_type=HDF5Constants.H5R_OBJECT; - byte[] ref=null; - - String objName = "/dset"; - int obj_type = -1;; + assertTrue("testH5Rget_object: H5Rget_type", ret_val == ref_type); try { - ref = H5.H5Rcreate(H5fid, objName, ref_type, -1); + name = H5.H5Rget_file_name(ref); } - catch(Throwable err) { + catch (Throwable err) { err.printStackTrace(); + fail("testH5Rget_object: H5Rget_file_name: " + err); } + assertTrue("testH5Rget_object: H5Rget_file_name", H5_FILE.equals(name)); try { - obj_type = H5.H5Rget_obj_type(H5fid, HDF5Constants.H5R_OBJECT, ref); + name = H5.H5Rget_obj_name(ref, HDF5Constants.H5P_DEFAULT); } catch (Throwable err) { err.printStackTrace(); - fail("H5.H5Rget_obj_type2: " + err); + fail("testH5Rget_object: H5Rget_obj_name: " + err); } - assertEquals(obj_type, HDF5Constants.H5O_TYPE_DATASET); + assertTrue("The name of the object: ", objName.equals(name)); + H5.H5Rdestroy(ref); } @Test - public void testH5Rcreate_refobj() { + public void testH5Rget_obj_type3() { + int obj_type = -1; byte[] ref = null; + String objName = "/dset"; try { - ref = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_OBJECT, -1); + ref = H5.H5Rcreate_object(H5fid, objName, HDF5Constants.H5P_DEFAULT); } catch (Throwable err) { err.printStackTrace(); - fail("H5.H5Rcreate: " + err); + fail("testH5Rget_obj_type3: H5Rcreate_object " + err); } - assertNotNull(ref); - } - @Test - public void testH5Rcreate_regionrefobj() { - byte[] ref = null; try { - ref = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_DATASET_REGION, H5dsid); + obj_type = H5.H5Rget_obj_type3(ref, HDF5Constants.H5P_DEFAULT); } catch (Throwable err) { err.printStackTrace(); - fail("H5.H5Rcreate: " + err); + fail("testH5Rget_obj_type3: H5.H5Rget_obj_type3: " + err); } - assertNotNull(ref); + assertEquals(obj_type, HDF5Constants.H5O_TYPE_DATASET); + H5.H5Rdestroy(ref); } @Test - public void testH5Rdereference() { - byte[] ref1 = null; - byte[] ref2 = null; - long dataset_id = -1; - long group_id = -1; + public void testH5Rcreate_regionref_object() { + byte[] ref = null; + String objName = "/dset"; + long start[] = {2,2}; // Starting location of hyperslab + long stride[] = {1,1}; // Stride of hyperslab + long count[] = {1,1}; // Element count of hyperslab + long block[] = {3,3}; // Block size of hyperslab + + // Select 3x3 hyperslab for reference try { - //Create reference on dataset - ref1 = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_DATASET_REGION, H5dsid); - dataset_id= H5.H5Rdereference(H5fid, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5R_DATASET_REGION, ref1); - - //Create reference on group - ref2 = H5.H5Rcreate(H5gid, "/Group1", HDF5Constants.H5R_OBJECT, -1); - group_id= H5.H5Rdereference(H5gid, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5R_OBJECT, ref2); - assertNotNull(ref1); - assertNotNull(ref2); - assertTrue(dataset_id>=0); - assertTrue(group_id>=0); + H5.H5Sselect_hyperslab(H5dsid, HDF5Constants.H5S_SELECT_SET, start, stride, count, block); } catch (Throwable err) { err.printStackTrace(); - fail("TestH5Rdereference " + err); - } - finally { - try {H5.H5Dclose(dataset_id);} catch (Exception ex) {} - try {H5.H5Gclose(group_id);} catch (Exception ex) {} + fail("testH5Rget_object: H5Sselect_hyperslab " + err); } - } - - @Test - public void testH5Rget_region() { - byte[] ref = null; - long dsid = -1; try { - ref = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_DATASET_REGION, H5dsid); - dsid = H5.H5Rget_region(H5fid, HDF5Constants.H5R_DATASET_REGION, ref); - assertNotNull(ref); - assertTrue(dsid>=0); + ref = H5.H5Rcreate_region(H5fid, objName, H5dsid, HDF5Constants.H5P_DEFAULT); } catch (Throwable err) { err.printStackTrace(); - fail("TestH5Rget_region: " + err); - } - finally { - try {H5.H5Sclose(dsid);} catch (Exception ex) {} + fail("testH5Rget_object: H5Rcreate_region " + err); } + assertNotNull(ref); + H5.H5Rdestroy(ref); } - @Test(expected = IllegalArgumentException.class) - public void testH5Rget_name_Invalidreftype() throws Throwable { - byte[] ref = null; - String[] name= {""}; - ref = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_OBJECT, -1); - H5.H5Rget_name(H5fid, HDF5Constants.H5R_DATASET_REGION, ref, name, 16); +// These tests need to be updated with new APIs +// @Test// +// public void testH5Rget_group() { +// long loc_id = H5fid; +// int ref_type = HDF5Constants.H5R_OBJECT2; +// long ret_val = -1; +// byte[] ref = null; +// String name = ""; +// String objName = "/dset"; +// +// try { +// ref = H5.H5Rcreate_object(H5fid, objName, HDF5Constants.H5P_DEFAULT); +// } +// catch (Throwable err) { +// err.printStackTrace(); +// fail("testH5Rget_object: H5Rcreate_object " + err); +// } +// try { +// dataset_id= H5.H5Rdereference(H5fid, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5R_DATASET_REGION, ref1); +// +// //Create reference on group +// ref2 = H5.H5Rcreate(H5gid, "/Group1", HDF5Constants.H5R_OBJECT, -1); +// group_id= H5.H5Rdereference(H5gid, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5R_OBJECT, ref2); +// assertNotNull(ref1); +// assertNotNull(ref2); +// assertTrue(dataset_id >= 0); +// assertTrue(group_id >= 0); +// } +// catch (Throwable err) { +// err.printStackTrace(); +// fail("TestH5Rdereference " + err); +// } +// finally { +// try {H5.H5Dclose(dataset_id);} catch (Exception ex) {} +// try {H5.H5Gclose(group_id);} catch (Exception ex) {} +// } +// } + +// @Test// +// public void testH5Rget_region_dataset() { +// long loc_id = H5fid; +// int ref_type = HDF5Constants.H5R_OBJECT2; +// long ret_val = -1; +// byte[] ref = null; +// String name = ""; +// String objName = "/dset"; +// +// try { +// ref = H5.H5Rcreate_object(H5fid, objName, HDF5Constants.H5P_DEFAULT); +// } +// catch (Throwable err) { +// err.printStackTrace(); +// fail("testH5Rget_object: H5Rcreate_object " + err); +// } +// try { +// dsid = H5.H5Rget_region(H5fid, HDF5Constants.H5R_DATASET_REGION, ref); +// assertNotNull(ref); +// assertTrue(dsid >= 0); +// } +// catch (Throwable err) { +// err.printStackTrace(); +// fail("TestH5Rget_region: " + err); +// } +// finally { +// try {H5.H5Sclose(dsid);} catch (Exception ex) {} +// } +// } + +// @Test// +// public void testH5Rget_attr() { +// long loc_id = H5fid; +// int ref_type = HDF5Constants.H5R_OBJECT2; +// long ret_val = -1; +// byte[] ref = null; +// String name = ""; +// String objName = "/dset"; +// +// try { +// ref = H5.H5Rcreate_object(H5fid, objName, HDF5Constants.H5P_DEFAULT); +// } +// catch (Throwable err) { +// err.printStackTrace(); +// fail("testH5Rget_object: H5Rcreate_object " + err); +// } +// try { +// dsid = H5.H5Rget_region(H5fid, HDF5Constants.H5R_DATASET_REGION, ref); +// assertNotNull(ref); +// assertTrue(dsid >= 0); +// } +// catch (Throwable err) { +// err.printStackTrace(); +// fail("TestH5Rget_region: " + err); +// } +// finally { +// try {H5.H5Sclose(dsid);} catch (Exception ex) {} +// } +// } + + // Test parameters to H5Rcreate_object + @Test(expected = NullPointerException.class) + public void testH5Rcreate_object_Nullname() throws Throwable { + String name = null; + H5.H5Rcreate_object(H5fid, name, HDF5Constants.H5P_DEFAULT); + } + + @Test(expected = HDF5FunctionArgumentException.class) + public void testH5Rget_name_Invalidloc() throws Throwable { + String name= ""; + H5.H5Rcreate_object(-1, name, HDF5Constants.H5P_DEFAULT); } + // Test parameters to H5Rcreate_region @Test(expected = NullPointerException.class) - public void testH5Rget_name_NULLreference() throws Throwable { + public void testH5Rcreate_region_Nullname() throws Throwable { + String name = null; + H5.H5Rcreate_region(H5fid, name, -1, HDF5Constants.H5P_DEFAULT); + } + + @Test(expected = HDF5FunctionArgumentException.class) + public void testH5Rcreate_region_Invalidloc() throws Throwable { + String name= ""; + H5.H5Rcreate_region(-1, name, -1, HDF5Constants.H5P_DEFAULT); + } + + // Test parameters to H5Rcreate_attr + @Test(expected = NullPointerException.class) + public void testH5Rcreate_attr_Nullname() throws Throwable { + String name = null; + String attrname = ""; + H5.H5Rcreate_attr(H5fid, name, attrname, HDF5Constants.H5P_DEFAULT); + } + + @Test(expected = NullPointerException.class) + public void testH5Rcreate_attr_Nullattrname() throws Throwable { + String name = ""; + String attrname = null; + H5.H5Rcreate_attr(H5fid, name, attrname, HDF5Constants.H5P_DEFAULT); + } + + @Test(expected = HDF5FunctionArgumentException.class) + public void testH5Rcreate_attr_Invalidloc() throws Throwable { + String name= ""; + String attrname= ""; + H5.H5Rcreate_attr(-1, name, attrname, HDF5Constants.H5P_DEFAULT); + } + + // Test parameters to H5Rdestroy + @Test(expected = NullPointerException.class) + public void testH5Rdestroy_Nullref() throws Throwable { byte[] ref = null; - String[] name= {""}; - H5.H5Rget_name(H5fid, HDF5Constants.H5R_OBJECT, ref, name, 16); + H5.H5Rdestroy(ref); } - @Test(expected = HDF5LibraryException.class) - public void testH5Rget_obj_type2_Invalidreftype() throws Throwable { + // Test parameters to H5Rget_type + @Test(expected = NullPointerException.class) + public void testH5Rget_type_Nullref() throws Throwable { byte[] ref = null; - ref = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_OBJECT, -1); - H5.H5Rget_obj_type(H5fid, HDF5Constants.H5R_DATASET_REGION, ref); + H5.H5Rget_type(ref); + } + + // Test parameters to H5Requal + @Test(expected = NullPointerException.class) + public void testH5Requal_Nullref1() throws Throwable { + byte[] ref1 = null; + byte[] ref2 = {0,0,0,0}; + H5.H5Requal(ref1, ref2); } - @Test(expected = HDF5LibraryException.class) - public void testH5Rcreate_InvalidObjectName() throws Throwable { - H5.H5Rcreate(H5fid, "/GROUPS", HDF5Constants.H5R_OBJECT, -1); + @Test(expected = NullPointerException.class) + public void testH5Requal_Nullref2() throws Throwable { + byte[] ref1 = {0,0,0,0}; + byte[] ref2 = null; + H5.H5Requal(ref1, ref2); } - @Test(expected = HDF5LibraryException.class) - public void testH5Rcreate_Invalidspace_id() throws Throwable { - H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_DATASET_REGION, -1); + // Test parameters to H5Rcopy + @Test(expected = NullPointerException.class) + public void testH5Rcopy_Nullref1() throws Throwable { + byte[] ref1 = null; + byte[] ref2 = H5.H5Rcopy(ref1); } - @Test(expected = IllegalArgumentException.class) - public void testH5Rcreate_Invalidreftype() throws Throwable { - H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_BADTYPE, -1); + // Test parameters to H5Ropen_object + @Test(expected = NullPointerException.class) + public void testH5Ropen_object_Nullref() throws Throwable { + byte[] ref = null; + H5.H5Ropen_object(ref, -1, -1); } - @Test(expected = IllegalArgumentException.class) - public void testH5Rgetregion_Invalidreftype() throws Throwable { + // Test parameters to H5Ropen_region + @Test(expected = NullPointerException.class) + public void testH5Ropen_region_Nullref() throws Throwable { byte[] ref = null; - ref = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_OBJECT, H5dsid); - H5.H5Rget_region(H5fid, HDF5Constants.H5R_DATASET_REGION, ref); + H5.H5Ropen_region(ref, -1, -1); } - @Test(expected = IllegalArgumentException.class) - public void testH5Rgetregion_Badreferencetype() throws Throwable { + // Test parameters to H5Ropen_attr + @Test(expected = NullPointerException.class) + public void testH5Ropen_attr_Nullref() throws Throwable { byte[] ref = null; - ref = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_OBJECT, H5dsid); - H5.H5Rget_region(H5fid, HDF5Constants.H5R_OBJECT, ref); + H5.H5Ropen_attr(ref, -1, -1); } + // Test parameters to H5Rget_obj_type3 @Test(expected = NullPointerException.class) - public void testH5Rgetregion_Nullreference() throws Throwable { + public void testH5Rget_obj_type3_Nullref() throws Throwable { byte[] ref = null; - H5.H5Rget_region(H5fid, HDF5Constants.H5R_DATASET_REGION, ref); + H5.H5Rget_obj_type3(ref, -1); } + // Test parameters to H5Rget_file_name @Test(expected = NullPointerException.class) - public void testH5Rdereference_Nullreference() throws Throwable { + public void testH5Rget_file_name_Nullref() throws Throwable { byte[] ref = null; - H5.H5Rdereference(H5did2, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5R_OBJECT, ref); + H5.H5Rget_file_name(ref); } - @Test(expected = IllegalArgumentException.class) - public void testH5Rdereference_Invalidreference() throws Throwable { - byte[] ref1 = null; - byte[] ref2 = null; - ref1 = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_DATASET_REGION, H5dsid); - ref2 = H5.H5Rcreate(H5gid, "/Group1", HDF5Constants.H5R_OBJECT, -1); - H5.H5Rdereference(H5gid, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5R_OBJECT, ref1); + // Test parameters to H5Rget_obj_name + @Test(expected = NullPointerException.class) + public void testH5Rget_obj_name_Nullref() throws Throwable { + byte[] ref = null; + H5.H5Rget_obj_name(ref, -1); + } + + // Test parameters to H5Rget_attr_name + @Test(expected = NullPointerException.class) + public void testH5Rget_attr_name_Nullref() throws Throwable { + byte[] ref = null; + H5.H5Rget_attr_name(ref); } } |