mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-09-08 07:42:55 +02:00
141 lines
4.9 KiB
CMake
141 lines
4.9 KiB
CMake
# 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()
|