# Copyright © Advanced Micro Devices, Inc., or its affiliates. # SPDX-License-Identifier: MIT include(GoogleTest) find_package(hip REQUIRED) find_package(Threads REQUIRED) # Main integration test executable WITH HipErrorHandler add_executable( hipdnn_public_backend_tests main.cpp IntegrationBackendDescriptor.cpp IntegrationBackendExecuteApi.cpp IntegrationConvOperationDescriptorApi.cpp IntegrationGraphDescriptorApi.cpp IntegrationEngineApi.cpp IntegrationEngineConfigApi.cpp IntegrationEngineHeuristicApi.cpp IntegrationExecutionPlanApi.cpp IntegrationGetLastErrorString.cpp IntegrationHandleApi.cpp IntegrationKnobsApi.cpp IntegrationLoggingPipeline.cpp IntegrationPluginLoading.cpp IntegrationPluginLogLevel.cpp IntegrationSetPluginPathsExt.cpp IntegrationSetPluginUnloadingModeExt.cpp IntegrationTensorDescriptorApi.cpp IntegrationVariantPackApi.cpp TestUtil.cpp ) target_compile_options(hipdnn_public_backend_tests PRIVATE ${HIPDNN_WARNING_COMPILE_OPTIONS}) target_link_libraries( hipdnn_public_backend_tests PRIVATE GTest::gtest GTest::gtest_main Threads::Threads hipdnn_test_sdk hipdnn_flatbuffers_sdk hipdnn_plugin_sdk hipdnn_backend hip::host ) # Enable spdlog support (tests include backend internal headers that use spdlog/fmt) hipdnn_enable_spdlog(hipdnn_public_backend_tests) target_include_directories(hipdnn_public_backend_tests PRIVATE ${HIPDNN_TEST_INCLUDE_DIRS}) target_compile_definitions( hipdnn_public_backend_tests PRIVATE TEST_GOOD_PLUGIN_NAME="${TEST_GOOD_PLUGIN_NAME}" TEST_EXECUTE_FAILS_PLUGIN_NAME="${TEST_EXECUTE_FAILS_PLUGIN_NAME}" TEST_NO_APPLICABLE_ENGINES_A_PLUGIN_NAME="${TEST_NO_APPLICABLE_ENGINES_A_PLUGIN_NAME}" TEST_NO_APPLICABLE_ENGINES_B_PLUGIN_NAME="${TEST_NO_APPLICABLE_ENGINES_B_PLUGIN_NAME}" TEST_DUPLICATE_ID_A_PLUGIN_NAME="${TEST_DUPLICATE_ID_A_PLUGIN_NAME}" TEST_DUPLICATE_ID_B_PLUGIN_NAME="${TEST_DUPLICATE_ID_B_PLUGIN_NAME}" TEST_INCOMPLETE_API_PLUGIN_NAME="${TEST_INCOMPLETE_API_PLUGIN_NAME}" TEST_GOOD_DEFAULT_PLUGIN_NAME="${TEST_GOOD_DEFAULT_PLUGIN_NAME}" TEST_KNOBS_PLUGIN_NAME="${TEST_KNOBS_PLUGIN_NAME}" TEST_KNOB_CONSTRAINT_VALIDATION_PLUGIN_NAME="${TEST_KNOB_CONSTRAINT_VALIDATION_PLUGIN_NAME}" TEST_INCOMPATIBLE_VERSION_PLUGIN_NAME="${TEST_INCOMPATIBLE_VERSION_PLUGIN_NAME}" TEST_OVERRIDE_IMPLEMENTING_PLUGIN_NAME="${HIPDNN_TEST_OVERRIDE_IMPLEMENTING_PLUGIN_TARGET}" TEST_OVERRIDE_OMITTING_PLUGIN_NAME="${HIPDNN_TEST_OVERRIDE_OMITTING_PLUGIN_TARGET}" TEST_VERSION_LIAR_PLUGIN_NAME="${HIPDNN_TEST_VERSION_LIAR_PLUGIN_TARGET}" TEST_SECOND_OVERRIDE_PLUGIN_NAME="${HIPDNN_TEST_SECOND_OVERRIDE_PLUGIN_TARGET}" TEST_MALFORMED_VERSION_PLUGIN_NAME="${HIPDNN_TEST_MALFORMED_VERSION_PLUGIN_TARGET}" TEST_VERSION_ZERO_PLUGIN_NAME="${HIPDNN_TEST_VERSION_ZERO_PLUGIN_TARGET}" TEST_PASS_BY_VALUE_PLUGIN_NAME="${HIPDNN_TEST_PASS_BY_VALUE_PLUGIN_TARGET}" TEST_GOOD_HEURISTIC_PLUGIN_NAME="${TEST_GOOD_HEURISTIC_PLUGIN_NAME}" ) # Ensure test plugins are built before tests add_dependencies( hipdnn_public_backend_tests test_good_plugin test_execute_fails_plugin test_no_applicable_engines_a_plugin test_no_applicable_engines_b_plugin test_good_default_plugin test_duplicate_id_a_plugin test_duplicate_id_b_plugin test_incomplete_api_plugin test_knobs_plugin test_knob_constraint_validation_plugin test_incompatible_version_plugin ${HIPDNN_TEST_OVERRIDE_IMPLEMENTING_PLUGIN_TARGET} ${HIPDNN_TEST_OVERRIDE_OMITTING_PLUGIN_TARGET} ${HIPDNN_TEST_VERSION_LIAR_PLUGIN_TARGET} ${HIPDNN_TEST_SECOND_OVERRIDE_PLUGIN_TARGET} ${HIPDNN_TEST_MALFORMED_VERSION_PLUGIN_TARGET} ${HIPDNN_TEST_VERSION_ZERO_PLUGIN_TARGET} ${HIPDNN_TEST_PASS_BY_VALUE_PLUGIN_TARGET} test_good_heuristic_plugin ) clang_tidy_check(hipdnn_public_backend_tests) add_hipdnn_test(hipdnn_public_backend_tests ${CMAKE_CURRENT_BINARY_DIR})