1#
2# Copyright by The HDF Group.
3# All rights reserved.
4#
5# This file is part of HDF5.  The full HDF5 copyright notice, including
6# terms governing use, modification, and redistribution, is contained in
7# the COPYING file, which can be found at the root of the source code
8# distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases.
9# If you do not have access to either file, you may request a copy from
10# help@hdfgroup.org.
11#
12
13##############################################################################
14##############################################################################
15###           T E S T I N G                                                ###
16##############################################################################
17##############################################################################
18
19HDFTEST_COPY_FILE("${HDF5_TOOLS_DIR}/testfiles/tfilters.h5" "${PROJECT_BINARY_DIR}/tfilters.h5" "zip_perf_files")
20add_custom_target(zip_perf_files ALL COMMENT "Copying files needed by zip_perf tests" DEPENDS ${zip_perf_list})
21
22#-----------------------------------------------------------------------------
23# Add Tests
24#-----------------------------------------------------------------------------
25
26# Remove any output file left over from previous test run
27add_test (
28    NAME PERFORM_h5perform-clearall-objects
29    COMMAND    ${CMAKE_COMMAND}
30        -E remove
31        chunk.h5
32        iopipe.h5
33        iopipe.raw
34        x-diag-rd.dat
35        x-diag-wr.dat
36        x-rowmaj-rd.dat
37        x-rowmaj-wr.dat
38        x-gnuplot
39        h5perf_serial.txt
40        h5perf_serial.txt.err
41        chunk.txt
42        chunk.txt.err
43        iopipe.txt
44        iopipe.txt.err
45        overhead.txt
46        overhead.txt.err
47        perf_meta.txt
48        perf_meta.txt.err
49        zip_perf-h.txt
50        zip_perf-h.txt.err
51        zip_perf.txt
52        zip_perf.txt.err
53)
54
55if (HDF5_ENABLE_USING_MEMCHECKER)
56  add_test (NAME PERFORM_h5perf_serial COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5perf_serial>)
57else ()
58  add_test (NAME PERFORM_h5perf_serial COMMAND "${CMAKE_COMMAND}"
59      -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
60      -D "TEST_PROGRAM=$<TARGET_FILE:h5perf_serial>"
61      -D "TEST_ARGS:STRING="
62      -D "TEST_EXPECT=0"
63      -D "TEST_SKIP_COMPARE=TRUE"
64      -D "TEST_OUTPUT=h5perf_serial.txt"
65      #-D "TEST_REFERENCE=h5perf_serial.out"
66      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
67      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
68  )
69endif ()
70set_tests_properties (PERFORM_h5perf_serial PROPERTIES
71    TIMEOUT ${CTEST_VERY_LONG_TIMEOUT}
72    DEPENDS "PERFORM_h5perform-clearall-objects"
73)
74
75if (HDF5_BUILD_PERFORM_STANDALONE)
76  add_test (NAME PERFORM_h5perf_serial_alone COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:h5perf_serial_alone>)
77endif ()
78
79if (HDF5_ENABLE_USING_MEMCHECKER)
80  add_test (NAME PERFORM_chunk COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:chunk>)
81else ()
82  add_test (NAME PERFORM_chunk COMMAND "${CMAKE_COMMAND}"
83      -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
84      -D "TEST_PROGRAM=$<TARGET_FILE:chunk>"
85      -D "TEST_ARGS:STRING="
86      -D "TEST_EXPECT=0"
87      -D "TEST_SKIP_COMPARE=TRUE"
88      -D "TEST_OUTPUT=chunk.txt"
89      #-D "TEST_REFERENCE=chunk.out"
90      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
91      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
92  )
93endif ()
94set_tests_properties (PERFORM_chunk PROPERTIES
95    DEPENDS "PERFORM_h5perform-clearall-objects"
96)
97
98if (HDF5_ENABLE_USING_MEMCHECKER)
99  add_test (NAME PERFORM_iopipe COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:iopipe>)
100else ()
101  add_test (NAME PERFORM_iopipe COMMAND "${CMAKE_COMMAND}"
102      -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
103      -D "TEST_PROGRAM=$<TARGET_FILE:iopipe>"
104      -D "TEST_ARGS:STRING="
105      -D "TEST_EXPECT=0"
106      -D "TEST_SKIP_COMPARE=TRUE"
107      -D "TEST_OUTPUT=iopipe.txt"
108      #-D "TEST_REFERENCE=iopipe.out"
109      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
110      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
111  )
112endif ()
113set_tests_properties (PERFORM_iopipe PROPERTIES
114    DEPENDS "PERFORM_h5perform-clearall-objects"
115)
116
117if (HDF5_ENABLE_USING_MEMCHECKER)
118  add_test (NAME PERFORM_overhead COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:overhead>)
119else ()
120  add_test (NAME PERFORM_overhead COMMAND "${CMAKE_COMMAND}"
121      -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
122      -D "TEST_PROGRAM=$<TARGET_FILE:overhead>"
123      -D "TEST_ARGS:STRING="
124      -D "TEST_EXPECT=0"
125      -D "TEST_SKIP_COMPARE=TRUE"
126      -D "TEST_OUTPUT=overhead.txt"
127      #-D "TEST_REFERENCE=overhead.out"
128      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
129      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
130  )
131endif ()
132set_tests_properties (PERFORM_overhead PROPERTIES
133    DEPENDS "PERFORM_h5perform-clearall-objects"
134)
135
136if (HDF5_ENABLE_USING_MEMCHECKER)
137  add_test (NAME PERFORM_perf_meta COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:perf_meta>)
138else ()
139  add_test (NAME PERFORM_perf_meta COMMAND "${CMAKE_COMMAND}"
140      -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
141      -D "TEST_PROGRAM=$<TARGET_FILE:perf_meta>"
142      -D "TEST_ARGS:STRING="
143      -D "TEST_EXPECT=0"
144      -D "TEST_SKIP_COMPARE=TRUE"
145      -D "TEST_OUTPUT=perf_meta.txt"
146      #-D "TEST_REFERENCE=perf_meta.out"
147      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
148      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
149  )
150endif ()
151set_tests_properties (PERFORM_perf_meta PROPERTIES
152    DEPENDS "PERFORM_h5perform-clearall-objects"
153)
154
155if (HDF5_ENABLE_USING_MEMCHECKER)
156  add_test (NAME PERFORM_zip_perf_help COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:zip_perf> "-h")
157else ()
158  add_test (NAME PERFORM_zip_perf_help COMMAND "${CMAKE_COMMAND}"
159      -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
160      -D "TEST_PROGRAM=$<TARGET_FILE:zip_perf>"
161      -D "TEST_ARGS:STRING="
162      -D "TEST_EXPECT=0"
163      -D "TEST_SKIP_COMPARE=TRUE"
164      -D "TEST_OUTPUT=zip_perf-h.txt"
165      #-D "TEST_REFERENCE=zip_perf-h.out"
166      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
167      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
168  )
169endif ()
170set_tests_properties (PERFORM_zip_perf_help PROPERTIES
171    DEPENDS "PERFORM_h5perform-clearall-objects"
172)
173
174if (HDF5_ENABLE_USING_MEMCHECKER)
175  add_test (NAME PERFORM_zip_perf COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:zip_perf> tfilters.h5)
176else ()
177  add_test (NAME PERFORM_zip_perf COMMAND "${CMAKE_COMMAND}"
178      -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
179      -D "TEST_PROGRAM=$<TARGET_FILE:zip_perf>"
180      -D "TEST_ARGS:STRING="
181      -D "TEST_EXPECT=0"
182      -D "TEST_SKIP_COMPARE=TRUE"
183      -D "TEST_OUTPUT=zip_perf.txt"
184      #-D "TEST_REFERENCE=zip_perf.out"
185      -D "TEST_FOLDER=${PROJECT_BINARY_DIR}"
186      -P "${HDF_RESOURCES_EXT_DIR}/runTest.cmake"
187  )
188endif ()
189set_tests_properties (PERFORM_zip_perf PROPERTIES
190    DEPENDS "PERFORM_zip_perf_help;PERFORM_h5perform-clearall-objects"
191)
192
193if (H5_HAVE_PARALLEL)
194  if (UNIX)
195    add_test (NAME MPI_TEST_PERFORM_perf COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:perf> ${MPIEXEC_POSTFLAGS})
196  endif ()
197
198  add_test (NAME MPI_TEST_PERFORM_h5perf COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:h5perf> ${MPIEXEC_POSTFLAGS})
199
200  if (HDF5_BUILD_PERFORM_STANDALONE)
201    add_test (NAME MPI_TEST_PERFORM_h5perf_alone COMMAND ${MPIEXEC_EXECUTABLE} ${MPIEXEC_NUMPROC_FLAG} ${MPIEXEC_MAX_NUMPROCS} ${MPIEXEC_PREFLAGS} $<TARGET_FILE:h5perf_alone> ${MPIEXEC_POSTFLAGS})
202  endif ()
203endif ()
204