eccodes/tests/CMakeLists.txt

498 lines
16 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}/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_c_bins
list_codetable_flagtable_keys
2020-07-31 14:07:35 +00:00
grib_bpv_limit
grib_double_cmp
read_any
julian
grib_indexing
2022-02-25 18:15:44 +00:00
grib_fieldset
2020-07-31 14:07:35 +00:00
grib_multi_from_message
grib_read_index
unit_tests
bufr_keys_iter
grib_keys_iter
2023-08-24 20:16:53 +00:00
grib_keys_iter_skip
2022-06-26 15:56:25 +00:00
grib_geo_iter
2020-07-31 14:07:35 +00:00
gauss_sub
grib_nearest_test
grib_util_set_spec
grib_check_param_concepts
2020-07-31 14:07:35 +00:00
grib_local_MeteoFrance
grib_2nd_order_numValues
grib_optimize_scaling
grib_optimize_scaling_sh
grib_set_force
2023-08-30 11:02:52 +00:00
grib_run_length_packing
grib_partial_message
2020-07-31 14:07:35 +00:00
grib_ecc-386
2022-12-30 15:53:10 +00:00
grib_ecc-1467
grib_ecc-1431
grib_ecc-1433
2020-07-31 14:07:35 +00:00
bufr_ecc-517
2021-10-05 22:02:36 +00:00
bufr_ecc-1288
2020-07-31 14:07:35 +00:00
bufr_get_element
bufr_extract_headers
2020-11-30 21:08:16 +00:00
extract_offsets
2020-07-31 14:07:35 +00:00
bufr_check_descriptors
2023-06-14 18:49:23 +00:00
bufr_coordinate_descriptors
2022-06-16 10:07:06 +00:00
codes_new_from_samples
2023-08-12 12:39:44 +00:00
codes_dump_action_tree
2022-07-12 15:03:19 +00:00
codes_set_samples_path
2023-07-24 12:14:40 +00:00
codes_compare_keys
2023-08-13 12:52:07 +00:00
codes_dump_content
codes_codetable
2020-07-31 14:07:35 +00:00
grib_sh_ieee64
2022-02-05 22:11:26 +00:00
grib_ieee
2020-11-19 23:04:08 +00:00
grib_set_bytes
grib_copy_message
grib_packing_order
2023-08-21 11:29:19 +00:00
grib_unpack_subarray
2020-07-31 14:07:35 +00:00
grib_sh_imag
2023-06-16 21:33:14 +00:00
grib_spectral
2020-07-31 14:07:35 +00:00
grib_lam_bf
grib_lam_gp)
2014-06-18 16:14:01 +00:00
2023-01-06 12:27:07 +00:00
foreach( tool ${test_c_bins} )
2014-03-31 12:57:06 +00:00
# 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}.cc
2020-03-30 13:07:31 +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
#################################################
if( HAVE_BUILD_TOOLS )
# These tests do not require any data downloads
2022-07-23 16:17:27 +00:00
# and are generally quick
list(APPEND tests_basic
2023-06-24 21:03:50 +00:00
codes_info
2023-08-06 14:29:07 +00:00
codes_deprecated
unit_tests
julian
grib_dump_samples
bufr_dump_samples
bufr_check_descriptors
definitions
grib2_version
2023-09-04 12:01:01 +00:00
grib_accessors
grib_calendar
grib_md5
2020-11-17 18:07:45 +00:00
grib_cfNames
2023-08-22 20:36:04 +00:00
grib_ifsParam
2021-01-21 21:18:59 +00:00
grib_packing_order
filter_substr
grib_uerra
2023-10-09 10:12:44 +00:00
grib_ecpoint
grib_s2s
grib_fire
grib_generalised_tiles
2023-03-06 16:34:59 +00:00
# grib_true_imagery
grib2_wave_spectra
grib_element
grib_suppressed
grib_2nd_order_numValues
grib_ecc-136
grib_ecc-530
grib_ecc-922
grib_ecc-966
grib_ecc-967
grib_ecc-1150
grib_ecc-1053
grib_ecc-1065
grib_ecc-1167
2020-11-26 16:13:53 +00:00
grib_ecc-1170
grib_ecc-1195
grib_ecc-1212
2021-04-08 15:40:35 +00:00
grib_ecc-1230
grib_ecc-1258
2021-06-27 12:30:24 +00:00
grib_ecc-1260
2021-07-09 16:14:32 +00:00
grib_ecc-1261
2021-08-05 20:05:17 +00:00
grib_ecc-1271
grib_ecc-1315
2021-12-17 17:17:08 +00:00
grib_ecc-1322
2021-12-15 17:41:09 +00:00
grib_ecc-1319
grib_ecc-1406
2023-04-02 13:53:33 +00:00
grib_ecc-1560
grib_ecc-1571
2023-08-02 13:58:23 +00:00
grib_ecc-1654
2023-10-26 14:42:51 +00:00
grib_ecc-1671
grib_ecc-1708
2023-09-27 09:58:47 +00:00
grib_ecc-1691
bufr_ecc-1028
bufr_ecc-1195
bufr_ecc-1259
2021-10-12 20:03:38 +00:00
bufr_ecc-1290
2021-11-16 15:18:46 +00:00
bufr_ecc-1304
bufr_ecc-1347
2022-06-01 15:02:34 +00:00
bufr_ecc-1395
bufr_json_samples
bufr_ecc-359
bufr_ecc-517
bufr_rdbSubTypes
grib_efas
grib_sh_imag
2023-06-16 21:33:14 +00:00
grib_spectral
2020-12-18 15:35:48 +00:00
grib_levtype
grib_typeOfLevel
grib_grid_unstructured
grib_grid_lambert_conformal
grib_grid_polar_stereographic
2023-08-31 10:28:47 +00:00
grib_grid_healpix
grib_g1monthlydate
grib_g1day_of_the_year_date
grib_g1fcperiod)
2022-07-23 16:17:27 +00:00
# These tests require data downloads
# and/or take much longer
list(APPEND tests_extra
grib_data_quality_checks
grib_bpv_limit
grib_complex
grib_double_cmp
grib_change_packing
2023-08-05 11:38:06 +00:00
grib_run_length_packing
grib_grid_space_view
grib_partial_message
2023-12-01 12:52:05 +00:00
grib_true_imagery
2023-06-29 11:55:33 +00:00
grib_headers_only
2023-08-21 11:29:19 +00:00
grib_unpack_subarray
2023-06-19 16:50:19 +00:00
grib_count
2022-07-23 16:17:27 +00:00
bufr_templates
bufr_dump_data
bufr_dump_descriptors
2023-06-14 20:23:10 +00:00
bufr_coordinate_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
2023-07-21 16:15:22 +00:00
bufr_operators
2021-03-13 15:45:11 +00:00
bufr_filter_misc
bufr_filter_extract_subsets
bufr_filter_extract_datetime
bufr_filter_extract_area
bufr_filter_unpack_pack
bufr_filter_skipExtraKeyAttributes
bufr_indexing
bufr_json_data
bufr_ls
bufr_ls_json
bufr_change_edition
bufr_keys_iter
grib_keys_iter
2023-08-24 20:16:53 +00:00
grib_keys_iter_skip
2022-06-26 15:56:25 +00:00
grib_geo_iter
bufr_get_element
bufr_wmo_tables
bufr_extract_headers
2020-11-30 21:08:16 +00:00
extract_offsets
2023-07-21 14:56:25 +00:00
bufr_ecc-147
bufr_ecc-389
bufr_ecc-673
bufr_ecc-428
bufr_ecc-286
bufr_ecc-288
bufr_ecc-313
bufr_ecc-616
2022-04-25 15:45:17 +00:00
bufr_ecc-680
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
2020-12-24 21:09:00 +00:00
bufr_ecc-1187
bufr_ecc-1305
bufr_ecc-1476
2023-07-03 20:28:34 +00:00
bufr_ecc-1623
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
2022-06-06 15:48:51 +00:00
grib_ecc-1397
2022-08-11 12:57:25 +00:00
grib_ecc-1425
2022-12-30 15:53:10 +00:00
grib_ecc-1467
2020-11-19 23:04:08 +00:00
grib_set_bytes
grib_set_force
bufr_ecc-556
codes_ecc-1698
codes_codetable
gts_get
gts_ls
gts_count
gts_compare
2022-07-23 16:17:27 +00:00
wrap
2023-08-26 14:17:33 +00:00
taf
2022-07-23 16:17:27 +00:00
pseudo_diag
metar_ls
metar_get
metar_dump
metar_compare
bufr_set
2022-02-05 22:11:26 +00:00
grib_ieee
2023-08-04 13:23:39 +00:00
grib1_gds_not_present
grib_sh_ieee64
grib_optimize_scaling
grib_optimize_scaling_sh
grib_lam_bf
grib_lam_gp
grib1to2
grib2to1
grib1to3
grib2to3
2020-11-21 13:01:54 +00:00
grib2_templates
grib2_chemicals_aerosols
grib3_templates
2020-12-18 16:51:47 +00:00
grib_bad
grib_ls
grib_ls_json
grib_filter
grib_multi
grib_nearest_test
pseudo_budg
grib_gridType
2022-02-25 18:15:44 +00:00
grib_fieldset
grib_octahedral
grib_grid_mercator
grib_global
grib_concept
grib_copy_message
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
read_any
2022-06-16 10:07:06 +00:00
codes_new_from_samples
2023-08-12 12:39:44 +00:00
codes_dump_action_tree
2022-07-12 15:03:19 +00:00
codes_set_samples_path
2023-07-24 13:26:04 +00:00
codes_compare_keys
2023-08-13 12:52:07 +00:00
codes_dump_content
2023-08-14 10:52:17 +00:00
codes_to_double
grib_dump
grib_dump_debug
grib_dump_json
grib_local_MeteoFrance
2021-10-28 17:16:15 +00:00
grib_local_NCEP
grib_neg_fctime
codes_split_file
2023-07-22 20:58:35 +00:00
grib_mars_keys1
grib_mars_keys2)
2015-03-12 18:21:52 +00:00
if( HAVE_AEC AND ENABLE_EXTRA_TESTS )
list(APPEND tests_extra grib_ecc-1431)
list(APPEND tests_extra grib_ecc-1433)
endif()
if( HAVE_FORTRAN AND ENABLE_EXTRA_TESTS )
2022-07-23 16:17:27 +00:00
list(APPEND tests_extra bufr_dump_encode_fortran)
list(APPEND tests_extra bufr_dump_decode_fortran)
endif()
if( ENABLE_EXTRA_TESTS )
2022-07-23 16:17:27 +00:00
list(APPEND tests_extra grib_util_set_spec)
list(APPEND tests_extra grib_padding)
list(APPEND tests_extra grib_tigge_conversions1)
list(APPEND tests_extra grib_tigge_conversions2)
list(APPEND tests_extra bufr_dump_encode_C)
list(APPEND tests_extra bufr_dump_decode_C)
2023-08-14 11:45:52 +00:00
list(APPEND tests_extra bufr_dump_encode_python)
list(APPEND tests_extra bufr_dump_decode_python)
2022-07-23 16:17:27 +00:00
list(APPEND tests_extra list_codetable_flagtable_keys)
endif()
2014-03-31 12:57:06 +00:00
# These tests do not require any data downloads
2022-07-23 16:17:27 +00:00
foreach( test ${tests_basic} )
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
2022-07-23 16:17:27 +00:00
foreach( test ${tests_extra} )
2016-09-14 10:54:57 +00:00
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_bufr_refs
eccodes_download_metars eccodes_download_gts )
2016-09-14 10:54:57 +00:00
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()
2014-03-31 12:57:06 +00:00
###########################################
# 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 )
2018-05-08 13:11:01 +00:00
# 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 )
2021-10-05 22:02:36 +00:00
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 eccodes_download_bufr_refs )
2021-10-05 22:02:36 +00:00
if( ENABLE_EXTRA_TESTS AND HAVE_ECCODES_THREADS )
ecbuild_add_executable( TARGET grib_encode_pthreads
2018-05-08 16:11:45 +00:00
NOINSTALL
SOURCES grib_encode_pthreads.cc
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}.cc
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
2023-10-10 20:46:57 +00:00
CONDITION HAVE_NETCDF AND ENABLE_EXTRA_TESTS AND NOT ECCODES_ON_WINDOWS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_to_netcdf.sh
TEST_DEPENDS eccodes_download_gribs )
ecbuild_add_test( TARGET eccodes_t_grib_jpeg
2018-07-27 16:40:13 +00:00
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 )
2014-03-31 12:57:06 +00:00
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 )
2022-03-12 17:24:38 +00:00
ecbuild_add_test( TARGET eccodes_t_codes_export_resource
TYPE SCRIPT
CONDITION ECCODES_INSTALL_EXTRA_TOOLS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/codes_export_resource.sh )
2021-01-06 19:19:21 +00:00
# Performance test. Must have -DENABLE_TIMER=ON
ecbuild_add_test( TARGET eccodes_t_grib_ecc-386
TYPE SCRIPT
2023-08-20 18:02:13 +00:00
CONDITION ENABLE_EXTRA_TESTS
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-386.sh
TEST_DEPENDS eccodes_download_gribs )
else()
2020-08-08 12:07:16 +00:00
# No command line tools
list(APPEND tests_no_tools
unit_tests
julian
bufr_check_descriptors
grib_sh_imag
grib_2nd_order_numValues
2020-08-08 12:07:16 +00:00
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()