summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorLarry Knox <lrknox@hdfgroup.org>2010-05-14 22:05:48 (GMT)
committerLarry Knox <lrknox@hdfgroup.org>2010-05-14 22:05:48 (GMT)
commit96c13847a638a0a028afb2f1b31a513bf70110e4 (patch)
treea5765725e789930d0d4bbed08a604486f8a8ac64 /examples
parent5c2734ec514de41c773de7b22027eeff8fd2dace (diff)
downloadhdf5-96c13847a638a0a028afb2f1b31a513bf70110e4.zip
hdf5-96c13847a638a0a028afb2f1b31a513bf70110e4.tar.gz
hdf5-96c13847a638a0a028afb2f1b31a513bf70110e4.tar.bz2
[svn-r18817] Added scripts to compile and run installed examples. The scripts are installed with the examples, and there is one script to run the scripts for all hl examples and another to run the scripts for all the examples.
Tested: amani, jam, linew (h5committest).
Diffstat (limited to 'examples')
-rw-r--r--examples/Makefile.am5
-rw-r--r--examples/Makefile.in32
-rwxr-xr-xexamples/run-all-ex.sh40
-rwxr-xr-xexamples/run-c-ex.sh.in108
4 files changed, 181 insertions, 4 deletions
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 9143baa..92830df 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -41,6 +41,10 @@ INSTALL_FILES = h5_write.c h5_read.c h5_extend_write.c h5_chunk_read.c \
h5_reference.c h5_drivers.c h5_extlink.c h5_elink_unix2win.c \
h5_ref2reg.c h5_shared_mesg.c ph5example.c
+INSTALL_SCRIPT_FILES = run-c-ex.sh
+
+INSTALL_TOP_SCRIPT_FILES = run-all-ex.sh
+
# How to build examples, using installed version of h5cc
if BUILD_PARALLEL_CONDITIONAL
$(EXTRA_PROG): $(H5CC_PP)
@@ -66,6 +70,7 @@ CHECK_CLEANFILES+=$(EXTLINK_DIRS)
# Example directory
EXAMPLEDIR=${DESTDIR}/$(exec_prefix)/share/hdf5_examples/c
+EXAMPLETOPDIR=${DESTDIR}/$(exec_prefix)/share/hdf5_examples
# List dependencies for each program. Normally, automake would take
# care of this for us, but if we tell automake about the programs it
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 8e556e9..fee596a 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -55,7 +55,8 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/testh5cc.sh.in $(top_srcdir)/config/commence.am \
+ $(srcdir)/run-c-ex.sh.in $(srcdir)/testh5cc.sh.in \
+ $(top_srcdir)/config/commence.am \
$(top_srcdir)/config/conclude.am \
$(top_srcdir)/config/examples.am
TESTS =
@@ -66,7 +67,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/bin/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/src/H5config.h
-CONFIG_CLEAN_FILES = testh5cc.sh
+CONFIG_CLEAN_FILES = run-c-ex.sh testh5cc.sh
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
@@ -350,6 +351,8 @@ INSTALL_FILES = h5_write.c h5_read.c h5_extend_write.c h5_chunk_read.c \
h5_reference.c h5_drivers.c h5_extlink.c h5_elink_unix2win.c \
h5_ref2reg.c h5_shared_mesg.c ph5example.c
+INSTALL_SCRIPT_FILES = run-c-ex.sh
+INSTALL_TOP_SCRIPT_FILES = run-all-ex.sh
# The external link examples demonstrate how to use paths; they need
# directories to be created to do this.
@@ -357,6 +360,7 @@ EXTLINK_DIRS = red blue u2w
# Example directory
EXAMPLEDIR = ${DESTDIR}/$(exec_prefix)/share/hdf5_examples/c
+EXAMPLETOPDIR = ${DESTDIR}/$(exec_prefix)/share/hdf5_examples
# Assume that all tests in this directory are examples, and tell
# conclude.am when to build them.
@@ -415,6 +419,8 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
+run-c-ex.sh: $(top_builddir)/config.status $(srcdir)/run-c-ex.sh.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
testh5cc.sh: $(top_builddir)/config.status $(srcdir)/testh5cc.sh.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
@@ -629,6 +635,8 @@ h5_shared_mesg: $(srcdir)/h5_shared_mesg.c
# How to create EXAMPLEDIR if it doesn't already exist
$(EXAMPLEDIR):
-$(top_srcdir)/bin/mkdirs $@
+$(EXAMPLETOPDIR):
+ -$(top_srcdir)/bin/mkdirs $@
# Install and uninstall rules. We install the source files, not the
# example programs themselves.
@@ -643,10 +651,26 @@ install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
(set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);\
fi; \
done
+ @for f in X $(INSTALL_SCRIPT_FILES); do \
+ if test $$f != X; then \
+ (set -x; $(INSTALL) $$f $(EXAMPLEDIR)/. || exit 1);\
+ fi; \
+ done
+ @for f in X $(INSTALL_TOP_SCRIPT_FILES); do \
+ if test $$f != X; then \
+ (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLETOPDIR)/. || exit 1); \
+ fi; \
+ done
uninstall-examples:
- @if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
- set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
+ @if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
+ set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
+ fi
+ @if test -n "$(INSTALL_SCRIPT_FILES)" -a -d $(EXAMPLEDIR); then \
+ set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_SCRIPT_FILES); \
+ fi
+ @if test -n "$(INSTALL_TOP_SCRIPT_FILES)" -a -d $(EXAMPLETOPDIR); then \
+ set -x; cd $(EXAMPLETOPDIR) && $(RM) $(INSTALL_TOP_SCRIPT_FILES); \
fi
installcheck-local:
diff --git a/examples/run-all-ex.sh b/examples/run-all-ex.sh
new file mode 100755
index 0000000..e96b86f
--- /dev/null
+++ b/examples/run-all-ex.sh
@@ -0,0 +1,40 @@
+#! /bin/sh
+#
+# Copyright by The HDF Group.
+# 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.
+
+#
+# This file: run-hl-ex.sh
+# Written by: Larry Knox
+# Date: May 11, 2010
+#
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# #
+# This script will run the scripts to compile and run the installed hdf5 #
+# examples. #
+# #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+if (echo "Run c examples" && \
+ (cd c; sh ./run-c-ex.sh) && \
+ echo "Run fortran examples" && \
+ (cd fortran; sh ./run-fortran-ex.sh) && \
+ echo "Run c++ examples" && \
+ (cd c++; sh ./run-c++-ex.sh) && \
+ echo "Run hl examples." && \
+ (cd hl; sh ./run-hl-ex.sh)); then
+ echo "Done"
+ exit 0
+else
+ exit 1
+fi
+
diff --git a/examples/run-c-ex.sh.in b/examples/run-c-ex.sh.in
new file mode 100755
index 0000000..09ff2fc
--- /dev/null
+++ b/examples/run-c-ex.sh.in
@@ -0,0 +1,108 @@
+#! /bin/sh
+#
+# Copyright by The HDF Group.
+# 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.
+
+#
+# This file: run-c-ex.sh
+# Written by: Larry Knox
+# Date: May 11, 2010
+#
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# #
+# This script will compile and run the c examples from source files installed #
+# in .../share/hdf5_examples/c using h5cc or h5pc. The order for running #
+# programs with RunTest in the MAIN section below is taken from the Makefile. #
+# The order is important since some of the test programs use data files created #
+# by earlier test programs. Any future additions should be placed accordingly. #
+# #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+# Initializations
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+# Where the tool is installed.
+prefix="${prefix:-${DESTDIR}/@prefix@}"
+PARALLEL=@PARALLEL@ # Am I in parallel mode?
+AR="@AR@"
+RANLIB="@RANLIB@"
+if [ "$PARALLEL" = no ]; then
+ H5TOOL="h5cc" # The tool name
+else
+ H5TOOL="h5pcc" # The tool name
+fi
+H5TOOL_BIN="${prefix}/bin/${H5TOOL}" # The path of the tool binary
+
+#### Run test ####
+RunTest()
+{
+ Test=$1".c"
+
+ echo
+ echo "################# $1 #################"
+ ${H5TOOL_BIN} $Test
+ if [ $? -ne 0 ]
+ then
+ echo "messed up compiling $Test"
+ exit 1
+ fi
+ ./a.out
+}
+
+
+
+################## MAIN ##################
+
+if ! test -d red; then
+ mkdir red
+fi
+if ! test -d blue; then
+ mkdir blue
+fi
+if ! test -d u2w; then
+ mkdir u2w
+fi
+
+# Run tests
+if [ $? -eq 0 ]
+then
+ if (RunTest h5_write &&\
+ RunTest h5_read &&\
+ RunTest h5_extend_write &&\
+ RunTest h5_chunk_read &&\
+ RunTest h5_compound &&\
+ RunTest h5_group &&\
+ RunTest h5_select &&\
+ RunTest h5_attribute &&\
+ RunTest h5_mount &&\
+ RunTest h5_reference &&\
+ RunTest h5_drivers &&\
+ RunTest h5_ref2reg &&\
+ RunTest h5_extlink &&\
+ RunTest h5_elink_unix2win &&\
+ RunTest h5_shared_mesg); then
+ EXIT_VALUE=${EXIT_SUCCESS}
+ else
+ EXIT_VALUE=${EXIT_FAILURE}
+ fi
+fi
+
+# Cleanup
+rm a.out
+rm *.o
+rm *.h5
+rm -rf red blue u2w
+echo
+
+exit $EXIT_VALUE
+