mirror of https://github.com/ecmwf/eccodes.git
117 lines
3.6 KiB
CMake
117 lines
3.6 KiB
CMake
# examples/python/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} )
|
|
|
|
# Build the executables used by test scripts
|
|
################################################
|
|
list( APPEND test_bins
|
|
grib_keys_iterator
|
|
grib_print_data
|
|
grib_iterator
|
|
grib_count_messages
|
|
)
|
|
|
|
foreach( tool ${test_bins} )
|
|
ecbuild_add_executable( TARGET p_${tool}
|
|
NOINSTALL
|
|
SOURCES ${tool}.c
|
|
CONDITION HAVE_PYTHON
|
|
LIBS eccodes
|
|
)
|
|
list( APPEND ptools p_${tool} )
|
|
endforeach()
|
|
|
|
|
|
# Now add each test
|
|
#################################################
|
|
list( APPEND tests_basic
|
|
grib_set_pv
|
|
grib_read_sample
|
|
bufr_read_sample
|
|
)
|
|
list( APPEND tests_extra
|
|
grib_clone
|
|
grib_count_messages
|
|
grib_get_message_offset
|
|
grib_get_keys
|
|
grib_index
|
|
grib_iterator
|
|
grib_keys_iterator
|
|
grib_multi_write
|
|
grib_nearest
|
|
grib_print_data
|
|
grib_samples
|
|
grib_set_missing
|
|
binary_message
|
|
grib_set_bitmap
|
|
bufr_attributes
|
|
bufr_clone
|
|
bufr_copy_data
|
|
bufr_expanded
|
|
bufr_get_keys
|
|
bufr_keys_iterator
|
|
bufr_read_header
|
|
bufr_read_scatterometer
|
|
bufr_read_tropical_cyclone
|
|
bufr_read_synop
|
|
bufr_read_temp
|
|
bufr_set_keys
|
|
bufr_subset
|
|
get_product_kind
|
|
gts_get_keys
|
|
metar_get_keys
|
|
bufr_ecc-448
|
|
)
|
|
|
|
# The high level python test requires new features in the unittest
|
|
# which are only there for python 2.7 onwards
|
|
if( HAVE_PYTHON AND PYTHON_VERSION_STRING VERSION_GREATER "2.7" )
|
|
ecbuild_info("Python examples: Adding test for High-level Pythonic Interface")
|
|
list( APPEND tests_extra high_level_api )
|
|
list( APPEND tests_extra grib_set_keys ) # Uses OrderedDict
|
|
endif()
|
|
|
|
foreach( test ${tests_basic} )
|
|
ecbuild_add_test( TARGET eccodes_p_${test}_test
|
|
TYPE SCRIPT
|
|
DEPENDS ${ptools}
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
|
|
CONDITION HAVE_PYTHON
|
|
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
|
|
)
|
|
endforeach()
|
|
foreach( test ${tests_extra} )
|
|
ecbuild_add_test( TARGET eccodes_p_${test}_test
|
|
TYPE SCRIPT
|
|
DEPENDS ${ptools}
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/${test}.sh
|
|
CONDITION HAVE_PYTHON AND ENABLE_EXTRA_TESTS
|
|
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
|
|
TEST_DEPENDS eccodes_download_gribs eccodes_download_tigge_gribs eccodes_download_bufrs
|
|
)
|
|
endforeach()
|
|
|
|
# Add test which requires input CSV file
|
|
ecbuild_add_test( TARGET eccodes_p_bufr_encode_flight_test
|
|
TYPE SCRIPT
|
|
DEPENDS ${ptools}
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bufr_encode_flight.sh
|
|
CONDITION HAVE_PYTHON AND ENABLE_EXTRA_TESTS
|
|
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
|
|
RESOURCES flight_data.csv
|
|
TEST_DEPENDS eccodes_download_bufrs
|
|
)
|
|
|
|
# Conditional tests
|
|
ecbuild_add_test( TARGET eccodes_p_grib_ccsds_test
|
|
TYPE SCRIPT
|
|
DEPENDS ${ptools}
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ccsds.sh
|
|
CONDITION HAVE_PYTHON AND HAVE_AEC AND ENABLE_EXTRA_TESTS
|
|
ENVIRONMENT PYTHON=${PYTHON_EXECUTABLE}
|
|
TEST_DEPENDS eccodes_download_gribs
|
|
)
|