summaryrefslogtreecommitdiffstats
path: root/test/vfd_swmr_check_compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/vfd_swmr_check_compat.c')
-rw-r--r--test/vfd_swmr_check_compat.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/vfd_swmr_check_compat.c b/test/vfd_swmr_check_compat.c
new file mode 100644
index 0000000..dec88c5
--- /dev/null
+++ b/test/vfd_swmr_check_compat.c
@@ -0,0 +1,62 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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://www.hdfgroup.org/licenses. *
+ * If you do not have access to either file, you may request a copy from *
+ * help@hdfgroup.org. *
+ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+/* Purpose: This is a small program that checks if the HDF5_DRIVER
+ * environment variable is set to a value that supports VFD SWMR.
+ *
+ * Also checks to see if this is a parallel build, as VFD SWMR
+ * and parallel HDF5 are fundamentally incompatible due to the
+ * page buffer changes.
+ *
+ * It is intended for use in shell scripts.
+ */
+
+#include "h5test.h"
+
+/* This file needs to access the file driver testing code */
+#define H5FD_FRIEND /*suppress error about including H5FDpkg */
+#define H5FD_TESTING
+#include "H5FDpkg.h" /* File drivers */
+
+/*-------------------------------------------------------------------------
+ * Function: main
+ *
+ * Purpose: Inspects the HDF5_DRIVER environment variable, which
+ * determines the VFD that the test harness will use with
+ * the majority of the tests.
+ *
+ * Return: VFD supports SWMR: EXIT_SUCCESS
+ *
+ * VFD does not support SWMR
+ * or failure: EXIT_FAILURE
+ *
+ *-------------------------------------------------------------------------
+ */
+int
+main(void)
+{
+#ifdef H5_HAVE_PARALLEL
+ return EXIT_FAILURE;
+#else
+ char *driver = NULL;
+
+ driver = HDgetenv("HDF5_DRIVER");
+
+ /* Currently using SWMR support as a proxy for VFD SWMR support */
+ if (H5FD__supports_swmr_test(driver))
+ return EXIT_SUCCESS;
+ else
+ return EXIT_FAILURE;
+#endif
+
+} /* end main() */