diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2019-11-07 15:48:56 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2019-11-07 15:49:11 (GMT) |
commit | 6b927a773c83bedc111dcd2ad38805f974660b15 (patch) | |
tree | 5f836ff5409d5265161b058e75f4d806c8afff1d /java/test | |
parent | 2dd5bbfe167e3e9b6b6ee657a882e24072de4aeb (diff) | |
download | hdf5-6b927a773c83bedc111dcd2ad38805f974660b15.zip hdf5-6b927a773c83bedc111dcd2ad38805f974660b15.tar.gz hdf5-6b927a773c83bedc111dcd2ad38805f974660b15.tar.bz2 |
HDFFV-10876 Update h5dump and h5ls for new ref api.
Diffstat (limited to 'java/test')
-rw-r--r-- | java/test/TestH5.java | 143 | ||||
-rw-r--r-- | java/test/TestH5Edefault.java | 2 | ||||
-rw-r--r-- | java/test/TestH5R.java | 371 | ||||
-rw-r--r-- | java/test/testfiles/JUnit-TestH5R.txt | 24 |
4 files changed, 526 insertions, 14 deletions
diff --git a/java/test/TestH5.java b/java/test/TestH5.java index 2bee075..6a860f3 100644 --- a/java/test/TestH5.java +++ b/java/test/TestH5.java @@ -22,12 +22,17 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.FileReader; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.io.Reader; +import java.io.StreamTokenizer; import hdf.hdf5lib.H5; import hdf.hdf5lib.HDF5Constants; +import hdf.hdf5lib.exceptions.HDF5LibraryException; import org.junit.After; import org.junit.Before; @@ -50,6 +55,81 @@ public class TestH5 { public void nextTestName() { System.out.println(); } + private static final String H5_FILE = "testData.h5"; + private static final String EXPORT_FILE = "testExport.txt"; + private static final int DIM_X = 4; + private static final int DIM_Y = 6; + private static final int RANK = 2; + long H5fid = -1; + long H5dsid = -1; + long H5did = -1; + long[] H5dims = { DIM_X, DIM_Y }; + + private final void _deleteFile(String filename) { + File file = null; + try { + file = new File(filename); + } + catch (Throwable err) {} + + if (file.exists()) { + try {file.delete();} catch (SecurityException e) {} + } + } + + private final long _createDataset(long fid, long dsid, String name, long dapl) { + long did = -1; + try { + did = H5.H5Dcreate(fid, name, HDF5Constants.H5T_STD_I32BE, dsid, + HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT, dapl); + } + catch (Throwable err) { + err.printStackTrace(); + fail("H5.H5Dcreate: " + err); + } + assertTrue("TestH5._createDataset: ", did > 0); + + return did; + } + + private final void _createH5File() { + try { + H5fid = H5.H5Fcreate(H5_FILE, HDF5Constants.H5F_ACC_TRUNC, + HDF5Constants.H5P_DEFAULT, HDF5Constants.H5P_DEFAULT); + H5dsid = H5.H5Screate_simple(2, H5dims, null); + H5did = _createDataset(H5fid, H5dsid, "dset", HDF5Constants.H5P_DEFAULT); + } + catch (Throwable err) { + err.printStackTrace(); + fail("TestH5Pfapl.createH5file: " + err); + } + assertTrue("TestH5.createH5file: H5.H5Fcreate: ", H5fid > 0); + assertTrue("TestH5.createH5file: H5.H5Screate_simple: ", H5dsid > 0); + assertTrue("TestH5.createH5file: _createDataset: ", H5did > 0); + + try { + H5.H5Fflush(H5fid, HDF5Constants.H5F_SCOPE_LOCAL); + } + catch (Throwable err) { + err.printStackTrace(); + } + } + + public final void _closeH5File() throws HDF5LibraryException { + if (H5did >= 0) + try {H5.H5Dclose(H5did);} catch (Exception ex) {} + if (H5dsid > 0) + try {H5.H5Sclose(H5dsid);} catch (Exception ex) {} + if (H5fid > 0) + try {H5.H5Fclose(H5fid);} catch (Exception ex) {} + H5fid = -1; + H5dsid = -1; + H5did = -1; + } + + public final void _deleteH5file() { + _deleteFile(H5_FILE); + } /** * Test method for {@link hdf.hdf5lib.H5#J2C(int)}. @@ -268,4 +348,67 @@ public class TestH5 { fail("Exception thrown during test: " + ex.toString()); } } + + @Test + public void testH5export_dataset() { + int[][] dset_data = new int[DIM_X][DIM_Y]; + int[][] dset_indata = new int[DIM_X][DIM_Y]; + int FILLVAL = 99; + + _createH5File(); + + // 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(); + } + + _closeH5File(); + + try { + H5.H5export_dataset(EXPORT_FILE, H5_FILE, "/dset", 99); + } + catch (HDF5LibraryException err) { + err.printStackTrace(); + fail("H5export_dataset failed: " + err); + } + + File file = new File(EXPORT_FILE); + + try { + Reader reader = new FileReader(EXPORT_FILE); + StreamTokenizer streamTokenizer = new StreamTokenizer(reader); + int indx = 0; + int jndx = 0; + while(streamTokenizer.nextToken() != StreamTokenizer.TT_EOF){ + if(streamTokenizer.ttype == StreamTokenizer.TT_NUMBER) { + dset_indata[indx][jndx] = (int)streamTokenizer.nval; + jndx++; + if (jndx >= DIM_Y) { + jndx = 0; + indx++; + } + } + } + reader.close(); + } + catch (IOException err) { + err.printStackTrace(); + fail("read file failed: " + err); + } + for(int row = 0; row < DIM_X; row++) + for(int col = 0; col < DIM_Y; col++) { + assertTrue("H5export_dataset: <"+row+","+col+">"+dset_indata[row][col]+"=99", dset_indata[row][col]==99); + } +// _deleteH5file(); + } } diff --git a/java/test/TestH5Edefault.java b/java/test/TestH5Edefault.java index ee2850b..6f968b1 100644 --- a/java/test/TestH5Edefault.java +++ b/java/test/TestH5Edefault.java @@ -366,7 +366,7 @@ public class TestH5Edefault { } assertTrue("H5.H5Eset_current_stack: get_num #:" + num_msg, num_msg == saved_num_msg); - // Se the current stack to be the default and try that again + // Set the current stack to be the default and try that again try { H5.H5Eset_current_stack(stack_id); num_msg = H5.H5Eget_num(HDF5Constants.H5E_DEFAULT); diff --git a/java/test/TestH5R.java b/java/test/TestH5R.java index 5349855..0c307d1 100644 --- a/java/test/TestH5R.java +++ b/java/test/TestH5R.java @@ -24,6 +24,7 @@ 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; @@ -42,6 +43,8 @@ public class TestH5R { long H5gid = -1; long H5did2 = -1; 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; @@ -66,7 +69,7 @@ public class TestH5R { err.printStackTrace(); fail("H5.H5Dcreate: " + err); } - assertTrue("TestH5R._createDataset: ",did > 0); + assertTrue("TestH5R._createDataset: ", did > 0); return did; } @@ -100,6 +103,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,13 +147,15 @@ public class TestH5R { System.out.println(); } + // Test v1.8 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= {""}; + long loc_id = H5fid; + int ref_type = HDF5Constants.H5R_OBJECT; + long ret_val = -1; + byte[] ref = null; + String[] name = {""}; String objName = "/dset"; try { @@ -164,7 +184,7 @@ public class TestH5R { byte[] ref=null; String objName = "/dset"; - int obj_type = -1;; + int obj_type = -1; try { ref = H5.H5Rcreate(H5fid, objName, ref_type, -1); @@ -226,8 +246,8 @@ public class TestH5R { group_id= H5.H5Rdereference(H5gid, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5R_OBJECT, ref2); assertNotNull(ref1); assertNotNull(ref2); - assertTrue(dataset_id>=0); - assertTrue(group_id>=0); + assertTrue(dataset_id >= 0); + assertTrue(group_id >= 0); } catch (Throwable err) { err.printStackTrace(); @@ -247,7 +267,7 @@ public class TestH5R { 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); + assertTrue(dsid >= 0); } catch (Throwable err) { err.printStackTrace(); @@ -261,7 +281,7 @@ public class TestH5R { @Test(expected = IllegalArgumentException.class) public void testH5Rget_name_Invalidreftype() throws Throwable { byte[] ref = null; - String[] name= {""}; + String[] name = {""}; ref = H5.H5Rcreate(H5fid, "/dset", HDF5Constants.H5R_OBJECT, -1); H5.H5Rget_name(H5fid, HDF5Constants.H5R_DATASET_REGION, ref, name, 16); } @@ -269,7 +289,7 @@ public class TestH5R { @Test(expected = NullPointerException.class) public void testH5Rget_name_NULLreference() throws Throwable { byte[] ref = null; - String[] name= {""}; + String[] name = {""}; H5.H5Rget_name(H5fid, HDF5Constants.H5R_OBJECT, ref, name, 16); } @@ -330,4 +350,331 @@ public class TestH5R { H5.H5Rdereference(H5gid, HDF5Constants.H5P_DEFAULT, HDF5Constants.H5R_OBJECT, ref1); } + // Test v1.12 APIs params + + @Test + 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_object(H5fid, objName); + } + catch (Throwable err) { + err.printStackTrace(); + fail("testH5Rget_object: H5Rcreate_object " + err); + } + + try { + ret_val = H5.H5Rget_type(ref); + } + catch (Throwable err) { + err.printStackTrace(); + fail("testH5Rget_object: H5Rget_type: " + err); + } + assertTrue("testH5Rget_object: H5Rget_type", ret_val == ref_type); + + try { + name = H5.H5Rget_file_name(ref); + } + catch (Throwable err) { + err.printStackTrace(); + fail("testH5Rget_object: H5Rget_file_name: " + err); + } + assertTrue("testH5Rget_object: H5Rget_file_name", H5_FILE.equals(name)); + + try { + name = H5.H5Rget_obj_name(ref, HDF5Constants.H5P_DEFAULT); + } + catch (Throwable err) { + err.printStackTrace(); + fail("testH5Rget_object: H5Rget_obj_name: " + err); + } + assertTrue("The name of the object: ", objName.equals(name)); + } + + @Test + public void testH5Rget_obj_type3() { + int obj_type = -1; + byte[] ref = null; + String objName = "/dset"; + + try { + ref = H5.H5Rcreate_object(H5fid, objName); + } + catch (Throwable err) { + err.printStackTrace(); + fail("testH5Rget_obj_type3: H5Rcreate_object " + err); + } + + try { + obj_type = H5.H5Rget_obj_type3(ref, HDF5Constants.H5P_DEFAULT); + } + catch (Throwable err) { + err.printStackTrace(); + fail("testH5Rget_obj_type3: H5.H5Rget_obj_type3: " + err); + } + assertEquals(obj_type, HDF5Constants.H5O_TYPE_DATASET); + } + + @Test + 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 { + H5.H5Sselect_hyperslab(H5dsid, HDF5Constants.H5S_SELECT_SET, start, stride, count, block); + } + catch (Throwable err) { + err.printStackTrace(); + fail("testH5Rget_object: H5Sselect_hyperslab " + err); + } + try { + ref = H5.H5Rcreate_region(H5fid, objName, H5dsid); + } + catch (Throwable err) { + err.printStackTrace(); + fail("testH5Rget_object: H5Rcreate_region " + err); + } + assertNotNull(ref); + } + +// @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); +// } +// 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); +// } +// 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); +// } +// 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); + } + + @Test(expected = HDF5FunctionArgumentException.class) + public void testH5Rget_name_Invalidloc() throws Throwable { + String name= ""; + H5.H5Rcreate_object(-1, name); + } + + // Test parameters to H5Rcreate_region + @Test(expected = NullPointerException.class) + public void testH5Rcreate_region_Nullname() throws Throwable { + String name = null; + H5.H5Rcreate_region(H5fid, name, -1); + } + + @Test(expected = HDF5FunctionArgumentException.class) + public void testH5Rcreate_region_Invalidloc() throws Throwable { + String name= ""; + H5.H5Rcreate_region(-1, name, -1); + } + + // 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); + } + + @Test(expected = NullPointerException.class) + public void testH5Rcreate_attr_Nullattrname() throws Throwable { + String name = ""; + String attrname = null; + H5.H5Rcreate_attr(H5fid, name, attrname); + } + + @Test(expected = HDF5FunctionArgumentException.class) + public void testH5Rcreate_attr_Invalidloc() throws Throwable { + String name= ""; + String attrname= ""; + H5.H5Rcreate_attr(-1, name, attrname); + } + + // Test parameters to H5Rdestroy + @Test(expected = NullPointerException.class) + public void testH5Rdestroy_Nullref() throws Throwable { + byte[] ref = null; + H5.H5Rdestroy(ref); + } + + // Test parameters to H5Rget_type + @Test(expected = NullPointerException.class) + public void testH5Rget_type_Nullref() throws Throwable { + byte[] ref = null; + 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 = NullPointerException.class) + public void testH5Requal_Nullref2() throws Throwable { + byte[] ref1 = {0,0,0,0}; + byte[] ref2 = null; + H5.H5Requal(ref1, ref2); + } + + // Test parameters to H5Rcopy + @Test(expected = NullPointerException.class) + public void testH5Rcopy_Nullref1() throws Throwable { + byte[] ref1 = null; + byte[] ref2 = H5.H5Rcopy(ref1); + } + + // 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 parameters to H5Ropen_region + @Test(expected = NullPointerException.class) + public void testH5Ropen_region_Nullref() throws Throwable { + byte[] ref = null; + H5.H5Ropen_region(ref, -1, -1); + } + + // Test parameters to H5Ropen_attr + @Test(expected = NullPointerException.class) + public void testH5Ropen_attr_Nullref() throws Throwable { + byte[] ref = null; + H5.H5Ropen_attr(ref, -1, -1); + } + + // Test parameters to H5Rget_obj_type3 + @Test(expected = NullPointerException.class) + public void testH5Rget_obj_type3_Nullref() throws Throwable { + byte[] ref = null; + H5.H5Rget_obj_type3(ref, -1); + } + + // Test parameters to H5Rget_file_name + @Test(expected = NullPointerException.class) + public void testH5Rget_file_name_Nullref() throws Throwable { + byte[] ref = null; + H5.H5Rget_file_name(ref); + } + + // 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); + } + } diff --git a/java/test/testfiles/JUnit-TestH5R.txt b/java/test/testfiles/JUnit-TestH5R.txt index 150df54..daa81c5 100644 --- a/java/test/testfiles/JUnit-TestH5R.txt +++ b/java/test/testfiles/JUnit-TestH5R.txt @@ -1,8 +1,14 @@ JUnit version 4.11 +.testH5Ropen_attr_Nullref .testH5Rgetregion_Nullreference .testH5Rget_obj_type2_Invalidreftype .testH5Rdereference +.testH5Rget_attr_name_Nullref +.testH5Ropen_region_Nullref +.testH5Requal_Nullref1 +.testH5Requal_Nullref2 .testH5Rget_name +.testH5Rget_object .testH5Rcreate_Invalidreftype .testH5Rget_name_NULLreference .testH5Rget_region @@ -11,13 +17,29 @@ JUnit version 4.11 .testH5Rcreate_Invalidspace_id .testH5Rdereference_Invalidreference .testH5Rgetregion_Badreferencetype +.testH5Rget_obj_type3_Nullref .testH5Rcreate_regionrefobj +.testH5Ropen_object_Nullref +.testH5Rdestroy_Nullref .testH5Rget_name_Invalidreftype .testH5Rgetregion_Invalidreftype +.testH5Rcreate_object_Nullname .testH5Rget_obj_type2 +.testH5Rget_obj_type3 +.testH5Rget_name_Invalidloc +.testH5Rcopy_Nullref1 +.testH5Rcreate_attr_Invalidloc .testH5Rcreate_InvalidObjectName +.testH5Rget_file_name_Nullref +.testH5Rget_obj_name_Nullref +.testH5Rcreate_region_Nullname +.testH5Rcreate_regionref_object +.testH5Rcreate_attr_Nullattrname +.testH5Rcreate_region_Invalidloc +.testH5Rget_type_Nullref +.testH5Rcreate_attr_Nullname Time: XXXX -OK (17 tests) +OK (39 tests) |