| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- # Copyright The OpenTelemetry Authors
- # SPDX-License-Identifier: Apache-2.0
- cmake_minimum_required(VERSION 3.14)
- project(opentelemetry-cpp-component-install-tests LANGUAGES CXX)
- if(NOT INSTALL_TEST_CMAKE_OPTIONS)
- set(INSTALL_TEST_CMAKE_OPTIONS
- "-DCMAKE_CXX_STANDARD=14 -DCMAKE_BUILD_TYPE=Debug")
- endif()
- separate_arguments(INSTALL_TEST_CMAKE_OPTIONS)
- message(
- STATUS "INSTALL_TEST_CMAKE_OPTIONS is set to ${INSTALL_TEST_CMAKE_OPTIONS}")
- find_package(opentelemetry-cpp CONFIG REQUIRED)
- message(
- STATUS
- "OPENTELEMETRY_CPP_COMPONENTS_INSTALLED = ${OPENTELEMETRY_CPP_COMPONENTS_INSTALLED}"
- )
- # Check that INSTALL_TEST_COMPONENTS is set and contains installed components
- if(NOT INSTALL_TEST_COMPONENTS)
- message(
- STATUS
- "INSTALL_TEST_COMPONENTS is not set. Setting to OPENTELEMETRY_CPP_COMPONENTS_INSTALLED"
- )
- set(INSTALL_TEST_COMPONENTS ${OPENTELEMETRY_CPP_COMPONENTS_INSTALLED})
- else()
- set(COMPONENTS_ARE_VALID TRUE)
- foreach(component ${INSTALL_TEST_COMPONENTS})
- if(NOT component IN_LIST OPENTELEMETRY_CPP_COMPONENTS_INSTALLED)
- message(
- ERROR
- " Component ${component} is not an installed opentelemetry-cpp component"
- )
- set(COMPONENTS_ARE_VALID FALSE)
- endif()
- endforeach()
- if(NOT COMPONENTS_ARE_VALID)
- message(FATAL_ERROR "INSTALL_TEST_COMPONENTS contains invalid components")
- endif()
- endif()
- message(STATUS "INSTALL_TEST_COMPONENTS = ${INSTALL_TEST_COMPONENTS}")
- set(INSTALL_TEST_SRC_DIR "${CMAKE_SOURCE_DIR}/../src")
- enable_testing()
- # -----------------------------------------------------------
- # CMake Usage tests for find_package(opentelemetry-cpp ...)
- #
- # 1. Test find_package with no components specified
- # 2. Test find_package with components specified but not sorted in dependency
- # order
- # 3. Test find_package with components specified but missing dependent components
- # 4. Test find_package with components specified but including
- # unsupported/unknown components
- add_test(
- NAME cmake-usage-no-components-test
- COMMAND
- ${CMAKE_COMMAND} --log-level=DEBUG -S
- ${CMAKE_SOURCE_DIR}/usage_tests/no_components -B
- build-cmake-usage-no-components-test
- "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}" ${INSTALL_TEST_CMAKE_OPTIONS})
- add_test(
- NAME cmake-usage-unsorted-components-test
- COMMAND
- ${CMAKE_COMMAND} --log-level=DEBUG -S
- ${CMAKE_SOURCE_DIR}/usage_tests/unsorted_components -B
- build-cmake-usage-unsorted-components-test
- "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}" ${INSTALL_TEST_CMAKE_OPTIONS})
- add_test(
- NAME cmake-usage-missing-components-test
- COMMAND
- ${CMAKE_COMMAND} --log-level=DEBUG -S
- ${CMAKE_SOURCE_DIR}/usage_tests/missing_components -B
- build-cmake-usage-missing-components-test
- "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}" ${INSTALL_TEST_CMAKE_OPTIONS})
- add_test(
- NAME cmake-usage-unsupported-components-test
- COMMAND
- ${CMAKE_COMMAND} --log-level=DEBUG -S
- ${CMAKE_SOURCE_DIR}/usage_tests/unsupported_components -B
- build-cmake-usage-unsupported-components-test
- "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}" ${INSTALL_TEST_CMAKE_OPTIONS})
- # -----------------------------------------------------------
- # Test the full package install using legacy cmake build instructions
- # find_package(opentelemetry-cpp CONFIG REQUIRED)
- # Test cmake configuration
- add_test(
- NAME full-package-cmake-config-test
- COMMAND
- ${CMAKE_COMMAND} --log-level=DEBUG -S ${CMAKE_SOURCE_DIR}/package_test -B
- build-full-package-test "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
- ${INSTALL_TEST_CMAKE_OPTIONS}
- "-DINSTALL_TEST_COMPONENTS=${INSTALL_TEST_COMPONENTS}"
- "-DINSTALL_TEST_SRC_DIR=${INSTALL_TEST_SRC_DIR}")
- # Build the full package test executable
- add_test(NAME full-package-build-test
- COMMAND ${CMAKE_COMMAND} --build
- ${CMAKE_BINARY_DIR}/build-full-package-test --parallel)
- # Run the full package test executable
- add_test(NAME full-package-run-test
- COMMAND ${CMAKE_BINARY_DIR}/build-full-package-test/full_test)
- # -----------------------------------------------------------
- # -----------------------------------------------------------
- # Loop over all the components to test
- foreach(component ${INSTALL_TEST_COMPONENTS})
- # Test cmake configuration
- add_test(
- NAME component-${component}-cmake-config-test
- COMMAND
- ${CMAKE_COMMAND} --log-level=DEBUG -S
- ${CMAKE_SOURCE_DIR}/component_tests/${component} -B
- build-${component}-test "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
- ${INSTALL_TEST_CMAKE_OPTIONS}
- "-DINSTALL_TEST_SRC_DIR=${INSTALL_TEST_SRC_DIR}")
- # Build the component test executable
- add_test(NAME component-${component}-build-test
- COMMAND ${CMAKE_COMMAND} --build
- ${CMAKE_BINARY_DIR}/build-${component}-test --parallel)
- # Run the component test executable
- add_test(
- NAME component-${component}-run-test
- COMMAND ${CMAKE_BINARY_DIR}/build-${component}-test/${component}_test)
- endforeach()
|