mirror of https://github.com/ecmwf/eccodes.git
412 lines
14 KiB
CMake
412 lines
14 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
|
|
list_codetable_flagtable_keys
|
|
grib_bpv_limit
|
|
grib_double_cmp
|
|
read_any
|
|
julian
|
|
grib_indexing
|
|
grib_multi_from_message
|
|
grib_read_index
|
|
unit_tests
|
|
bufr_keys_iter
|
|
gauss_sub
|
|
grib_nearest_test
|
|
grib_util_set_spec
|
|
grib_check_param_concepts
|
|
grib_local_MeteoFrance
|
|
grib_2nd_order_numValues
|
|
grib_optimize_scaling
|
|
grib_optimize_scaling_sh
|
|
grib_ecc-386
|
|
bufr_ecc-517
|
|
bufr_ecc-1288
|
|
bufr_get_element
|
|
bufr_extract_headers
|
|
extract_offsets
|
|
bufr_check_descriptors
|
|
grib_sh_ieee64
|
|
ieee
|
|
grib_set_bytes
|
|
grib_packing_order
|
|
grib_sh_imag
|
|
grib_sh_spectral_complex
|
|
grib_lam_bf
|
|
grib_lam_gp)
|
|
|
|
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)
|
|
#################################################
|
|
if( HAVE_BUILD_TOOLS )
|
|
|
|
# These tests do not require any data downloads
|
|
list(APPEND tests_no_data_reqd
|
|
unit_tests
|
|
julian
|
|
grib_dump_samples
|
|
bufr_dump_samples
|
|
bufr_check_descriptors
|
|
definitions
|
|
grib2_version
|
|
grib_calendar
|
|
grib_md5
|
|
grib_cfNames
|
|
grib_packing_order
|
|
filter_substr
|
|
grib_uerra
|
|
grib_element
|
|
grib_2nd_order_numValues
|
|
grib_ecc-136
|
|
grib_ecc-922
|
|
grib_ecc-966
|
|
grib_ecc-967
|
|
grib_ecc-1150
|
|
grib_ecc-1053
|
|
grib_ecc-1065
|
|
grib_ecc-1167
|
|
grib_ecc-1170
|
|
grib_ecc-1195
|
|
grib_ecc-1212
|
|
grib_ecc-1230
|
|
grib_ecc-1258
|
|
grib_ecc-1260
|
|
grib_ecc-1261
|
|
grib_ecc-1271
|
|
bufr_ecc-1028
|
|
bufr_ecc-1195
|
|
bufr_ecc-1259
|
|
bufr_json_samples
|
|
bufr_ecc-359
|
|
bufr_ecc-517
|
|
bufr_rdbSubTypes
|
|
bufr_templates
|
|
grib_efas
|
|
grib_sh_imag
|
|
grib_sh_spectral_complex
|
|
pseudo_diag
|
|
wrap
|
|
grib_levtype
|
|
grib_grid_unstructured
|
|
grib_grid_lambert_conformal
|
|
grib_grid_polar_stereographic
|
|
grib_g1monthlydate
|
|
grib_g1day_of_the_year_date
|
|
grib_g1fcperiod)
|
|
|
|
# These tests do require data downloads
|
|
list(APPEND tests_data_reqd
|
|
grib_data_quality_checks
|
|
grib_bpv_limit
|
|
grib_complex
|
|
grib_double_cmp
|
|
grib_change_packing
|
|
grib_grid_space_view
|
|
bufr_dump_data
|
|
bufr_dump_descriptors
|
|
bufr_dump_subset
|
|
bufr_dump_decode_filter
|
|
bufr_dump_encode_filter
|
|
bufrdc_desc_ref
|
|
bufrdc_ref
|
|
bufr_compare
|
|
bufr_copy
|
|
bufr_count
|
|
bufr_get
|
|
bufr_filter_misc
|
|
bufr_filter_extract_subsets
|
|
bufr_filter_extract_datetime
|
|
bufr_filter_extract_area
|
|
bufr_filter_unpack_pack
|
|
bufr_json_data
|
|
bufr_ls
|
|
bufr_ls_json
|
|
bufr_change_edition
|
|
bufr_keys_iter
|
|
bufr_get_element
|
|
bufr_wmo_tables
|
|
bufr_extract_headers
|
|
extract_offsets
|
|
bufr_ecc-673
|
|
bufr_ecc-428
|
|
bufr_ecc-286
|
|
bufr_ecc-288
|
|
bufr_ecc-313
|
|
bufr_ecc-616
|
|
bufr_ecc-686
|
|
bufr_ecc-690
|
|
bufr_ecc-379
|
|
bufr_ecc-393
|
|
bufr_ecc-433
|
|
bufr_ecc-750
|
|
bufr_ecc-765
|
|
bufr_ecc-875
|
|
bufr_ecc-887
|
|
bufr_ecc-1187
|
|
grib_ecc-490
|
|
grib_ecc-756
|
|
grib_ecc-806
|
|
grib_ecc-873
|
|
grib_ecc-600
|
|
grib_ecc-923
|
|
grib_ecc-979
|
|
grib_ecc-984
|
|
grib_ecc-1000
|
|
grib_ecc-1001
|
|
grib_ecc-1030
|
|
grib_set_bytes
|
|
bufr_ecc-556
|
|
gts_get
|
|
gts_ls
|
|
gts_count
|
|
gts_compare
|
|
metar_ls
|
|
metar_get
|
|
metar_dump
|
|
metar_compare
|
|
bufr_set
|
|
ieee
|
|
grib_sh_ieee64
|
|
grib_optimize_scaling
|
|
grib_optimize_scaling_sh
|
|
grib_lam_bf
|
|
grib_lam_gp
|
|
grib1to2
|
|
grib2to1
|
|
grib1to3
|
|
grib2to3
|
|
grib2_templates
|
|
grib2_chemicals_aerosols
|
|
grib3_templates
|
|
grib_bad
|
|
grib_ls
|
|
grib_ls_json
|
|
grib_filter
|
|
grib_multi
|
|
grib_nearest_test
|
|
pseudo_budg
|
|
grib_gridType
|
|
grib_octahedral
|
|
grib_grid_mercator
|
|
grib_global
|
|
grib_concept
|
|
grib_decimalPrecision
|
|
grib_bitsPerValue
|
|
grib_get_fail
|
|
grib_missing
|
|
grib_local
|
|
grib_step
|
|
grib_set
|
|
grib_iterator
|
|
grib_proj_string
|
|
grib_compare
|
|
grib_copy
|
|
grib_level
|
|
grib_indexing
|
|
grib_bitmap
|
|
grib_list
|
|
grib_second_order
|
|
grib_multi_from_message
|
|
grib_change_scanning
|
|
grib_statistics
|
|
grib_tigge
|
|
read_any
|
|
grib_dump
|
|
grib_dump_debug
|
|
grib_dump_json
|
|
grib_local_MeteoFrance
|
|
grib_neg_fctime
|
|
codes_split_file
|
|
grib_mars_keys)
|
|
|
|
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()
|
|
if( ENABLE_EXTRA_TESTS )
|
|
list(APPEND tests_data_reqd grib_util_set_spec)
|
|
list(APPEND tests_data_reqd grib_padding)
|
|
list(APPEND tests_data_reqd grib_tigge_conversions1)
|
|
list(APPEND tests_data_reqd grib_tigge_conversions2)
|
|
list(APPEND tests_data_reqd bufr_dump_encode_C)
|
|
list(APPEND tests_data_reqd bufr_dump_decode_C)
|
|
list(APPEND tests_no_data_reqd list_codetable_flagtable_keys)
|
|
endif()
|
|
|
|
# These tests do not require any data downloads
|
|
foreach( test ${tests_no_data_reqd} )
|
|
ecbuild_add_test( TARGET eccodes_t_${test}
|
|
TYPE SCRIPT
|
|
LABELS "sanity"
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh )
|
|
endforeach()
|
|
ecbuild_add_test( TARGET eccodes_t_grib_check_gaussian_grids
|
|
TYPE SCRIPT
|
|
CONDITION ECCODES_INSTALL_EXTRA_TOOLS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_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 ${tests_data_reqd} )
|
|
ecbuild_add_test( TARGET eccodes_t_${test}
|
|
TYPE SCRIPT
|
|
CONDITION ENABLE_EXTRA_TESTS
|
|
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()
|
|
|
|
if( HAVE_FORTRAN AND ENABLE_EXTRA_TESTS )
|
|
set_tests_properties( eccodes_t_bufr_dump_encode_fortran PROPERTIES TIMEOUT 2500 )
|
|
endif()
|
|
if( ENABLE_EXTRA_TESTS )
|
|
set_tests_properties( eccodes_t_bufr_dump_encode_C PROPERTIES TIMEOUT 2500 )
|
|
endif()
|
|
|
|
|
|
if( HAVE_PYTHON2 AND ENABLE_EXTRA_TESTS )
|
|
list( APPEND ptests bufr_dump_decode_python )
|
|
# list( APPEND ptests bufr_dump_encode_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}/python
|
|
TEST_DEPENDS eccodes_download_bufrs )
|
|
endforeach()
|
|
endif()
|
|
|
|
###########################################
|
|
# Note: the reference file is in the tests dir not data dir!
|
|
ecbuild_add_test( TARGET eccodes_t_grib_grid_lamb_az_eq_area
|
|
TYPE SCRIPT
|
|
CONDITION ENABLE_EXTRA_TESTS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_grid_lamb_az_eq_area.sh
|
|
RESOURCES grib_lamb_az_eq_area.ref
|
|
TEST_DEPENDS eccodes_download_gribs )
|
|
|
|
# These ones are conditional
|
|
###########################################
|
|
ecbuild_add_test( TARGET eccodes_t_tools_data_from_stdin
|
|
TYPE SCRIPT
|
|
CONDITION NOT ECCODES_ON_WINDOWS AND ENABLE_EXTRA_TESTS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools_data_from_stdin.sh
|
|
TEST_DEPENDS eccodes_download_bufrs )
|
|
|
|
ecbuild_add_test( TARGET eccodes_t_bufr_ecc-197
|
|
TYPE SCRIPT
|
|
CONDITION NOT ECCODES_ON_WINDOWS AND ENABLE_EXTRA_TESTS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_ecc-197.sh
|
|
TEST_DEPENDS eccodes_download_bufrs )
|
|
ecbuild_add_test( TARGET eccodes_t_bufr_ecc-1288
|
|
TYPE SCRIPT
|
|
CONDITION NOT ECCODES_ON_WINDOWS AND ENABLE_EXTRA_TESTS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_ecc-1288.sh
|
|
TEST_DEPENDS eccodes_download_bufrs )
|
|
|
|
|
|
if( ENABLE_EXTRA_TESTS AND HAVE_ECCODES_THREADS )
|
|
ecbuild_add_executable( TARGET grib_encode_pthreads
|
|
NOINSTALL
|
|
SOURCES grib_encode_pthreads.c
|
|
LIBS eccodes ${CMAKE_THREAD_LIBS_INIT} )
|
|
ecbuild_add_test( TARGET eccodes_t_grib_encode_pthreads
|
|
TYPE SCRIPT
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_encode_pthreads.sh )
|
|
|
|
foreach( test grib_threads_ecc-604 grib_threads_ecc-604-encode bufr_threads_ecc-604 )
|
|
ecbuild_add_executable( TARGET ${test}
|
|
NOINSTALL
|
|
SOURCES ${test}.c
|
|
LIBS eccodes ${CMAKE_THREAD_LIBS_INIT} )
|
|
endforeach()
|
|
ecbuild_add_test( TARGET eccodes_t_grib_threads_ecc-604
|
|
TYPE SCRIPT
|
|
TEST_DEPENDS eccodes_download_gribs
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_threads_ecc-604.sh )
|
|
ecbuild_add_test( TARGET eccodes_t_bufr_threads_ecc-604
|
|
TYPE SCRIPT
|
|
TEST_DEPENDS eccodes_download_bufrs
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_threads_ecc-604.sh )
|
|
endif()
|
|
|
|
ecbuild_add_test( TARGET eccodes_t_grib_to_netcdf
|
|
TYPE SCRIPT
|
|
CONDITION HAVE_NETCDF AND ENABLE_EXTRA_TESTS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_to_netcdf.sh
|
|
TEST_DEPENDS eccodes_download_gribs )
|
|
|
|
ecbuild_add_test( TARGET eccodes_t_grib_jpeg
|
|
TYPE SCRIPT
|
|
CONDITION HAVE_JPEG AND ENABLE_EXTRA_TESTS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_jpeg.sh
|
|
TEST_DEPENDS eccodes_download_gribs )
|
|
|
|
ecbuild_add_test( TARGET eccodes_t_grib_png
|
|
TYPE SCRIPT
|
|
CONDITION HAVE_PNG AND ENABLE_EXTRA_TESTS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_png.sh
|
|
TEST_DEPENDS eccodes_download_gribs )
|
|
|
|
ecbuild_add_test( TARGET eccodes_t_grib_ccsds
|
|
TYPE SCRIPT
|
|
CONDITION HAVE_AEC AND ENABLE_EXTRA_TESTS
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_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 )
|
|
|
|
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_TIMER=ON
|
|
ecbuild_add_test( TARGET eccodes_t_grib_ecc-386
|
|
TYPE SCRIPT
|
|
CONDITION ENABLE_EXTRA_TESTS AND ENABLE_TIMER
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-386.sh
|
|
TEST_DEPENDS eccodes_download_gribs )
|
|
else()
|
|
# No command line tools
|
|
list(APPEND tests_no_tools
|
|
unit_tests
|
|
julian
|
|
bufr_check_descriptors
|
|
grib_sh_imag
|
|
grib_sh_spectral_complex
|
|
grib_2nd_order_numValues
|
|
grib_sh_ieee64)
|
|
|
|
foreach( test ${tests_no_tools} )
|
|
ecbuild_add_test( TARGET eccodes_t_${test}
|
|
TYPE SCRIPT
|
|
LABELS "sanity"
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh )
|
|
endforeach()
|
|
|
|
endif()
|