eccodes/tests/CMakeLists.txt

332 lines
9.7 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
bpv_limit
grib_double_cmp
2014-03-31 12:57:06 +00:00
read_any
julian
index
2019-08-05 12:05:41 +00:00
grib_multi_from_message
2014-03-31 12:57:06 +00:00
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
2018-07-12 15:21:22 +00:00
grib_local_MeteoFrance
2016-05-25 10:19:31 +00:00
grib_2nd_order_numValues
2019-05-16 14:10:26 +00:00
grib_optimize_scaling
grib_optimize_scaling_sh
grib_ecc-386
bufr_ecc-517
2017-03-10 18:05:07 +00:00
bufr_get_element
bufr_extract_headers
2018-11-24 12:20:25 +00:00
grib_sh_ieee64
ieee
2018-11-23 14:26:19 +00:00
grib_sh_imag
2019-05-16 13:55:31 +00:00
grib_lam_bf
2019-05-16 14:01:11 +00:00
grib_lam_gp
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
2019-03-26 15:41:07 +00:00
grib_uerra
2016-05-25 10:19:31 +00:00
grib_2nd_order_numValues
2019-06-14 13:50:17 +00:00
grib_ecc-136
2019-08-07 17:32:18 +00:00
grib_ecc-967
julian
bufr_dump_samples
bufr_json_samples
bufr_ecc-359
bufr_ecc-517
bufr_rdbSubTypes
grib_efas
2018-11-23 14:26:19 +00:00
grib_sh_imag
2015-03-12 18:21:52 +00:00
)
# These tests do require data downloads
list( APPEND tests_data_reqd
bpv_limit
grib_double_cmp
2018-11-09 13:20:38 +00:00
grib_change_packing
bufr_dump_data
2019-05-30 17:49:17 +00:00
bufr_dump_descriptors
2019-06-01 12:01:54 +00:00
bufr_dump_subset
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
bufr_json_data
2015-01-22 09:25:57 +00:00
bufr_ls
bufr_ls_json
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_extract_headers
2019-09-17 16:35:00 +00:00
bufr_ecc-673
bufr_ecc-428
bufr_ecc-197
bufr_ecc-286
bufr_ecc-288
bufr_ecc-313
bufr_ecc-616
2018-05-03 11:27:17 +00:00
bufr_ecc-686
2018-05-15 13:28:51 +00:00
bufr_ecc-690
bufr_ecc-379
bufr_ecc-393
bufr_ecc-433
bufr_ecc-750
bufr_ecc-765
2019-01-24 17:30:19 +00:00
bufr_ecc-875
bufr_ecc-887
grib_ecc-490
2018-09-26 16:12:24 +00:00
grib_ecc-756
grib_ecc-873
grib_ecc-600
grib_ecc-923
2019-10-07 17:25:39 +00:00
grib_ecc-979
2019-09-03 15:49:01 +00:00
grib_ecc-984
grib_ecc-1000
grib_ecc-1001
grib_ecc-1030
bufr_ecc-556
gts_get
2015-03-17 16:00:13 +00:00
gts_ls
2019-03-19 15:36:25 +00:00
gts_count
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
2018-11-24 12:20:25 +00:00
grib_sh_ieee64
2019-05-16 14:10:26 +00:00
grib_optimize_scaling
grib_optimize_scaling_sh
2019-05-16 13:55:31 +00:00
grib_lam_bf
2019-05-16 14:01:11 +00:00
grib_lam_gp
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
2019-08-28 14:42:36 +00:00
grib_ls_json
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
2019-08-01 17:34:07 +00:00
grib_decimalPrecision
grib_bitsPerValue
2014-04-15 10:37:21 +00:00
get_fail
2019-05-16 14:35:29 +00:00
grib_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
grib_copy
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
2019-08-01 16:58:38 +00:00
grib_list
2017-04-05 11:49:16 +00:00
grib_second_order
2019-08-05 12:05:41 +00:00
grib_multi_from_message
grib_change_scanning
2017-04-05 16:29:11 +00:00
grib_statistics
2019-03-26 16:21:20 +00:00
grib_tigge
2014-04-15 10:37:21 +00:00
read_any
grib_dump
grib_dump_debug
2018-10-19 13:29:47 +00:00
grib_dump_json
2018-07-12 15:21:22 +00:00
grib_local_MeteoFrance
2017-04-11 16:50:36 +00:00
grib_neg_fctime
2017-10-27 13:31:33 +00:00
codes_split_file
2018-11-14 11:26:38 +00:00
grib_mars_types
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_util_set_spec)
list(APPEND tests_data_reqd grib_padding)
2019-03-26 16:21:20 +00:00
list(APPEND tests_data_reqd grib_tigge_conversions)
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()
2018-11-24 12:30:25 +00:00
ecbuild_add_test( TARGET eccodes_t_grib_check_gaussian_grids
TYPE SCRIPT
2018-10-23 15:33:07 +00:00
CONDITION ECCODES_INSTALL_EXTRA_TOOLS
2018-11-24 12:30:25 +00:00
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_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
2018-10-23 15:33:07 +00:00
CONDITION ENABLE_EXTRA_TESTS
2014-04-15 10:37:21 +00:00
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
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE} PYTHONPATH=${PROJECT_BINARY_DIR}/${ECCODES_PYTHON_DIR}
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!
2019-03-26 15:34:13 +00:00
ecbuild_add_test( TARGET eccodes_t_grib_lamb_az_eq_area
2014-03-31 12:57:06 +00:00
TYPE SCRIPT
2018-10-23 15:33:07 +00:00
CONDITION ENABLE_EXTRA_TESTS
2019-03-26 15:34:13 +00:00
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_lamb_az_eq_area.sh
RESOURCES grib_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
foreach( test grib_ecc-604 grib_ecc-604-encode bufr_ecc-604 )
2018-05-08 16:11:45 +00:00
ecbuild_add_executable( TARGET ${test}
NOINSTALL
SOURCES ${test}.c
LIBS eccodes
)
endforeach()
ecbuild_add_test( TARGET eccodes_t_grib_ecc-604
TYPE SCRIPT
2018-05-30 13:40:55 +00:00
TEST_DEPENDS eccodes_download_gribs
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-604.sh
)
2018-07-27 16:40:13 +00:00
ecbuild_add_test( TARGET eccodes_t_bufr_ecc-604
TYPE SCRIPT
TEST_DEPENDS eccodes_download_bufrs
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_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
2018-10-23 15:33:07 +00:00
CONDITION HAVE_NETCDF AND ENABLE_EXTRA_TESTS
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
2018-10-23 15:33:07 +00:00
CONDITION HAVE_JPEG AND ENABLE_EXTRA_TESTS
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
2018-10-23 15:33:07 +00:00
CONDITION HAVE_PNG AND ENABLE_EXTRA_TESTS
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
2018-10-23 15:33:07 +00:00
CONDITION HAVE_AEC AND ENABLE_EXTRA_TESTS
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
)
ecbuild_add_test( TARGET eccodes_t_bufr_split_by_rdbSubtype
TYPE SCRIPT
CONDITION ENABLE_EXTRA_TESTS AND ECCODES_INSTALL_EXTRA_TOOLS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_split_by_rdbSubtype.sh
TEST_DEPENDS eccodes_download_bufrs
)
# 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
)
2016-09-30 07:52:13 +00:00