summaryrefslogtreecommitdiffstats
path: root/examples/run-c-ex.sh.in
blob: b5616171d9c2d1dbd1f7a35ec39e1d550ae1c387 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#! /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 COPYING file, which can be found at the root of the source code
# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
# 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 @examplesdir@/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

#
# Try to derive the path to the installation $prefix established
# by ./configure relative to the examples directory established by
# ./configure.  If successful, set `prefix_relto_examplesdir` to the
# relative path.  Otherwise, set `prefix_relto_examplesdir` to the
# absolute installation $prefix.
#
# This script uses the value of `prefix` in the user's environment, if
# it is set, below.  The content of $() is evaluated in a sub-shell, so
# if `prefix` is set in the user's environment, the shell statements in
# $() won't clobbered it.
#
prefix_relto_examplesdir=$(
prefix=@prefix@
examplesdir=@examplesdir@
if [ ${examplesdir##${prefix}/} != ${examplesdir} ]; then
	echo $(echo ${examplesdir##${prefix}/} | \
	    sed -E 's,[^/]+,..,g')
else
	echo $prefix
fi
)

# Where the tool is installed.
# default is relative path to installed location of the tools 
prefix="${prefix:-../${prefix_relto_examplesdir}}"
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_EXEC=$1
    Test=$1".c"

    echo
    echo "#################  $1  #################"
    ${H5TOOL_BIN} -o $TEST_EXEC $Test
    if [ $? -ne 0 ]
    then
        echo "messed up compiling $Test"
        exit 1
    fi
    ./$TEST_EXEC
}



##################  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_crtdat &&\
        rm h5_crtdat &&\
        RunTest h5_extend &&\
        rm h5_extend &&\
        RunTest h5_rdwt &&\
        rm h5_rdwt &&\
        RunTest h5_crtatt &&\
        rm h5_crtatt &&\
        RunTest h5_crtgrp &&\
        rm h5_crtgrp &&\
        RunTest h5_crtgrpar &&\
        rm h5_crtgrpar &&\
        RunTest h5_crtgrpd &&\
        rm h5_crtgrpd &&\
        RunTest h5_subset &&\
        rm h5_subset &&\
        RunTest h5_cmprss &&\
        rm h5_cmprss &&\
        RunTest h5_write &&\
        rm h5_write &&\
        RunTest h5_read &&\
        rm h5_read &&\
        RunTest h5_extend_write &&\
        rm h5_extend_write &&\
        RunTest h5_chunk_read &&\
        rm h5_chunk_read &&\
        RunTest h5_compound &&\
        rm h5_compound &&\
        RunTest h5_group &&\
        rm h5_group &&\
        RunTest h5_select &&\
        rm h5_select &&\
        RunTest h5_attribute &&\
        rm h5_attribute &&\
        RunTest h5_mount &&\
        rm h5_mount &&\
        RunTest h5_reference_deprec &&\
        rm h5_reference_deprec &&\
        RunTest h5_ref_extern &&\
        rm h5_ref_extern &&\
        RunTest h5_ref_compat &&\
        rm h5_ref_compat &&\
        RunTest h5_drivers &&\
        rm h5_drivers &&\
        RunTest h5_ref2reg_deprec &&\
        rm h5_ref2reg_deprec &&\
        RunTest h5_extlink &&\
        rm h5_extlink &&\
        RunTest h5_elink_unix2win &&\
        rm h5_elink_unix2win &&\
        RunTest h5_shared_mesg &&\
        rm h5_shared_mesg &&\
        RunTest h5_vds-eiger &&\
        rm h5_vds-eiger &&\
        RunTest h5_vds-exclim &&\
        rm h5_vds-exclim &&\
        RunTest h5_vds-exc &&\
        rm h5_vds-exc &&\
        RunTest h5_vds-simpleIO &&\
        rm h5_vds-simpleIO &&\
        RunTest h5_vds-percival &&\
        rm h5_vds-percival &&\
        RunTest h5_vds-percival-unlim &&\
        rm h5_vds-percival-unlim &&\
        RunTest h5_vds-percival-unlim-maxmin&&\
        rm h5_vds-percival-unlim-maxmin &&\
        RunTest h5_vds &&\
        rm h5_vds); then
        EXIT_VALUE=${EXIT_SUCCESS}
    else
        EXIT_VALUE=${EXIT_FAILURE}
    fi
fi

# Cleanup
rm *.o
rm *.h5
rm -rf red blue u2w
echo

exit $EXIT_VALUE