summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2015-08-24 19:35:43 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2015-08-24 19:35:43 (GMT)
commit5f14a860da768e49246c6e2cebcf68c553625860 (patch)
tree870efe4a6fd05c2620591c48a5864cd7e6219c76
parent015670ef672c066b9194b4c8142a55bc8ab5158a (diff)
downloadhdf5-5f14a860da768e49246c6e2cebcf68c553625860.zip
hdf5-5f14a860da768e49246c6e2cebcf68c553625860.tar.gz
hdf5-5f14a860da768e49246c6e2cebcf68c553625860.tar.bz2
[svn-r27571] - h5watch tests are now skipped when the test VFD does not support SWMR.
- General improvements to the h5watch Makefile.am. Tested on: jam w/ HDF5_DRIVER=stdio and sec2
-rw-r--r--MANIFEST1
-rw-r--r--hl/tools/h5watch/Makefile.am9
-rw-r--r--hl/tools/h5watch/Makefile.in38
-rw-r--r--hl/tools/h5watch/swmr_check_compat_vfd.c59
-rw-r--r--hl/tools/h5watch/testh5watch.sh.in15
-rw-r--r--test/swmr_check_compat_vfd.c2
6 files changed, 101 insertions, 23 deletions
diff --git a/MANIFEST b/MANIFEST
index 7665d2e..5365b39 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -2417,6 +2417,7 @@
./hl/tools/h5watch/extend_dset.c
./hl/tools/h5watch/h5watch.c
./hl/tools/h5watch/h5watchgentest.c
+./hl/tools/h5watch/swmr_check_compat_vfd.c
./hl/tools/h5watch/testh5watch.sh.in
# expected test output from testing h5watch
diff --git a/hl/tools/h5watch/Makefile.am b/hl/tools/h5watch/Makefile.am
index 2a2c2f3..a5891ef 100644
--- a/hl/tools/h5watch/Makefile.am
+++ b/hl/tools/h5watch/Makefile.am
@@ -26,19 +26,14 @@ AM_CPPFLAGS+=-I$(top_srcdir)/src -I$(top_srcdir)/tools/lib -I$(top_srcdir)/hl/sr
# These are our main targets, the tools
TEST_SCRIPT=testh5watch.sh
check_SCRIPTS=$(TEST_SCRIPT)
-SCRIPT_DEPEND=h5watch$(EXEEXT)
+SCRIPT_DEPEND=swmr_check_compat_vfd$(EXEEXT) extend_dset$(EXEEXT) h5watch$(EXEEXT)
bin_PROGRAMS=h5watch
-noinst_PROGRAMS=h5watchgentest extend_dset
+noinst_PROGRAMS=swmr_check_compat_vfd h5watchgentest extend_dset
# Add h5watch specific linker flags here
h5watch_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
-h5watch_SOURCES=h5watch.c
-
-h5watchgentest_SOURCES=h5watchgentest.c
-extend_dset_SOURCES=extend_dset.c
-
# Programs all depend on the hdf5 library, the tools library, and the HL
# library.
LDADD=$(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5)
diff --git a/hl/tools/h5watch/Makefile.in b/hl/tools/h5watch/Makefile.in
index 77545ca..afba745 100644
--- a/hl/tools/h5watch/Makefile.in
+++ b/hl/tools/h5watch/Makefile.in
@@ -101,7 +101,8 @@ DIST_COMMON = $(top_srcdir)/config/commence.am \
$(srcdir)/testh5watch.sh.in $(top_srcdir)/bin/depcomp \
$(top_srcdir)/bin/test-driver
bin_PROGRAMS = h5watch$(EXEEXT)
-noinst_PROGRAMS = h5watchgentest$(EXEEXT) extend_dset$(EXEEXT)
+noinst_PROGRAMS = swmr_check_compat_vfd$(EXEEXT) \
+ h5watchgentest$(EXEEXT) extend_dset$(EXEEXT)
TESTS = $(TEST_SCRIPT)
subdir = hl/tools/h5watch
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -115,25 +116,30 @@ CONFIG_CLEAN_FILES = testh5watch.sh
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
-am_extend_dset_OBJECTS = extend_dset.$(OBJEXT)
-extend_dset_OBJECTS = $(am_extend_dset_OBJECTS)
+extend_dset_SOURCES = extend_dset.c
+extend_dset_OBJECTS = extend_dset.$(OBJEXT)
extend_dset_LDADD = $(LDADD)
extend_dset_DEPENDENCIES = $(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
-am_h5watch_OBJECTS = h5watch.$(OBJEXT)
-h5watch_OBJECTS = $(am_h5watch_OBJECTS)
+h5watch_SOURCES = h5watch.c
+h5watch_OBJECTS = h5watch.$(OBJEXT)
h5watch_LDADD = $(LDADD)
h5watch_DEPENDENCIES = $(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5)
h5watch_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(h5watch_LDFLAGS) $(LDFLAGS) -o $@
-am_h5watchgentest_OBJECTS = h5watchgentest.$(OBJEXT)
-h5watchgentest_OBJECTS = $(am_h5watchgentest_OBJECTS)
+h5watchgentest_SOURCES = h5watchgentest.c
+h5watchgentest_OBJECTS = h5watchgentest.$(OBJEXT)
h5watchgentest_LDADD = $(LDADD)
h5watchgentest_DEPENDENCIES = $(LIBH5_HL) $(LIBH5TOOLS) $(LIBHDF5)
+swmr_check_compat_vfd_SOURCES = swmr_check_compat_vfd.c
+swmr_check_compat_vfd_OBJECTS = swmr_check_compat_vfd.$(OBJEXT)
+swmr_check_compat_vfd_LDADD = $(LDADD)
+swmr_check_compat_vfd_DEPENDENCIES = $(LIBH5_HL) $(LIBH5TOOLS) \
+ $(LIBHDF5)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -168,10 +174,10 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-SOURCES = $(extend_dset_SOURCES) $(h5watch_SOURCES) \
- $(h5watchgentest_SOURCES)
-DIST_SOURCES = $(extend_dset_SOURCES) $(h5watch_SOURCES) \
- $(h5watchgentest_SOURCES)
+SOURCES = extend_dset.c h5watch.c h5watchgentest.c \
+ swmr_check_compat_vfd.c
+DIST_SOURCES = extend_dset.c h5watch.c h5watchgentest.c \
+ swmr_check_compat_vfd.c
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@@ -670,13 +676,10 @@ CHECK_CLEANFILES = *.chkexe *.chklog *.clog *.clog2 *.h5
# These are our main targets, the tools
TEST_SCRIPT = testh5watch.sh
check_SCRIPTS = $(TEST_SCRIPT)
-SCRIPT_DEPEND = h5watch$(EXEEXT)
+SCRIPT_DEPEND = swmr_check_compat_vfd$(EXEEXT) extend_dset$(EXEEXT) h5watch$(EXEEXT)
# Add h5watch specific linker flags here
h5watch_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS)
-h5watch_SOURCES = h5watch.c
-h5watchgentest_SOURCES = h5watchgentest.c
-extend_dset_SOURCES = extend_dset.c
# Programs all depend on the hdf5 library, the tools library, and the HL
# library.
@@ -810,6 +813,10 @@ h5watchgentest$(EXEEXT): $(h5watchgentest_OBJECTS) $(h5watchgentest_DEPENDENCIES
@rm -f h5watchgentest$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(h5watchgentest_OBJECTS) $(h5watchgentest_LDADD) $(LIBS)
+swmr_check_compat_vfd$(EXEEXT): $(swmr_check_compat_vfd_OBJECTS) $(swmr_check_compat_vfd_DEPENDENCIES) $(EXTRA_swmr_check_compat_vfd_DEPENDENCIES)
+ @rm -f swmr_check_compat_vfd$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(swmr_check_compat_vfd_OBJECTS) $(swmr_check_compat_vfd_LDADD) $(LIBS)
+
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -819,6 +826,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extend_dset.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/h5watch.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/h5watchgentest.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/swmr_check_compat_vfd.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
diff --git a/hl/tools/h5watch/swmr_check_compat_vfd.c b/hl/tools/h5watch/swmr_check_compat_vfd.c
new file mode 100644
index 0000000..070572c
--- /dev/null
+++ b/hl/tools/h5watch/swmr_check_compat_vfd.c
@@ -0,0 +1,59 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ * 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 files COPYING and Copyright.html. COPYING can be found at the root *
+ * of the source code distribution tree; Copyright.html can be found at the *
+ * root level of an installed copy of the electronic HDF5 document set and *
+ * is linked from the top-level documents page. It can also be found at *
+ * http://hdfgroup.org/HDF5/doc/Copyright.html. 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 SWMR.
+ *
+ * It is intended for use in shell scripts.
+ */
+
+#include <stdlib.h>
+
+#include "H5private.h"
+
+/* This file needs to access the file driver testing code */
+#define H5FD_PACKAGE
+#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)
+{
+ char *driver = NULL;
+
+ driver = HDgetenv("HDF5_DRIVER");
+
+ if(H5FD_supports_swmr_test(driver))
+ return EXIT_SUCCESS;
+ else
+ return EXIT_FAILURE;
+
+} /* end main() */
+
diff --git a/hl/tools/h5watch/testh5watch.sh.in b/hl/tools/h5watch/testh5watch.sh.in
index 6de127e..ff31768 100644
--- a/hl/tools/h5watch/testh5watch.sh.in
+++ b/hl/tools/h5watch/testh5watch.sh.in
@@ -15,6 +15,21 @@
#
# Tests for the h5watch tool
#
+
+# Check to see if the VFD specified by the HDF5_DRIVER environment variable
+# supports SWMR.
+./swmr_check_compat_vfd
+rc=$?
+if [[ $rc != 0 ]] ; then
+ echo
+ echo "The VFD specified by the HDF5_DRIVER environment variable"
+ echo "does not support SWMR."
+ echo
+ echo "h5watch tests skipped"
+ echo
+ exit 0
+fi
+
H5WATCH=h5watch # The tool name
H5WATCH_BIN=`pwd`/$H5WATCH # The path of H5WATCH
EXTEND_DSET=extend_dset # Routine to extend the dataset when watching
diff --git a/test/swmr_check_compat_vfd.c b/test/swmr_check_compat_vfd.c
index e059a69..070572c 100644
--- a/test/swmr_check_compat_vfd.c
+++ b/test/swmr_check_compat_vfd.c
@@ -44,7 +44,7 @@
*-------------------------------------------------------------------------
*/
int
-main(int argc, char *argv[])
+main(void)
{
char *driver = NULL;