summaryrefslogtreecommitdiffstats
path: root/hl/test/CMakeTests.cmake
blob: 6ec5f29a534e16cb04c346b41aad82ccd21e68a1 (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
#
# 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://www.hdfgroup.org/licenses.
# If you do not have access to either file, you may request a copy from
# help@hdfgroup.org.
#

##############################################################################
##############################################################################
###           T E S T I N G                                                ###
##############################################################################
##############################################################################

set (HL_REFERENCE_TEST_FILES
    dtype_file.txt
    image8.txt
    sepia.pal
    earth.pal
    image24pixel.txt
    image24plane.txt
    usa.wri
    test_table_be.h5
    test_table_cray.h5
    test_table_le.h5
    dsdata.txt
    dslat.txt
    dslon.txt
    test_ds_be.h5
    test_ds_be_new_ref.h5
    test_ds_le.h5
    test_ds_le_new_ref.h5
    test_ld.h5
)

# --------------------------------------------------------------------
#-- Copy the necessary files.
# --------------------------------------------------------------------
foreach (h5_file ${HL_REFERENCE_TEST_FILES})
  HDFTEST_COPY_FILE("${PROJECT_SOURCE_DIR}/testfiles/${h5_file}" "${HDF5_HL_TEST_BINARY_DIR}/testfiles/${h5_file}" "hl_test_files")
endforeach ()
add_custom_target(hl_test_files ALL COMMENT "Copying files needed by hl_test tests" DEPENDS ${hl_test_files_list})

# Remove any output file left over from previous test run
set (test_hl_CLEANFILES
    combine_tables1.h5
    combine_tables2.h5
    file_img1.h5
    file_img2.h5
    test_append.h5
    h5do_compat.h5
    test_detach.h5
    test_ds1.h5
    test_ds2.h5
    test_ds3.h5
    test_ds4.h5
    test_ds5.h5
    test_ds6.h5
    test_ds7.h5
    test_ds8.h5
    test_ds9.h5
    test_ds10.h5
    test_image1.h5
    test_image2.h5
    test_image3.h5
    test_lite1.h5
    test_lite2.h5
    test_lite3.h5
    test_lite4.h5
    test_packet_compress.h5
    test_packet_table.h5
    test_packet_table_vlen.h5
    testfl_packet_table_vlen.h5
    test_table.h5
)
add_test (
    NAME HL_test-clear-objects
    COMMAND    ${CMAKE_COMMAND} -E remove ${test_hl_CLEANFILES}
)
set_tests_properties (HL_test-clear-objects PROPERTIES
    FIXTURES_SETUP clear_test_hl
    WORKING_DIRECTORY ${HDF5_HL_TEST_BINARY_DIR}
)
add_test (
    NAME HL_test-clean-objects
    COMMAND    ${CMAKE_COMMAND} -E remove ${test_hl_CLEANFILES}
)
set_tests_properties (HL_test-clean-objects PROPERTIES
    FIXTURES_CLEANUP clear_test_hl
    WORKING_DIRECTORY ${HDF5_HL_TEST_BINARY_DIR}
)

# --------------------------------------------------------------------
#  Macro used to add a unit test
# --------------------------------------------------------------------
macro (HL_ADD_TEST hl_name)
  if (HDF5_ENABLE_USING_MEMCHECKER)
    add_test (NAME HL_${hl_name} COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:hl_${hl_name}>)
  else ()
    add_test (NAME HL_${hl_name} COMMAND "${CMAKE_COMMAND}"
        -D "TEST_EMULATOR=${CMAKE_CROSSCOMPILING_EMULATOR}"
        -D "TEST_PROGRAM=$<TARGET_FILE:hl_${hl_name}>"
        -D "TEST_ARGS:STRING="
        -D "TEST_EXPECT=0"
        -D "TEST_SKIP_COMPARE=TRUE"
        -D "TEST_OUTPUT=hl_${hl_name}.txt"
        #-D "TEST_REFERENCE=hl_${hl_name}.out"
        -D "TEST_FOLDER=${HDF5_HL_TEST_BINARY_DIR}"
        -P "${HDF_RESOURCES_DIR}/runTest.cmake"
    )
  endif ()
  set_tests_properties (HL_${hl_name} PROPERTIES
      FIXTURES_REQUIRED clear_test_hl
      ENVIRONMENT "srcdir=${HDF5_HL_TEST_BINARY_DIR}"
      WORKING_DIRECTORY ${HDF5_HL_TEST_BINARY_DIR}
  )
  if ("HL_${hl_name}" MATCHES "${HDF5_DISABLE_TESTS_REGEX}")
    set_tests_properties (HL_${hl_name} PROPERTIES DISABLED true)
  endif ()
endmacro ()

HL_add_test (test_lite )
HL_add_test (test_image)
HL_add_test (test_file_image)
HL_add_test (test_table)
HL_add_test (test_ds)
HL_add_test (test_packet)
HL_add_test (test_ld)
HL_add_test (test_dset_append)
HL_add_test (test_h5do_compat)