eccodes/tests/CMakeLists.txt

277 lines
8.1 KiB
CMake
Raw Normal View History

2014-03-31 12:57:06 +00:00
# tests/CMakeLists.txt
#
# Configure the file which all CMake tests will include
configure_file( include.ctest.sh.in include.ctest.sh @ONLY )
2015-07-02 12:02:54 +00:00
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} )
2014-03-31 12:57:06 +00:00
# Build the executables used by test scripts
################################################
list( APPEND test_bins
grib_double_cmp
2014-03-31 12:57:06 +00:00
read_any
julian
index
multi_from_message
read_index
unit_tests
2016-10-24 16:34:12 +00:00
bufr_keys_iter
2014-03-31 12:57:06 +00:00
gauss_sub
grib_util_set_spec
2016-05-20 18:15:36 +00:00
local_MeteoFrance
2016-05-25 10:19:31 +00:00
grib_2nd_order_numValues
optimize_scaling
optimize_scaling_sh
grib_ecc-386
bufr_ecc-517
2017-03-10 18:05:07 +00:00
bufr_get_element
sh_ieee64
ieee
2014-03-31 12:57:06 +00:00
)
2014-06-18 16:14:01 +00:00
2014-03-31 12:57:06 +00:00
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
2015-02-13 18:04:42 +00:00
LIBS eccodes
2014-03-31 12:57:06 +00:00
)
endforeach()
2015-01-24 19:00:15 +00:00
# Now add each test (shell scripts)
2014-03-31 12:57:06 +00:00
#################################################
# These tests do not require any data downloads
list( APPEND tests_no_data_reqd
2014-04-15 10:37:21 +00:00
definitions
2018-03-09 14:43:37 +00:00
grib_calendar
2015-03-12 18:21:52 +00:00
unit_tests
md5
2016-01-21 16:52:24 +00:00
uerra
2016-05-25 10:19:31 +00:00
grib_2nd_order_numValues
julian
bufr_ecc-359
bufr_ecc-517
grib_efas
2015-03-12 18:21:52 +00:00
)
# These tests do require data downloads
list( APPEND tests_data_reqd
grib_double_cmp
2014-08-11 09:26:05 +00:00
bufr_dump
2016-09-13 10:14:54 +00:00
bufr_dump_decode_filter
bufr_dump_encode_filter
bufrdc_desc_ref
2014-08-11 09:26:05 +00:00
bufrdc_ref
2015-02-03 13:27:57 +00:00
bufr_compare
2015-02-03 10:06:03 +00:00
bufr_copy
2015-02-03 09:14:05 +00:00
bufr_count
2015-02-02 17:17:29 +00:00
bufr_get
2015-01-30 16:31:18 +00:00
bufr_filter
bufr_filter_extract_datetime
bufr_filter_extract_area
2015-01-07 16:08:48 +00:00
bufr_json
2015-01-22 09:25:57 +00:00
bufr_ls
2016-02-08 18:00:41 +00:00
bufr_change_edition
2016-10-24 17:33:43 +00:00
bufr_keys_iter
2017-03-10 18:05:07 +00:00
bufr_get_element
bufr_wmo_tables
bufr_ecc-197
bufr_ecc-286
bufr_ecc-288
bufr_ecc-313
bufr_ecc-616
bufr_ecc-379
bufr_ecc-393
bufr_ecc-433
grib_ecc-490
bufr_ecc-556
gts_get
2015-03-17 16:00:13 +00:00
gts_ls
gts_compare
2015-04-10 11:14:23 +00:00
metar_ls
2016-05-20 18:15:36 +00:00
metar_get
2015-04-10 11:14:23 +00:00
metar_dump
metar_compare
2015-02-02 15:16:32 +00:00
bufr_set
2014-04-15 10:37:21 +00:00
ieee
sh_ieee64
optimize_scaling
optimize_scaling_sh
2014-04-15 10:37:21 +00:00
grib1to2
grib2to1
grib1to3
grib2to3
grib3_templates
2014-04-15 10:37:21 +00:00
badgrib
2017-04-05 17:09:01 +00:00
grib_ls
2016-10-24 14:17:06 +00:00
grib_filter
2017-04-05 17:31:35 +00:00
grib_multi
2014-04-15 10:37:21 +00:00
budg
2018-03-08 15:58:26 +00:00
grib_gridType
2017-04-05 17:31:35 +00:00
grib_octahedral
grib_global
2017-04-10 10:24:28 +00:00
grib_concept
2014-04-15 10:37:21 +00:00
decimalPrecision
grib_bitsPerValue
2014-04-15 10:37:21 +00:00
get_fail
missing
2017-04-05 17:31:35 +00:00
grib_local
2017-04-05 17:09:01 +00:00
grib_step
2017-04-05 16:29:11 +00:00
grib_set
2017-04-05 17:09:01 +00:00
grib_iterator
grib_compare
2017-04-05 16:29:11 +00:00
grib_level
2014-04-15 10:37:21 +00:00
index
2017-04-05 17:09:01 +00:00
grib_bitmap
2014-04-15 10:37:21 +00:00
list
2017-04-05 11:49:16 +00:00
grib_second_order
2014-04-15 10:37:21 +00:00
multi_from_message
grib_change_scanning
2017-04-05 16:29:11 +00:00
grib_statistics
2014-04-15 10:37:21 +00:00
tigge
tigge_conversions
read_any
grib_dump
grib_dump_debug
grib_util_set_spec
2016-05-20 18:15:36 +00:00
local_MeteoFrance
2017-04-11 16:50:36 +00:00
grib_neg_fctime
2017-10-27 13:31:33 +00:00
codes_split_file
2014-04-15 10:37:21 +00:00
)
if( HAVE_FORTRAN AND ENABLE_EXTRA_TESTS )
list(APPEND tests_data_reqd bufr_dump_encode_fortran)
list(APPEND tests_data_reqd bufr_dump_decode_fortran)
endif()
2016-09-01 17:52:33 +00:00
if( ENABLE_EXTRA_TESTS )
list(APPEND tests_data_reqd grib_padding)
list(APPEND tests_data_reqd bufr_dump_encode_C)
list(APPEND tests_data_reqd bufr_dump_decode_C)
2016-09-01 17:52:33 +00:00
endif()
2015-03-12 18:21:52 +00:00
# These tests do not require any data downloads
foreach( test ${tests_no_data_reqd} )
2015-07-14 16:11:57 +00:00
ecbuild_add_test( TARGET eccodes_t_${test}
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
2015-03-12 18:21:52 +00:00
)
endforeach()
ecbuild_add_test( TARGET eccodes_t_check_gaussian_grids
TYPE SCRIPT
2015-10-21 16:31:19 +00:00
CONDITION ECCODES_INSTALL_EXTRA_TOOLS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/check_gaussian_grids.sh
)
2015-03-12 18:21:52 +00:00
# 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 ${tests_data_reqd} )
2015-07-14 16:11:57 +00:00
ecbuild_add_test( TARGET eccodes_t_${test}
2014-04-15 10:37:21 +00:00
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
RESOURCES asca_139.t1.ref
2016-03-29 10:16:29 +00:00
TEST_DEPENDS eccodes_download_gribs eccodes_download_tigge_gribs
eccodes_download_bufrs eccodes_download_metars eccodes_download_gts
2014-06-18 16:14:01 +00:00
)
2014-04-15 10:37:21 +00:00
endforeach()
2014-03-31 12:57:06 +00:00
if( HAVE_FORTRAN AND ENABLE_EXTRA_TESTS )
set_tests_properties ( eccodes_t_bufr_dump_encode_fortran PROPERTIES TIMEOUT 2500)
endif()
2016-09-01 17:52:33 +00:00
if( ENABLE_EXTRA_TESTS )
set_tests_properties ( eccodes_t_bufr_dump_encode_C PROPERTIES TIMEOUT 2500)
2016-09-01 17:52:33 +00:00
endif()
if( HAVE_PYTHON AND ENABLE_EXTRA_TESTS )
2016-09-14 10:54:57 +00:00
list( APPEND ptests bufr_dump_encode_python bufr_dump_decode_python )
foreach( test ${ptests} )
ecbuild_add_test( TARGET eccodes_t_${test}
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
2016-09-15 16:50:45 +00:00
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE} PYTHONPATH=${PROJECT_BINARY_DIR}/python
2016-09-14 10:54:57 +00:00
TEST_DEPENDS eccodes_download_bufrs
)
endforeach()
endif()
2014-03-31 12:57:06 +00:00
###########################################
# Note: the reference file is in the tests dir not data dir!
2015-07-14 16:11:57 +00:00
ecbuild_add_test( TARGET eccodes_t_lamb_az_eq_area
2014-03-31 12:57:06 +00:00
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lamb_az_eq_area.sh
2015-07-02 12:02:54 +00:00
RESOURCES lamb_az_eq_area.ref
2016-03-29 10:16:29 +00:00
TEST_DEPENDS eccodes_download_gribs
2014-03-31 12:57:06 +00:00
)
2014-04-15 10:37:21 +00:00
# These ones are conditional
###########################################
if( ENABLE_EXTRA_TESTS AND HAVE_ECCODES_THREADS )
ecbuild_add_executable( TARGET grib_encode_pthreads
NOINSTALL
SOURCES grib_encode_pthreads.c
LIBS eccodes
)
ecbuild_add_test( TARGET eccodes_t_grib_encode_pthreads
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_encode_pthreads.sh
)
2018-05-08 13:11:01 +00:00
ecbuild_add_executable( TARGET grib_ecc-604-1
NOINSTALL
SOURCES grib_ecc-604-1.c
LIBS eccodes
)
ecbuild_add_executable( TARGET grib_ecc-604-2
NOINSTALL
2018-05-08 13:11:01 +00:00
SOURCES grib_ecc-604-2.c
LIBS eccodes
)
ecbuild_add_test( TARGET eccodes_t_grib_ecc-604
TYPE SCRIPT
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-604.sh
)
endif()
2015-07-14 16:11:57 +00:00
ecbuild_add_test( TARGET eccodes_t_grib_to_netcdf
2014-03-31 12:57:06 +00:00
TYPE SCRIPT
CONDITION HAVE_NETCDF
2014-03-31 12:57:06 +00:00
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_to_netcdf.sh
2016-03-29 10:16:29 +00:00
TEST_DEPENDS eccodes_download_gribs
2014-06-18 16:14:01 +00:00
)
2014-03-31 12:57:06 +00:00
2017-04-11 16:45:51 +00:00
ecbuild_add_test( TARGET eccodes_t_grib_jpeg
2014-06-18 16:14:01 +00:00
TYPE SCRIPT
CONDITION HAVE_JPEG
2017-04-11 16:45:51 +00:00
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_jpeg.sh
2016-03-29 10:16:29 +00:00
TEST_DEPENDS eccodes_download_gribs
2014-06-18 16:14:01 +00:00
)
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
)
2017-04-05 12:21:27 +00:00
ecbuild_add_test( TARGET eccodes_t_grib_ccsds
TYPE SCRIPT
CONDITION HAVE_AEC
2017-04-05 12:21:27 +00:00
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ccsds.sh
2016-03-29 10:16:29 +00:00
TEST_DEPENDS eccodes_download_gribs
)
ecbuild_add_test( TARGET eccodes_t_grib_check_param_concepts
TYPE SCRIPT
2016-05-05 15:23:46 +00:00
CONDITION ENABLE_EXTRA_TESTS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_check_param_concepts.sh
)
# Performance test. Must have -DENABLE_GRIB_TIMER=ON
ecbuild_add_test( TARGET eccodes_t_grib_ecc-386
TYPE SCRIPT
CONDITION ENABLE_EXTRA_TESTS AND ENABLE_GRIB_TIMER
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-386.sh
TEST_DEPENDS eccodes_download_gribs
)