eccodes/tests/CMakeLists.txt

181 lines
4.8 KiB
CMake

# tests/CMakeLists.txt
#
# Configure the file which all CMake tests will include
configure_file( include.ctest.sh.in include.ctest.sh @ONLY )
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include.sh ${CMAKE_CURRENT_BINARY_DIR} )
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/utils.sh ${CMAKE_CURRENT_BINARY_DIR} )
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/number_compare.pl ${CMAKE_CURRENT_BINARY_DIR} )
# Build the executables used by test scripts
################################################
list( APPEND test_bins
grib_double_cmp
read_any
julian
index
multi_from_message
read_index
unit_tests
gauss_sub
grib_util_set_spec
local_MeteoFrance
grib_2nd_order_numValues
)
foreach( tool ${test_bins} )
# here we use the fact that each tool has only one C file that matches its name
ecbuild_add_executable( TARGET ${tool}
NOINSTALL
SOURCES ${tool}.c
LIBS eccodes
)
endforeach()
# Now add each test (shell scripts)
#################################################
list( APPEND tests1
definitions
calendar
unit_tests
md5
uerra
grib_2nd_order_numValues
)
list( APPEND tests2
grib_double_cmp
bufr_dump
bufrdc_desc_ref
bufrdc_ref
bufr_compare
bufr_copy
bufr_count
bufr_get
bufr_filter
bufr_json
bufr_ls
bufr_change_edition
ecc-197
ecc-286
ecc-288
gts_get
gts_ls
gts_compare
metar_ls
metar_get
metar_dump
metar_compare
bufr_set
ieee
grib1to2
grib2to1
badgrib
ls
filter
multi
budg
gridType
octahedral
global
concept
decimalPrecision
bitsPerValue
get_fail
missing
local
step
set
iterator
grib_compare
level
index
bitmap
list
second_order
multi_from_message
change_scanning
julian
statistics
tigge
tigge_conversions
read_any
padding
debug
grib_util_set_spec
local_MeteoFrance
neg_fctime
)
# These tests do not require any data downloads
foreach( test ${tests1} )
ecbuild_add_test( TARGET eccodes_t_${test}
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
)
endforeach()
ecbuild_add_test( TARGET eccodes_t_check_gaussian_grids
TYPE SCRIPT
CONDITION ECCODES_INSTALL_EXTRA_TOOLS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/check_gaussian_grids.sh
)
# Note: making the test dependent on the grib files (with DEPENDS)
# means they will be downloaded at "make" time
# rather than when you do "ctest". Use TEST_DEPENDS instead
foreach( test ${tests2} )
ecbuild_add_test( TARGET eccodes_t_${test}
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
RESOURCES asca_139.t1.ref
TEST_DEPENDS eccodes_download_gribs eccodes_download_tigge_gribs
eccodes_download_bufrs eccodes_download_metars eccodes_download_gts
)
endforeach()
###########################################
# Note: the reference file is in the tests dir not data dir!
ecbuild_add_test( TARGET eccodes_t_lamb_az_eq_area
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lamb_az_eq_area.sh
RESOURCES lamb_az_eq_area.ref
TEST_DEPENDS eccodes_download_gribs
)
# These ones are conditional
###########################################
ecbuild_add_test( TARGET eccodes_t_grib_to_netcdf
TYPE SCRIPT
CONDITION HAVE_NETCDF
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_to_netcdf.sh
TEST_DEPENDS eccodes_download_gribs
)
ecbuild_add_test( TARGET eccodes_t_jpeg
TYPE SCRIPT
CONDITION HAVE_JPEG
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/jpeg.sh
TEST_DEPENDS eccodes_download_gribs
)
ecbuild_add_test( TARGET eccodes_t_grib_png
TYPE SCRIPT
CONDITION HAVE_PNG
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_png.sh
TEST_DEPENDS eccodes_download_gribs
)
ecbuild_add_test( TARGET eccodes_t_ccsds
TYPE SCRIPT
CONDITION HAVE_AEC
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/ccsds.sh
TEST_DEPENDS eccodes_download_gribs
)
ecbuild_add_test( TARGET eccodes_t_grib_check_param_concepts
TYPE SCRIPT
CONDITION ENABLE_EXTRA_TESTS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_check_param_concepts.sh
)