1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2 * Copyright by The HDF Group. * 3 * Copyright by the Board of Trustees of the University of Illinois. * 4 * All rights reserved. * 5 * * 6 * This file is part of HDF5. The full HDF5 copyright notice, including * 7 * terms governing use, modification, and redistribution, is contained in * 8 * the COPYING file, which can be found at the root of the source code * 9 * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * 10 * If you do not have access to either file, you may request a copy from * 11 * help@hdfgroup.org. * 12 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 14 package test; 15 16 import static org.junit.Assert.assertEquals; 17 import static org.junit.Assert.assertFalse; 18 import static org.junit.Assert.assertNotNull; 19 import static org.junit.Assert.assertTrue; 20 import static org.junit.Assert.fail; 21 22 import java.util.ArrayList; 23 24 import hdf.hdf5lib.H5; 25 import hdf.hdf5lib.HDF5Constants; 26 import hdf.hdf5lib.exceptions.HDF5LibraryException; 27 import hdf.hdf5lib.callbacks.H5E_walk_cb; 28 import hdf.hdf5lib.callbacks.H5E_walk_t; 29 import hdf.hdf5lib.structs.H5E_error2_t; 30 31 import org.junit.After; 32 import org.junit.Before; 33 import org.junit.Ignore; 34 import org.junit.Rule; 35 import org.junit.Test; 36 import org.junit.rules.TestName; 37 38 public class TestH5Eparams { 39 @Rule public TestName testname = new TestName(); 40 long hdf_java_classid = -1; 41 long current_stackid = -1; 42 43 @Before H5Eget_stack_class()44 public void H5Eget_stack_class() { 45 assertTrue("H5 open ids is 0",H5.getOpenIDCount()==0); 46 System.out.print(testname.getMethodName()); 47 48 hdf_java_classid = -1; 49 try { 50 hdf_java_classid = H5.H5Eregister_class("HDF-Java-Error", "hdf-java", "2.5"); 51 current_stackid = H5.H5Eget_current_stack(); 52 } 53 catch (Throwable err) { 54 err.printStackTrace(); 55 fail("H5.H5Eget_stack_class: " + err); 56 } 57 } 58 59 @After H5Erestore_stack_class()60 public void H5Erestore_stack_class() { 61 try { 62 H5.H5Eunregister_class(hdf_java_classid); 63 hdf_java_classid = -1; 64 H5.H5Eclose_stack(current_stackid); 65 current_stackid = -1; 66 } 67 catch (Throwable err) { 68 err.printStackTrace(); 69 fail("H5.H5Erestore_stack_class: " + err); 70 } 71 System.out.println(); 72 } 73 74 @Test testH5Eget_class_name()75 public void testH5Eget_class_name() { 76 try { 77 String class_name = H5.H5Eget_class_name(hdf_java_classid); 78 assertNotNull("H5.H5Eget_class_name: " + class_name, class_name); 79 assertEquals("H5.H5Eget_class_name: ", "HDF-Java-Error", class_name); 80 } 81 catch (Throwable err) { 82 err.printStackTrace(); 83 fail("H5.H5Eget_class_name: " + err); 84 } 85 } 86 87 @Test testH5Eprint2()88 public void testH5Eprint2() { 89 try { 90 assertFalse(current_stackid < 0); 91 H5.H5Eprint2(current_stackid, null); 92 } 93 catch (Throwable err) { 94 err.printStackTrace(); 95 fail("H5.H5Eprint2: " + err); 96 } 97 } 98 99 @Ignore("Tested with create_msg_major[minor]") 100 public void testH5Eclose_msg() { 101 fail("Not yet implemented"); 102 } 103 104 @Test(expected = NullPointerException.class) 105 public void testH5Ecreate_msg_name_null() throws Throwable { 106 H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MAJOR, null); 107 } 108 109 @Test 110 public void testH5Ecreate_msg_major() { 111 try { 112 long err_id = H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MAJOR, "Error in Test"); 113 assertFalse("H5.H5Ecreate_msg_major: " + err_id, err_id < 0); 114 H5.H5Eclose_msg(err_id); 115 } 116 catch (Throwable err) { 117 err.printStackTrace(); 118 fail("H5.H5Ecreate_msg_major: " + err); 119 } 120 } 121 122 @Test 123 public void testH5Ecreate_msg_minor() { 124 try { 125 long err_id = H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MINOR, "Error in Test Function"); 126 assertFalse("H5.H5Ecreate_msg_minor: " + err_id, err_id < 0); 127 H5.H5Eclose_msg(err_id); 128 } 129 catch (Throwable err) { 130 err.printStackTrace(); 131 fail("H5.H5Ecreate_msg_minor: " + err); 132 } 133 } 134 135 @Test 136 public void testH5Eget_msg() { 137 int[] error_msg_type = { HDF5Constants.H5E_MINOR }; 138 long err_id = -1; 139 String msg = null; 140 try { 141 err_id = H5.H5Ecreate_msg(hdf_java_classid, HDF5Constants.H5E_MAJOR, "Error in Test"); 142 } 143 catch (Throwable err) { 144 err.printStackTrace(); 145 fail("H5.H5Eget_msg: " + err); 146 } 147 assertFalse("H5.H5Eget_msg: H5Ecreate_msg - " + err_id, err_id < 0); 148 try { 149 msg = H5.H5Eget_msg(err_id, error_msg_type); 150 } 151 catch (Throwable err) { 152 err.printStackTrace(); 153 fail("H5.H5Eget_msg: " + err); 154 } 155 assertNotNull("H5.H5Eget_msg: " + msg, msg); 156 assertEquals("H5.H5Eget_msg: ", "Error in Test", msg); 157 assertEquals("H5.H5Eget_msg: ", HDF5Constants.H5E_MAJOR, error_msg_type[0]); 158 try { 159 H5.H5Eclose_msg(err_id); 160 } 161 catch (Throwable err) { 162 err.printStackTrace(); 163 fail("H5.H5Eget_msg: " + err); 164 } 165 } 166 167 @Test 168 public void testH5Ecreate_stack() { 169 long stk_id = -1; 170 try { 171 stk_id = H5.H5Ecreate_stack(); 172 } 173 catch (Throwable err) { 174 err.printStackTrace(); 175 fail("H5.H5Ecreate_stack: " + err); 176 } 177 assertFalse("H5.H5Ecreate_stack: " + stk_id, stk_id < 0); 178 try { 179 H5.H5Eclose_stack(stk_id); 180 } 181 catch (Throwable err) { 182 err.printStackTrace(); 183 fail("H5.H5Ecreate_stack: " + err); 184 } 185 } 186 187 @Test 188 public void testH5EprintInt() { 189 assertFalse(current_stackid < 0); 190 try { 191 H5.H5Eprint2(current_stackid, null); 192 } 193 catch (Throwable err) { 194 err.printStackTrace(); 195 fail("H5.H5EprintInt: " + err); 196 } 197 } 198 199 @Test 200 public void testH5EclearInt() { 201 try { 202 H5.H5Eclear(current_stackid); 203 } 204 catch (Throwable err) { 205 err.printStackTrace(); 206 fail("H5.H5EclearInt: " + err); 207 } 208 } 209 210 @Test 211 public void testH5Eclear2() { 212 try { 213 H5.H5Eclear2(current_stackid); 214 } 215 catch (Throwable err) { 216 err.printStackTrace(); 217 fail("H5.H5Eclear2: " + err); 218 } 219 } 220 221 @Test 222 public void testH5Eauto_is_v2() { 223 boolean is_v2 = false; 224 try { 225 is_v2 = H5.H5Eauto_is_v2(current_stackid); 226 } 227 catch (Throwable err) { 228 err.printStackTrace(); 229 fail("H5.H5Eauto_is_v2: " + err); 230 } 231 assertTrue("H5.H5Eauto_is_v2: ", is_v2); 232 } 233 234 @Test 235 public void testH5Eget_num() { 236 long num_msg = -1; 237 try { 238 num_msg = H5.H5Eget_num(current_stackid); 239 } 240 catch (Throwable err) { 241 err.printStackTrace(); 242 fail("H5.H5Eget_num: " + err); 243 } 244 assertTrue("H5.H5Eget_num", num_msg == 0); 245 } 246 247 @Test 248 public void testH5Eget_num_with_msg() { 249 try { 250 H5.H5Eset_current_stack(current_stackid); 251 } 252 catch (Throwable err) { 253 err.printStackTrace(); 254 fail("H5.H5Epop: " + err); 255 } 256 try { 257 H5.H5Fopen("test", 0, 1); 258 } 259 catch (Throwable err) { 260 } 261 262 // save current stack contents 263 try { 264 current_stackid = H5.H5Eget_current_stack(); 265 } 266 catch (HDF5LibraryException err) { 267 err.printStackTrace(); 268 fail("H5.H5Epop: " + err); 269 } 270 271 long num_msg = -1; 272 try { 273 num_msg = H5.H5Eget_num(current_stackid); 274 } 275 catch (Throwable err) { 276 err.printStackTrace(); 277 fail("H5.H5Epop: " + err); 278 } 279 assertTrue("H5.H5Eget_num_with_msg #:" + num_msg, num_msg > 0); 280 } 281 282 } 283