diff options
Diffstat (limited to 'c++')
-rw-r--r-- | c++/Makefile.in | 168 | ||||
-rw-r--r-- | c++/examples/Makefile.am | 2 | ||||
-rw-r--r-- | c++/examples/Makefile.in | 176 | ||||
-rw-r--r-- | c++/src/Makefile.in | 168 | ||||
-rw-r--r-- | c++/test/Makefile.in | 168 |
5 files changed, 328 insertions, 354 deletions
diff --git a/c++/Makefile.in b/c++/Makefile.in index 8c10bf9..971b8f5 100644 --- a/c++/Makefile.in +++ b/c++/Makefile.in @@ -279,6 +279,9 @@ H5CC = $(bindir)/h5cc H5CC_PP = $(bindir)/h5pcc H5FC = $(bindir)/h5fc H5FC_PP = $(bindir)/h5pfc + +# .chkexe and .chksh files are used to mark tests that have run successfully. +MOSTLYCLEANFILES = *.chkexe *.chksh @BUILD_CXX_CONDITIONAL_TRUE@SUBDIRS = src test DIST_SUBDIRS = src test examples @@ -294,6 +297,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \ $(EXTRA_PROG) TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST) +TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_) +TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_) +TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_) +TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_) all: all-recursive .SUFFIXES: @@ -533,6 +540,7 @@ install-strip: `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: @@ -634,9 +642,9 @@ build-lib: $(LIB) build-progs: $(LIB) $(PROGS) build-tests: $(LIB) $(PROGS) $(TESTS) -lib progs tests :: - @$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \ - for d in X $(SUBDIRS); do \ +lib progs tests check-s check-p :: + @$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; + @for d in X $(SUBDIRS); do \ if test $$d != X -a $$d != .; then \ (set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -663,71 +671,83 @@ install-doc uninstall-doc: check-TESTS: test test _test: - $(MAKE) _check-s - $(MAKE) _check-p - -# Run check-s/check-p recursively down SUBDIRS -check-s check-p: - @$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \ - for d in X $(SUBDIRS); do \ - if test $$d != X -a $$d != .; then \ - (set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ - fi; \ - done + @$(MAKE) build-check-s + @$(MAKE) build-check-p # Actual execution of check-s. -_check-s: $(LIB) $(PROGS) $(TESTS) +build-check-s: $(LIB) $(PROGS) $(TESTS) @if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \ echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \ - fi - @for test in $(TEST_PROG) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - srcdir="$(srcdir)" \ - $(RUNTESTS) ./$$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ - fi; \ - done; \ - test $$test = dummy || false - @for test in $(TEST_SCRIPT) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ - srcdir="$(srcdir)" \ - /bin/sh $$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ - fi; \ - done; \ - test $$test = dummy || false + fi + @$(MAKE) $(AM_MAKEFLAGS) _exec_check-s @if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \ echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\ fi +_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH) + +# The .chkexe_ here is the "dummy" that prevents the target from being +# empty if there are no tests in the current directory. +$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_: + @if test "X$@" != "X.chkexe_"; then \ + echo "============================"; \ + if test -e $(@:.chkexe_=.chkexe) && \ + test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \ + echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \ + else \ + if test "X$(HDF_FORTRAN)" = "Xyes"; then \ + echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + elif test "X$(HDF_CXX)" = "Xyes"; then \ + echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + else \ + echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + srcdir="$(srcdir)" \ + $(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \ + && touch $(@:.chkexe_=.chkexe) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + exit 1; \ + echo ""; \ + echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + fi + +# The .chksh_ here is the "dummy" that prevents the target from being +# empty if there are no tests in the current directory. +$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_: + @if test "X$@" != "X.chksh_"; then \ + echo "============================"; \ + if test -e $(@:.chksh_=.chksh) && \ + test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \ + echo "No need to test $(@:.chksh_=) again."; \ + else \ + if test "X$(HDF_FORTRAN)" = "Xyes"; then \ + echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + elif test "X$(HDF_CXX)" = "Xyes"; then \ + echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + else \ + echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ + srcdir="$(srcdir)" \ + $(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \ + && touch $(@:.chksh_=.chksh) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + exit 1; \ + echo ""; \ + echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + fi + # Actual execution of check-p. -_check-p: $(LIB) $(PROGS) $(TESTS) +build-check-p: $(LIB) $(PROGS) $(TESTS) @if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \ echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \ - fi + fi @if test -n "$(TEST_PROG_PARA)"; then \ echo "**** Hint ****"; \ echo "Parallel test files reside in the current directory" \ @@ -740,40 +760,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS) fi @for test in $(TEST_PROG_PARA) dummy; do \ if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - srcdir="$(srcdir)" \ - $(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ + $(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \ + RUNTESTS="$(RUNPARALLEL)"; \ fi; \ done; \ test $$test = dummy || false @for test in $(TEST_SCRIPT_PARA) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ - srcdir="$(srcdir)" \ - /bin/sh $$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ + if test $$test != dummy; then \ + $(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \ fi; \ done; \ test $$test = dummy || false diff --git a/c++/examples/Makefile.am b/c++/examples/Makefile.am index e09dd67..671dde6 100644 --- a/c++/examples/Makefile.am +++ b/c++/examples/Makefile.am @@ -39,7 +39,7 @@ INSTALL_FILES=create.cpp readdata.cpp writedata.cpp compound.cpp \ # These are the files that 'make clean' (and derivatives) will remove from this # directory. Since automake doesn't know about the examples, we need to # tell it to clean the example programs, too. -MOSTLYCLEANFILES=*.h5 +MOSTLYCLEANFILES+=*.h5 CLEANFILES=$(EXTRA_PROG) # Tell conclude.am that these are C++ tests. diff --git a/c++/examples/Makefile.in b/c++/examples/Makefile.in index b2ebeba..dec6475 100644 --- a/c++/examples/Makefile.in +++ b/c++/examples/Makefile.in @@ -272,6 +272,13 @@ H5CC_PP = $(bindir)/h5pcc H5FC = $(bindir)/h5fc H5FC_PP = $(bindir)/h5pfc +# .chkexe and .chksh files are used to mark tests that have run successfully. + +# These are the files that 'make clean' (and derivatives) will remove from this +# directory. Since automake doesn't know about the examples, we need to +# tell it to clean the example programs, too. +MOSTLYCLEANFILES = *.chkexe *.chksh *.h5 + # Use h5c++ to build examples, instead of reguar C++ compiler H5CPP = $(bindir)/h5c++ @@ -287,11 +294,6 @@ EXTRA_PROG = $(TEST_PROG) INSTALL_FILES = create.cpp readdata.cpp writedata.cpp compound.cpp \ extend_ds.cpp chunks.cpp h5group.cpp - -# These are the files that 'make clean' (and derivatives) will remove from this -# directory. Since automake doesn't know about the examples, we need to -# tell it to clean the example programs, too. -MOSTLYCLEANFILES = *.h5 CLEANFILES = $(EXTRA_PROG) # Tell conclude.am that these are C++ tests. @@ -312,6 +314,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \ $(EXTRA_PROG) TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST) +TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_) +TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_) +TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_) +TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_) all: all-am .SUFFIXES: @@ -527,9 +533,9 @@ build-lib: $(LIB) build-progs: $(LIB) $(PROGS) build-tests: $(LIB) $(PROGS) $(TESTS) -lib progs tests :: - @$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \ - for d in X $(SUBDIRS); do \ +lib progs tests check-s check-p :: + @$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; + @for d in X $(SUBDIRS); do \ if test $$d != X -a $$d != .; then \ (set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -556,71 +562,83 @@ install-doc uninstall-doc: check-TESTS: test test _test: - $(MAKE) _check-s - $(MAKE) _check-p - -# Run check-s/check-p recursively down SUBDIRS -check-s check-p: - @$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \ - for d in X $(SUBDIRS); do \ - if test $$d != X -a $$d != .; then \ - (set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ - fi; \ - done + @$(MAKE) build-check-s + @$(MAKE) build-check-p # Actual execution of check-s. -_check-s: $(LIB) $(PROGS) $(TESTS) +build-check-s: $(LIB) $(PROGS) $(TESTS) @if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \ echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \ - fi - @for test in $(TEST_PROG) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - srcdir="$(srcdir)" \ - $(RUNTESTS) ./$$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ - fi; \ - done; \ - test $$test = dummy || false - @for test in $(TEST_SCRIPT) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ - srcdir="$(srcdir)" \ - /bin/sh $$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ - fi; \ - done; \ - test $$test = dummy || false + fi + @$(MAKE) $(AM_MAKEFLAGS) _exec_check-s @if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \ echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\ fi +_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH) + +# The .chkexe_ here is the "dummy" that prevents the target from being +# empty if there are no tests in the current directory. +$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_: + @if test "X$@" != "X.chkexe_"; then \ + echo "============================"; \ + if test -e $(@:.chkexe_=.chkexe) && \ + test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \ + echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \ + else \ + if test "X$(HDF_FORTRAN)" = "Xyes"; then \ + echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + elif test "X$(HDF_CXX)" = "Xyes"; then \ + echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + else \ + echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + srcdir="$(srcdir)" \ + $(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \ + && touch $(@:.chkexe_=.chkexe) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + exit 1; \ + echo ""; \ + echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + fi + +# The .chksh_ here is the "dummy" that prevents the target from being +# empty if there are no tests in the current directory. +$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_: + @if test "X$@" != "X.chksh_"; then \ + echo "============================"; \ + if test -e $(@:.chksh_=.chksh) && \ + test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \ + echo "No need to test $(@:.chksh_=) again."; \ + else \ + if test "X$(HDF_FORTRAN)" = "Xyes"; then \ + echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + elif test "X$(HDF_CXX)" = "Xyes"; then \ + echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + else \ + echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ + srcdir="$(srcdir)" \ + $(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \ + && touch $(@:.chksh_=.chksh) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + exit 1; \ + echo ""; \ + echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + fi + # Actual execution of check-p. -_check-p: $(LIB) $(PROGS) $(TESTS) +build-check-p: $(LIB) $(PROGS) $(TESTS) @if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \ echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \ - fi + fi @if test -n "$(TEST_PROG_PARA)"; then \ echo "**** Hint ****"; \ echo "Parallel test files reside in the current directory" \ @@ -633,40 +651,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS) fi @for test in $(TEST_PROG_PARA) dummy; do \ if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - srcdir="$(srcdir)" \ - $(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ + $(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \ + RUNTESTS="$(RUNPARALLEL)"; \ fi; \ done; \ test $$test = dummy || false @for test in $(TEST_SCRIPT_PARA) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ - srcdir="$(srcdir)" \ - /bin/sh $$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ + if test $$test != dummy; then \ + $(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \ fi; \ done; \ test $$test = dummy || false diff --git a/c++/src/Makefile.in b/c++/src/Makefile.in index 0bcf7c7..14b13a0 100644 --- a/c++/src/Makefile.in +++ b/c++/src/Makefile.in @@ -314,6 +314,9 @@ H5CC_PP = $(bindir)/h5pcc H5FC = $(bindir)/h5fc H5FC_PP = $(bindir)/h5pfc +# .chkexe and .chksh files are used to mark tests that have run successfully. +MOSTLYCLEANFILES = *.chkexe *.chksh + # Include src directory INCLUDES = -I$(top_srcdir)/src @@ -364,6 +367,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \ $(EXTRA_PROG) TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST) +TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_) +TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_) +TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_) +TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_) all: all-am .SUFFIXES: @@ -628,6 +635,7 @@ install-strip: `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: @@ -712,9 +720,9 @@ build-lib: $(LIB) build-progs: $(LIB) $(PROGS) build-tests: $(LIB) $(PROGS) $(TESTS) -lib progs tests :: - @$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \ - for d in X $(SUBDIRS); do \ +lib progs tests check-s check-p :: + @$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; + @for d in X $(SUBDIRS); do \ if test $$d != X -a $$d != .; then \ (set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -741,71 +749,83 @@ install-doc uninstall-doc: check-TESTS: test test _test: - $(MAKE) _check-s - $(MAKE) _check-p - -# Run check-s/check-p recursively down SUBDIRS -check-s check-p: - @$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \ - for d in X $(SUBDIRS); do \ - if test $$d != X -a $$d != .; then \ - (set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ - fi; \ - done + @$(MAKE) build-check-s + @$(MAKE) build-check-p # Actual execution of check-s. -_check-s: $(LIB) $(PROGS) $(TESTS) +build-check-s: $(LIB) $(PROGS) $(TESTS) @if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \ echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \ - fi - @for test in $(TEST_PROG) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - srcdir="$(srcdir)" \ - $(RUNTESTS) ./$$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ - fi; \ - done; \ - test $$test = dummy || false - @for test in $(TEST_SCRIPT) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ - srcdir="$(srcdir)" \ - /bin/sh $$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ - fi; \ - done; \ - test $$test = dummy || false + fi + @$(MAKE) $(AM_MAKEFLAGS) _exec_check-s @if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \ echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\ fi +_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH) + +# The .chkexe_ here is the "dummy" that prevents the target from being +# empty if there are no tests in the current directory. +$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_: + @if test "X$@" != "X.chkexe_"; then \ + echo "============================"; \ + if test -e $(@:.chkexe_=.chkexe) && \ + test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \ + echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \ + else \ + if test "X$(HDF_FORTRAN)" = "Xyes"; then \ + echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + elif test "X$(HDF_CXX)" = "Xyes"; then \ + echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + else \ + echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + srcdir="$(srcdir)" \ + $(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \ + && touch $(@:.chkexe_=.chkexe) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + exit 1; \ + echo ""; \ + echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + fi + +# The .chksh_ here is the "dummy" that prevents the target from being +# empty if there are no tests in the current directory. +$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_: + @if test "X$@" != "X.chksh_"; then \ + echo "============================"; \ + if test -e $(@:.chksh_=.chksh) && \ + test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \ + echo "No need to test $(@:.chksh_=) again."; \ + else \ + if test "X$(HDF_FORTRAN)" = "Xyes"; then \ + echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + elif test "X$(HDF_CXX)" = "Xyes"; then \ + echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + else \ + echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ + srcdir="$(srcdir)" \ + $(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \ + && touch $(@:.chksh_=.chksh) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + exit 1; \ + echo ""; \ + echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + fi + # Actual execution of check-p. -_check-p: $(LIB) $(PROGS) $(TESTS) +build-check-p: $(LIB) $(PROGS) $(TESTS) @if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \ echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \ - fi + fi @if test -n "$(TEST_PROG_PARA)"; then \ echo "**** Hint ****"; \ echo "Parallel test files reside in the current directory" \ @@ -818,40 +838,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS) fi @for test in $(TEST_PROG_PARA) dummy; do \ if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - srcdir="$(srcdir)" \ - $(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ + $(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \ + RUNTESTS="$(RUNPARALLEL)"; \ fi; \ done; \ test $$test = dummy || false @for test in $(TEST_SCRIPT_PARA) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ - srcdir="$(srcdir)" \ - /bin/sh $$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ + if test $$test != dummy; then \ + $(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \ fi; \ done; \ test $$test = dummy || false diff --git a/c++/test/Makefile.in b/c++/test/Makefile.in index 61b2e33..7a39216 100644 --- a/c++/test/Makefile.in +++ b/c++/test/Makefile.in @@ -303,6 +303,9 @@ H5CC_PP = $(bindir)/h5pcc H5FC = $(bindir)/h5fc H5FC_PP = $(bindir)/h5pfc +# .chkexe and .chksh files are used to mark tests that have run successfully. +MOSTLYCLEANFILES = *.chkexe *.chksh + # Include src, test, and c++/src directories INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/c++/src @@ -333,6 +336,10 @@ PROGS = $(bin_PROGRAMS) $(bin_SCRIPTS) $(noinst_PROGRAMS) $(noinst_SCRIPTS) \ $(EXTRA_PROG) TESTS = $(check_PROGRAMS) $(check_SCRIPTS) $(EXTRA_TEST) +TEST_PROG_CHKEXE = $(TEST_PROG:=.chkexe_) +TEST_PROG_PARA_CHKEXE = $(TEST_PROG_PARA:=.chkexe_) +TEST_SCRIPT_CHKSH = $(TEST_SCRIPT:=.chksh_) +TEST_SCRIPT_PARA_CHKSH = $(TEST_SCRIPT_PARA:=.chksh_) all: all-am .SUFFIXES: @@ -521,6 +528,7 @@ install-strip: `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: @@ -600,9 +608,9 @@ build-lib: $(LIB) build-progs: $(LIB) $(PROGS) build-tests: $(LIB) $(PROGS) $(TESTS) -lib progs tests :: - @$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; \ - for d in X $(SUBDIRS); do \ +lib progs tests check-s check-p :: + @$(MAKE) $(AM_MAKEFLAGS) build-$@ || exit 1; + @for d in X $(SUBDIRS); do \ if test $$d != X -a $$d != .; then \ (set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ fi; \ @@ -629,71 +637,83 @@ install-doc uninstall-doc: check-TESTS: test test _test: - $(MAKE) _check-s - $(MAKE) _check-p - -# Run check-s/check-p recursively down SUBDIRS -check-s check-p: - @$(MAKE) $(AM_MAKEFLAGS) _$@ || exit 1; \ - for d in X $(SUBDIRS); do \ - if test $$d != X -a $$d != .; then \ - (set -x; cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \ - fi; \ - done + @$(MAKE) build-check-s + @$(MAKE) build-check-p # Actual execution of check-s. -_check-s: $(LIB) $(PROGS) $(TESTS) +build-check-s: $(LIB) $(PROGS) $(TESTS) @if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \ echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \ - fi - @for test in $(TEST_PROG) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - srcdir="$(srcdir)" \ - $(RUNTESTS) ./$$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ - fi; \ - done; \ - test $$test = dummy || false - @for test in $(TEST_SCRIPT) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ - srcdir="$(srcdir)" \ - /bin/sh $$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ - fi; \ - done; \ - test $$test = dummy || false + fi + @$(MAKE) $(AM_MAKEFLAGS) _exec_check-s @if test -n "$(TEST_PROG)$(TEST_SCRIPT)"; then \ echo "===Serial tests in `echo ${PWD} | sed -e s:.*/::` ended `date`===";\ fi +_exec_check-s: $(TEST_PROG_CHKEXE) $(TEST_SCRIPT_CHKSH) + +# The .chkexe_ here is the "dummy" that prevents the target from being +# empty if there are no tests in the current directory. +$(TEST_PROG_CHKEXE) $(TEST_PROG_PARA_CHKEXE) .chkexe_: + @if test "X$@" != "X.chkexe_"; then \ + echo "============================"; \ + if test -e $(@:.chkexe_=.chkexe) && \ + test $(@:.chkexe_=.chkexe) -nt $(@:.chkexe_=)$(EXEEXT); then \ + echo "No need to test $(@:.chkexe_=)$(EXEEXT) again."; \ + else \ + if test "X$(HDF_FORTRAN)" = "Xyes"; then \ + echo "Fortran API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + elif test "X$(HDF_CXX)" = "Xyes"; then \ + echo "C++ API: Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + else \ + echo "Testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + srcdir="$(srcdir)" \ + $(RUNTESTS) ./$(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS) \ + && touch $(@:.chkexe_=.chkexe) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + exit 1; \ + echo ""; \ + echo "Finished testing $(@:.chkexe_=)$(EXEEXT) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + fi + +# The .chksh_ here is the "dummy" that prevents the target from being +# empty if there are no tests in the current directory. +$(TEST_SCRIPT_CHKSH) $(TEST_SCRIPT_PARA_CHKSH) .chksh_: + @if test "X$@" != "X.chksh_"; then \ + echo "============================"; \ + if test -e $(@:.chksh_=.chksh) && \ + test $(@:.chksh_=.chksh) -nt $(@:.chksh_=); then \ + echo "No need to test $(@:.chksh_=) again."; \ + else \ + if test "X$(HDF_FORTRAN)" = "Xyes"; then \ + echo "Fortran API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + elif test "X$(HDF_CXX)" = "Xyes"; then \ + echo "C++ API: Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + else \ + echo "Testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ + srcdir="$(srcdir)" \ + $(SHELL) ./$(@:.chksh_=) $(TEST_FLAGS) \ + && touch $(@:.chksh_=.chksh) || \ + (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ + exit 1; \ + echo ""; \ + echo "Finished testing $(@:.chksh_=) $(TEST_FLAGS)"; \ + fi; \ + echo "============================"; \ + fi + # Actual execution of check-p. -_check-p: $(LIB) $(PROGS) $(TESTS) +build-check-p: $(LIB) $(PROGS) $(TESTS) @if test -n "$(TEST_PROG_PARA)$(TEST_SCRIPT_PARA)"; then \ echo "===Parallel tests in `echo ${PWD} | sed -e s:.*/::` begin `date`==="; \ - fi + fi @if test -n "$(TEST_PROG_PARA)"; then \ echo "**** Hint ****"; \ echo "Parallel test files reside in the current directory" \ @@ -706,40 +726,14 @@ _check-p: $(LIB) $(PROGS) $(TESTS) fi @for test in $(TEST_PROG_PARA) dummy; do \ if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - srcdir="$(srcdir)" \ - $(RUNPARALLEL) ./$$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ + $(MAKE) $(AM_MAKEFLAGS) $$test.chkexe_ \ + RUNTESTS="$(RUNPARALLEL)"; \ fi; \ done; \ test $$test = dummy || false @for test in $(TEST_SCRIPT_PARA) dummy; do \ - if test $$test != dummy; then \ - echo "============================"; \ - if test "X$(HDF_FORTRAN)" = "Xyes"; then \ - echo "Fortran API: Testing $$test $(TEST_FLAGS)"; \ - elif test "X$(HDF_CXX)" = "Xyes"; then \ - echo "C++ API: Testing $$test $(TEST_FLAGS)"; \ - else \ - echo "Testing $$test $(TEST_FLAGS)"; \ - fi; \ - echo "============================"; \ - RUNSERIAL="$(RUNSERIAL)" RUNPARALLEL="$(RUNPARALLEL)" \ - srcdir="$(srcdir)" \ - /bin/sh $$test $(TEST_FLAGS) || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - break; \ - echo ""; \ + if test $$test != dummy; then \ + $(MAKE) $(AM_MAKEFLAGS) $$test.chksh_; \ fi; \ done; \ test $$test = dummy || false |