summaryrefslogtreecommitdiffstats
path: root/test/vds_env.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/vds_env.c')
-rw-r--r--test/vds_env.c325
1 files changed, 170 insertions, 155 deletions
diff --git a/test/vds_env.c b/test/vds_env.c
index 58d90fc..633b7a3 100644
--- a/test/vds_env.c
+++ b/test/vds_env.c
@@ -17,6 +17,7 @@
* Purpose: Tests datasets with virtual layout.
*/
#include "h5test.h"
+#include "H5VLprivate.h" /* Virtual Object Layer */
const char *FILENAME[] = {"vds_env_virt_0", "vds_env_virt_3", "vds_env_src_2", "vds_env%%_src2", NULL};
@@ -66,201 +67,215 @@ test_vds_prefix_second(unsigned config, hid_t fapl)
int fill = -1; /* Fill value */
int i, j;
char buffer[1024]; /* buffer to read vds_prefix */
+ hbool_t is_native; /* Whether native VOL connector is being used */
TESTING("basic virtual dataset I/O via H5Pset_vds_prefix(): all selection with ENV prefix")
- h5_fixname(FILENAME[0], fapl, vfilename, sizeof vfilename);
- h5_fixname(FILENAME[1], fapl, vfilename2, sizeof vfilename2);
- h5_fixname(FILENAME[2], fapl, srcfilename, sizeof srcfilename);
- h5_fixname_printf(FILENAME[2], fapl, srcfilename_map, sizeof srcfilename_map);
- h5_fixname(FILENAME[3], fapl, srcfilenamepct, sizeof srcfilenamepct);
- h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, sizeof srcfilenamepct_map);
+ /* Check for operating with native (only) VOL connector */
+ is_native = FALSE;
+ if (H5VL_fapl_is_native(fapl, &is_native) < 0)
+ TEST_ERROR;
- /* create tmp directory and get current working directory path */
- if (HDmkdir(TMPDIR, (mode_t)0755) < 0 && errno != EEXIST)
- TEST_ERROR
-
- /* Create DCPL */
- if ((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0)
- TEST_ERROR
-
- /* Set fill value */
- if (H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fill) < 0)
- TEST_ERROR
-
- /* Set prefix to a nonexistent directory, will be overwritten by environment variable */
- if ((dapl = H5Pcreate(H5P_DATASET_ACCESS)) < 0)
- TEST_ERROR
-
- if (H5Pset_virtual_prefix(dapl, "someprefix") < 0)
- TEST_ERROR
- if (H5Pget_virtual_prefix(dapl, buffer, sizeof(buffer)) < 0)
- TEST_ERROR
-
- if (HDstrcmp(buffer, "someprefix") != 0)
- FAIL_PUTS_ERROR("vds prefix not set correctly");
+ /* Skip tests for virtual dataset I/O when using non-native VOL connectors */
+ if (!is_native && (config & TEST_IO_DIFFERENT_FILE)) {
+ SKIPPED();
+ HDputs(" Not using native VOL connector");
+ }
+ else {
+ h5_fixname(FILENAME[0], fapl, vfilename, sizeof vfilename);
+ h5_fixname(FILENAME[1], fapl, vfilename2, sizeof vfilename2);
+ h5_fixname(FILENAME[2], fapl, srcfilename, sizeof srcfilename);
+ h5_fixname_printf(FILENAME[2], fapl, srcfilename_map, sizeof srcfilename_map);
+ h5_fixname(FILENAME[3], fapl, srcfilenamepct, sizeof srcfilenamepct);
+ h5_fixname_printf(srcfilenamepct_map_orig, fapl, srcfilenamepct_map, sizeof srcfilenamepct_map);
+
+ /* create tmp directory and get current working directory path */
+ if (HDmkdir(TMPDIR, (mode_t)0755) < 0 && errno != EEXIST)
+ TEST_ERROR
- /* Create source dataspace */
- if ((srcspace[0] = H5Screate_simple(2, dims, NULL)) < 0)
- TEST_ERROR
+ /* Create DCPL */
+ if ((dcpl = H5Pcreate(H5P_DATASET_CREATE)) < 0)
+ TEST_ERROR
- /* Create virtual dataspace */
- if ((vspace[0] = H5Screate_simple(2, dims, NULL)) < 0)
- TEST_ERROR
+ /* Set fill value */
+ if (H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fill) < 0)
+ TEST_ERROR
- /* Select all (should not be necessary, but just to be sure) */
- if (H5Sselect_all(srcspace[0]) < 0)
- TEST_ERROR
- if (H5Sselect_all(vspace[0]) < 0)
- TEST_ERROR
+ /* Set prefix to a nonexistent directory, will be overwritten by environment variable */
+ if ((dapl = H5Pcreate(H5P_DATASET_ACCESS)) < 0)
+ TEST_ERROR
- /* Add virtual layout mapping */
- if (H5Pset_virtual(dcpl, vspace[0], config & TEST_IO_DIFFERENT_FILE ? srcfilename_map : ".", "src_dset",
- srcspace[0]) < 0)
- TEST_ERROR
+ if (H5Pset_virtual_prefix(dapl, "someprefix") < 0)
+ TEST_ERROR
+ if (H5Pget_virtual_prefix(dapl, buffer, sizeof(buffer)) < 0)
+ TEST_ERROR
- /* Create virtual file */
- if ((vfile = H5Fcreate(vfilename2, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
- TEST_ERROR
+ if (HDstrcmp(buffer, "someprefix") != 0)
+ FAIL_PUTS_ERROR("vds prefix not set correctly");
- /* Create source file if requested */
- if (config & TEST_IO_DIFFERENT_FILE) {
- if (NULL == HDgetcwd(buffer, 1024))
- TEST_ERROR
- if (HDchdir(TMPDIR) < 0)
+ /* Create source dataspace */
+ if ((srcspace[0] = H5Screate_simple(2, dims, NULL)) < 0)
TEST_ERROR
- if ((srcfile[0] = H5Fcreate(srcfilename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
+
+ /* Create virtual dataspace */
+ if ((vspace[0] = H5Screate_simple(2, dims, NULL)) < 0)
TEST_ERROR
- if (HDchdir(buffer) < 0)
+
+ /* Select all (should not be necessary, but just to be sure) */
+ if (H5Sselect_all(srcspace[0]) < 0)
TEST_ERROR
- }
- else {
- srcfile[0] = vfile;
- if (H5Iinc_ref(srcfile[0]) < 0)
+ if (H5Sselect_all(vspace[0]) < 0)
TEST_ERROR
- }
- /* Create source dataset */
- if ((srcdset[0] = H5Dcreate2(srcfile[0], "src_dset", H5T_NATIVE_INT, srcspace[0], H5P_DEFAULT,
- H5P_DEFAULT, H5P_DEFAULT)) < 0)
- TEST_ERROR
-
- /* Create virtual dataset */
- if ((vdset = H5Dcreate2(vfile, "v_dset", H5T_NATIVE_INT, vspace[0], H5P_DEFAULT, dcpl, dapl)) < 0)
- TEST_ERROR
-
- /* Populate write buffer */
- for (i = 0; i < (int)(sizeof(buf) / sizeof(buf[0])); i++)
- for (j = 0; j < (int)(sizeof(buf[0]) / sizeof(buf[0][0])); j++)
- buf[i][j] = (i * (int)(sizeof(buf[0]) / sizeof(buf[0][0]))) + j;
-
- /* Write data directly to source dataset */
- if (H5Dwrite(srcdset[0], H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf[0]) < 0)
- TEST_ERROR
+ /* Add virtual layout mapping */
+ if (H5Pset_virtual(dcpl, vspace[0], config & TEST_IO_DIFFERENT_FILE ? srcfilename_map : ".", "src_dset",
+ srcspace[0]) < 0)
+ TEST_ERROR
- /* Close srcdset and srcfile if config option specified */
- if (config & TEST_IO_CLOSE_SRC) {
- if (H5Dclose(srcdset[0]) < 0)
+ /* Create virtual file */
+ if ((vfile = H5Fcreate(vfilename2, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
TEST_ERROR
- srcdset[0] = -1;
+ /* Create source file if requested */
if (config & TEST_IO_DIFFERENT_FILE) {
- if (H5Fclose(srcfile[0]) < 0)
+ if (NULL == HDgetcwd(buffer, 1024))
+ TEST_ERROR
+ if (HDchdir(TMPDIR) < 0)
+ TEST_ERROR
+ if ((srcfile[0] = H5Fcreate(srcfilename, H5F_ACC_TRUNC, H5P_DEFAULT, fapl)) < 0)
+ TEST_ERROR
+ if (HDchdir(buffer) < 0)
+ TEST_ERROR
+ }
+ else {
+ srcfile[0] = vfile;
+ if (H5Iinc_ref(srcfile[0]) < 0)
TEST_ERROR
- srcfile[0] = -1;
}
- }
- /* Reopen virtual dataset and file if config option specified */
- if (config & TEST_IO_REOPEN_VIRT) {
- if (H5Dclose(vdset) < 0)
- TEST_ERROR
- vdset = -1;
- if (H5Fclose(vfile) < 0)
+ /* Create source dataset */
+ if ((srcdset[0] = H5Dcreate2(srcfile[0], "src_dset", H5T_NATIVE_INT, srcspace[0], H5P_DEFAULT,
+ H5P_DEFAULT, H5P_DEFAULT)) < 0)
TEST_ERROR
- vfile = -1;
- if ((vfile = H5Fopen(vfilename2, H5F_ACC_RDWR, fapl)) < 0)
- TEST_ERROR
- if ((vdset = H5Dopen2(vfile, "v_dset", dapl)) < 0)
+
+ /* Create virtual dataset */
+ if ((vdset = H5Dcreate2(vfile, "v_dset", H5T_NATIVE_INT, vspace[0], H5P_DEFAULT, dcpl, dapl)) < 0)
TEST_ERROR
- }
- /* Read data through virtual dataset */
- HDmemset(rbuf[0], 0, sizeof(rbuf));
- if (H5Dread(vdset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rbuf[0]) < 0)
- TEST_ERROR
+ /* Populate write buffer */
+ for (i = 0; i < (int)(sizeof(buf) / sizeof(buf[0])); i++)
+ for (j = 0; j < (int)(sizeof(buf[0]) / sizeof(buf[0][0])); j++)
+ buf[i][j] = (i * (int)(sizeof(buf[0]) / sizeof(buf[0][0]))) + j;
- /* Verify read data */
- for (i = 0; i < (int)(sizeof(buf) / sizeof(buf[0])); i++) {
- for (j = 0; j < (int)(sizeof(buf[0]) / sizeof(buf[0][0])); j++)
- if (rbuf[i][j] != buf[i][j]) {
- TEST_ERROR
- }
- }
+ /* Write data directly to source dataset */
+ if (H5Dwrite(srcdset[0], H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf[0]) < 0)
+ TEST_ERROR
- /* Adjust write buffer */
- for (i = 0; i < (int)(sizeof(buf) / sizeof(buf[0])); i++)
- for (j = 0; j < (int)(sizeof(buf[0]) / sizeof(buf[0][0])); j++)
- buf[i][j] += (int)(sizeof(buf) / sizeof(buf[0][0]));
+ /* Close srcdset and srcfile if config option specified */
+ if (config & TEST_IO_CLOSE_SRC) {
+ if (H5Dclose(srcdset[0]) < 0)
+ TEST_ERROR
+ srcdset[0] = -1;
- /* Write data through virtual dataset */
- if (H5Dwrite(vdset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf[0]) < 0)
- TEST_ERROR
+ if (config & TEST_IO_DIFFERENT_FILE) {
+ if (H5Fclose(srcfile[0]) < 0)
+ TEST_ERROR
+ srcfile[0] = -1;
+ }
+ }
- /* Reopen srcdset and srcfile if config option specified */
- if (config & TEST_IO_CLOSE_SRC) {
- if (config & TEST_IO_DIFFERENT_FILE) {
- if (NULL == HDgetcwd(buffer, 1024))
+ /* Reopen virtual dataset and file if config option specified */
+ if (config & TEST_IO_REOPEN_VIRT) {
+ if (H5Dclose(vdset) < 0)
TEST_ERROR
- if (HDchdir(TMPDIR) < 0)
+ vdset = -1;
+ if (H5Fclose(vfile) < 0)
TEST_ERROR
- if ((srcfile[0] = H5Fopen(srcfilename, H5F_ACC_RDONLY, fapl)) < 0)
+ vfile = -1;
+ if ((vfile = H5Fopen(vfilename2, H5F_ACC_RDWR, fapl)) < 0)
TEST_ERROR
- if (HDchdir(buffer) < 0)
+ if ((vdset = H5Dopen2(vfile, "v_dset", dapl)) < 0)
TEST_ERROR
}
- if ((srcdset[0] = H5Dopen2(srcfile[0], "src_dset", H5P_DEFAULT)) < 0)
+
+ /* Read data through virtual dataset */
+ HDmemset(rbuf[0], 0, sizeof(rbuf));
+ if (H5Dread(vdset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rbuf[0]) < 0)
TEST_ERROR
- }
- /* Read data directly from source dataset */
- HDmemset(rbuf[0], 0, sizeof(rbuf));
- if (H5Dread(srcdset[0], H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rbuf[0]) < 0)
- TEST_ERROR
+ /* Verify read data */
+ for (i = 0; i < (int)(sizeof(buf) / sizeof(buf[0])); i++) {
+ for (j = 0; j < (int)(sizeof(buf[0]) / sizeof(buf[0][0])); j++)
+ if (rbuf[i][j] != buf[i][j]) {
+ TEST_ERROR
+ }
+ }
- /* Verify read data */
- for (i = 0; i < (int)(sizeof(buf) / sizeof(buf[0])); i++)
- for (j = 0; j < (int)(sizeof(buf[0]) / sizeof(buf[0][0])); j++)
- if (rbuf[i][j] != buf[i][j])
+ /* Adjust write buffer */
+ for (i = 0; i < (int)(sizeof(buf) / sizeof(buf[0])); i++)
+ for (j = 0; j < (int)(sizeof(buf[0]) / sizeof(buf[0][0])); j++)
+ buf[i][j] += (int)(sizeof(buf) / sizeof(buf[0][0]));
+
+ /* Write data through virtual dataset */
+ if (H5Dwrite(vdset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buf[0]) < 0)
+ TEST_ERROR
+
+ /* Reopen srcdset and srcfile if config option specified */
+ if (config & TEST_IO_CLOSE_SRC) {
+ if (config & TEST_IO_DIFFERENT_FILE) {
+ if (NULL == HDgetcwd(buffer, 1024))
+ TEST_ERROR
+ if (HDchdir(TMPDIR) < 0)
+ TEST_ERROR
+ if ((srcfile[0] = H5Fopen(srcfilename, H5F_ACC_RDONLY, fapl)) < 0)
+ TEST_ERROR
+ if (HDchdir(buffer) < 0)
+ TEST_ERROR
+ }
+ if ((srcdset[0] = H5Dopen2(srcfile[0], "src_dset", H5P_DEFAULT)) < 0)
TEST_ERROR
+ }
- /* Close */
- if (H5Dclose(vdset) < 0)
- TEST_ERROR
- vdset = -1;
- if (H5Dclose(srcdset[0]) < 0)
- TEST_ERROR
- srcdset[0] = -1;
- if (H5Fclose(srcfile[0]) < 0)
- TEST_ERROR
- srcfile[0] = -1;
- if (H5Fclose(vfile) < 0)
- TEST_ERROR
- vfile = -1;
- if (H5Sclose(srcspace[0]) < 0)
- TEST_ERROR
- srcspace[0] = -1;
- if (H5Sclose(vspace[0]) < 0)
- TEST_ERROR
- vspace[0] = -1;
- if (H5Pclose(dapl) < 0)
- TEST_ERROR
- dapl = -1;
- if (H5Pclose(dcpl) < 0)
- TEST_ERROR
- dcpl = -1;
+ /* Read data directly from source dataset */
+ HDmemset(rbuf[0], 0, sizeof(rbuf));
+ if (H5Dread(srcdset[0], H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, rbuf[0]) < 0)
+ TEST_ERROR
+
+ /* Verify read data */
+ for (i = 0; i < (int)(sizeof(buf) / sizeof(buf[0])); i++)
+ for (j = 0; j < (int)(sizeof(buf[0]) / sizeof(buf[0][0])); j++)
+ if (rbuf[i][j] != buf[i][j])
+ TEST_ERROR
+
+ /* Close */
+ if (H5Dclose(vdset) < 0)
+ TEST_ERROR
+ vdset = -1;
+ if (H5Dclose(srcdset[0]) < 0)
+ TEST_ERROR
+ srcdset[0] = -1;
+ if (H5Fclose(srcfile[0]) < 0)
+ TEST_ERROR
+ srcfile[0] = -1;
+ if (H5Fclose(vfile) < 0)
+ TEST_ERROR
+ vfile = -1;
+ if (H5Sclose(srcspace[0]) < 0)
+ TEST_ERROR
+ srcspace[0] = -1;
+ if (H5Sclose(vspace[0]) < 0)
+ TEST_ERROR
+ vspace[0] = -1;
+ if (H5Pclose(dapl) < 0)
+ TEST_ERROR
+ dapl = -1;
+ if (H5Pclose(dcpl) < 0)
+ TEST_ERROR
+ dcpl = -1;
+
+ PASSED();
+ }
- PASSED();
return 0;
error: