summaryrefslogtreecommitdiffstats
path: root/test/enum.c
diff options
context:
space:
mode:
authorJames Laird <jlaird@hdfgroup.org>2006-07-31 19:46:16 (GMT)
committerJames Laird <jlaird@hdfgroup.org>2006-07-31 19:46:16 (GMT)
commitbeb04ae817268a49656b5abe043627dcbba15e5d (patch)
tree557b0c0908867dbb7185c3954626b2a2da3bcaf4 /test/enum.c
parent70b46a1d89e7f9f4a82748a9e1cc21fb4f121ebe (diff)
downloadhdf5-beb04ae817268a49656b5abe043627dcbba15e5d.zip
hdf5-beb04ae817268a49656b5abe043627dcbba15e5d.tar.gz
hdf5-beb04ae817268a49656b5abe043627dcbba15e5d.tar.bz2
[svn-r12519] Fixed "make check-vfd"
"make check-vfd" will now run all tests in the test directory with different file drivers (at least, all of those tests that use the testing framework's FAPL). Tests that fail will be skipped. This is not a perfect fix, but is better than nothing. Along with this change, check-vfd should be added to the Daily Tests.
Diffstat (limited to 'test/enum.c')
-rw-r--r--test/enum.c199
1 files changed, 110 insertions, 89 deletions
diff --git a/test/enum.c b/test/enum.c
index 02cad81..f852ecc 100644
--- a/test/enum.c
+++ b/test/enum.c
@@ -207,58 +207,68 @@ test_tr1(hid_t file)
static c_e1 data1[10]={E1_RED, E1_GREEN, E1_BLUE, E1_GREEN, E1_WHITE,
E1_WHITE, E1_BLACK, E1_GREEN, E1_BLUE, E1_RED};
c_e1 data2[10];
+ const char *envval = NULL;
TESTING("O(1) conversions");
- if ((cwg=H5Gcreate(file, "test_tr1", 0))<0) goto error;
-
- if ((m_type = H5Tcreate(H5T_ENUM, sizeof(c_e1)))<0) goto error;
- if (H5Tenum_insert(m_type, "RED", CPTR(eval, E1_RED ))<0) goto error;
- if (H5Tenum_insert(m_type, "GREEN", CPTR(eval, E1_GREEN))<0) goto error;
- if (H5Tenum_insert(m_type, "BLUE", CPTR(eval, E1_BLUE ))<0) goto error;
- if (H5Tenum_insert(m_type, "WHITE", CPTR(eval, E1_WHITE))<0) goto error;
- if (H5Tenum_insert(m_type, "BLACK", CPTR(eval, E1_BLACK))<0) goto error;
-
-
- if ((f_type = H5Tcreate(H5T_ENUM, sizeof(c_e1)))<0) goto error;
- if (H5Tenum_insert(f_type, "RED", CPTR(ival, 105))<0) goto error;
- if (H5Tenum_insert(f_type, "GREEN", CPTR(ival, 104))<0) goto error;
- if (H5Tenum_insert(f_type, "BLUE", CPTR(ival, 103))<0) goto error;
- if (H5Tenum_insert(f_type, "WHITE", CPTR(ival, 102))<0) goto error;
- if (H5Tenum_insert(f_type, "BLACK", CPTR(ival, 101))<0) goto error;
-
- if ((space=H5Screate_simple(1, ds_size, NULL))<0) goto error;
- if ((dset=H5Dcreate(cwg, "color_table", f_type, space, H5P_DEFAULT))<0)
- goto error;
- if (H5Dwrite(dset, m_type, space, space, H5P_DEFAULT, data1)<0) goto error;
- if (H5Dread(dset, m_type, space, space, H5P_DEFAULT, data2)<0) goto error;
-
- for (i=0; i<ds_size[0]; i++) {
- if (data1[i]!=data2[i]) {
- H5_FAILED();
- printf(" data1[%lu]=%d, data2[%lu]=%d (should be same)\n",
- (unsigned long)i, (int)(data1[i]),
- (unsigned long)i, (int)(data2[i]));
+ envval = HDgetenv("HDF5_DRIVER");
+ if (envval == NULL)
+ envval = "nomatch";
+ if (HDstrcmp(envval, "split")) {
+ if ((cwg=H5Gcreate(file, "test_tr1", 0))<0) goto error;
+
+ if ((m_type = H5Tcreate(H5T_ENUM, sizeof(c_e1)))<0) goto error;
+ if (H5Tenum_insert(m_type, "RED", CPTR(eval, E1_RED ))<0) goto error;
+ if (H5Tenum_insert(m_type, "GREEN", CPTR(eval, E1_GREEN))<0) goto error;
+ if (H5Tenum_insert(m_type, "BLUE", CPTR(eval, E1_BLUE ))<0) goto error;
+ if (H5Tenum_insert(m_type, "WHITE", CPTR(eval, E1_WHITE))<0) goto error;
+ if (H5Tenum_insert(m_type, "BLACK", CPTR(eval, E1_BLACK))<0) goto error;
+
+
+ if ((f_type = H5Tcreate(H5T_ENUM, sizeof(c_e1)))<0) goto error;
+ if (H5Tenum_insert(f_type, "RED", CPTR(ival, 105))<0) goto error;
+ if (H5Tenum_insert(f_type, "GREEN", CPTR(ival, 104))<0) goto error;
+ if (H5Tenum_insert(f_type, "BLUE", CPTR(ival, 103))<0) goto error;
+ if (H5Tenum_insert(f_type, "WHITE", CPTR(ival, 102))<0) goto error;
+ if (H5Tenum_insert(f_type, "BLACK", CPTR(ival, 101))<0) goto error;
+
+ if ((space=H5Screate_simple(1, ds_size, NULL))<0) goto error;
+ if ((dset=H5Dcreate(cwg, "color_table", f_type, space, H5P_DEFAULT))<0)
goto error;
+ if (H5Dwrite(dset, m_type, space, space, H5P_DEFAULT, data1)<0) goto error;
+ if (H5Dread(dset, m_type, space, space, H5P_DEFAULT, data2)<0) goto error;
+
+ for (i=0; i<ds_size[0]; i++) {
+ if (data1[i]!=data2[i]) {
+ H5_FAILED();
+ printf(" data1[%lu]=%d, data2[%lu]=%d (should be same)\n",
+ (unsigned long)i, (int)(data1[i]),
+ (unsigned long)i, (int)(data2[i]));
+ goto error;
+ }
}
- }
- if (H5Dclose(dset)<0) goto error;
- if (H5Sclose(space)<0) goto error;
- if (H5Tclose(m_type)<0) goto error;
- if (H5Tclose(f_type)<0) goto error;
- if (H5Gclose(cwg)<0) goto error;
- PASSED();
+ if (H5Dclose(dset)<0) goto error;
+ if (H5Sclose(space)<0) goto error;
+ if (H5Tclose(m_type)<0) goto error;
+ if (H5Tclose(f_type)<0) goto error;
+ if (H5Gclose(cwg)<0) goto error;
+ PASSED();
+ }
+ else
+ {
+ SKIPPED();
+ }
return 0;
- error:
- H5E_BEGIN_TRY {
- H5Dclose(dset);
- H5Sclose(space);
- H5Tclose(m_type);
- H5Tclose(f_type);
- H5Gclose(cwg);
- } H5E_END_TRY;
- return 1;
+ error:
+ H5E_BEGIN_TRY {
+ H5Dclose(dset);
+ H5Sclose(space);
+ H5Tclose(m_type);
+ H5Tclose(f_type);
+ H5Gclose(cwg);
+ } H5E_END_TRY;
+ return 1;
}
@@ -288,57 +298,68 @@ test_tr2(hid_t file)
static c_e1 data1[10]={E1_RED, E1_GREEN, E1_BLUE, E1_GREEN, E1_WHITE,
E1_WHITE, E1_BLACK, E1_GREEN, E1_BLUE, E1_RED};
c_e1 data2[10];
+ const char *envval = NULL;
TESTING("O(log N) converions");
- if ((cwg=H5Gcreate(file, "test_tr2", 0))<0) goto error;
-
- if ((m_type = H5Tcreate(H5T_ENUM, sizeof(c_e1)))<0) goto error;
- if (H5Tenum_insert(m_type, "RED", CPTR(val1, E1_RED ))<0) goto error;
- if (H5Tenum_insert(m_type, "GREEN", CPTR(val1, E1_GREEN))<0) goto error;
- if (H5Tenum_insert(m_type, "BLUE", CPTR(val1, E1_BLUE ))<0) goto error;
- if (H5Tenum_insert(m_type, "WHITE", CPTR(val1, E1_WHITE))<0) goto error;
- if (H5Tenum_insert(m_type, "BLACK", CPTR(val1, E1_BLACK))<0) goto error;
-
- if ((f_type = H5Tcreate(H5T_ENUM, sizeof(int)))<0) goto error;
- if (H5Tenum_insert(f_type, "RED", CPTR(val2, 1050))<0) goto error;
- if (H5Tenum_insert(f_type, "GREEN", CPTR(val2, 1040))<0) goto error;
- if (H5Tenum_insert(f_type, "BLUE", CPTR(val2, 1030))<0) goto error;
- if (H5Tenum_insert(f_type, "WHITE", CPTR(val2, 1020))<0) goto error;
- if (H5Tenum_insert(f_type, "BLACK", CPTR(val2, 1010))<0) goto error;
-
- if ((space=H5Screate_simple(1, ds_size, NULL))<0) goto error;
- if ((dset=H5Dcreate(cwg, "color_table", f_type, space, H5P_DEFAULT))<0)
- goto error;
- if (H5Dwrite(dset, m_type, space, space, H5P_DEFAULT, data1)<0) goto error;
- if (H5Dread(dset, m_type, space, space, H5P_DEFAULT, data2)<0) goto error;
-
- for (i=0; i<ds_size[0]; i++) {
- if (data1[i]!=data2[i]) {
- H5_FAILED();
- printf(" data1[%lu]=%d, data2[%lu]=%d (should be same)\n",
- (unsigned long)i, (int)(data1[i]),
- (unsigned long)i, (int)(data2[i]));
+ envval = HDgetenv("HDF5_DRIVER");
+ if (envval == NULL)
+ envval = "nomatch";
+ if (HDstrcmp(envval, "split")) {
+ if ((cwg=H5Gcreate(file, "test_tr2", 0))<0) goto error;
+
+ if ((m_type = H5Tcreate(H5T_ENUM, sizeof(c_e1)))<0) goto error;
+ if (H5Tenum_insert(m_type, "RED", CPTR(val1, E1_RED ))<0) goto error;
+ if (H5Tenum_insert(m_type, "GREEN", CPTR(val1, E1_GREEN))<0) goto error;
+ if (H5Tenum_insert(m_type, "BLUE", CPTR(val1, E1_BLUE ))<0) goto error;
+ if (H5Tenum_insert(m_type, "WHITE", CPTR(val1, E1_WHITE))<0) goto error;
+ if (H5Tenum_insert(m_type, "BLACK", CPTR(val1, E1_BLACK))<0) goto error;
+
+ if ((f_type = H5Tcreate(H5T_ENUM, sizeof(int)))<0) goto error;
+ if (H5Tenum_insert(f_type, "RED", CPTR(val2, 1050))<0) goto error;
+ if (H5Tenum_insert(f_type, "GREEN", CPTR(val2, 1040))<0) goto error;
+ if (H5Tenum_insert(f_type, "BLUE", CPTR(val2, 1030))<0) goto error;
+ if (H5Tenum_insert(f_type, "WHITE", CPTR(val2, 1020))<0) goto error;
+ if (H5Tenum_insert(f_type, "BLACK", CPTR(val2, 1010))<0) goto error;
+
+ if ((space=H5Screate_simple(1, ds_size, NULL))<0) goto error;
+ if ((dset=H5Dcreate(cwg, "color_table", f_type, space, H5P_DEFAULT))<0)
goto error;
+ if (H5Dwrite(dset, m_type, space, space, H5P_DEFAULT, data1)<0) goto error;
+ if (H5Dread(dset, m_type, space, space, H5P_DEFAULT, data2)<0) goto error;
+
+ for (i=0; i<ds_size[0]; i++) {
+ if (data1[i]!=data2[i]) {
+ H5_FAILED();
+ printf(" data1[%lu]=%d, data2[%lu]=%d (should be same)\n",
+ (unsigned long)i, (int)(data1[i]),
+ (unsigned long)i, (int)(data2[i]));
+ goto error;
+ }
}
- }
- if (H5Dclose(dset)<0) goto error;
- if (H5Sclose(space)<0) goto error;
- if (H5Tclose(m_type)<0) goto error;
- if (H5Tclose(f_type)<0) goto error;
- if (H5Gclose(cwg)<0) goto error;
- PASSED();
+ if (H5Dclose(dset)<0) goto error;
+ if (H5Sclose(space)<0) goto error;
+ if (H5Tclose(m_type)<0) goto error;
+ if (H5Tclose(f_type)<0) goto error;
+ if (H5Gclose(cwg)<0) goto error;
+ PASSED();
+ }
+ else
+ {
+ SKIPPED();
+ puts(" Test not compatible with current Virtual File Driver");
+ }
return 0;
- error:
- H5E_BEGIN_TRY {
- H5Dclose(dset);
- H5Sclose(space);
- H5Tclose(m_type);
- H5Tclose(f_type);
- H5Gclose(cwg);
- } H5E_END_TRY;
- return 1;
+ error:
+ H5E_BEGIN_TRY {
+ H5Dclose(dset);
+ H5Sclose(space);
+ H5Tclose(m_type);
+ H5Tclose(f_type);
+ H5Gclose(cwg);
+ } H5E_END_TRY;
+ return 1;
}