| # =================================================================== |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # =================================================================== |
| |
| |
| set(TEST_ALL_SOURCES |
| "test_all.c" |
| "CuTest.c" |
| "test_util.c" |
| "test_context.c" |
| "test_buckets.c" |
| "test_auth.c" |
| "test_internal.c" |
| "test_server.c" |
| "mock_buckets.c" |
| "mock_sock_buckets.c" |
| "test_ssl.c" |
| "MockHTTPinC/MockHTTP.c" |
| "MockHTTPinC/MockHTTP_server.c" |
| ) |
| |
| set(SIMPLE_TEST_TARGETS |
| "serf_get" |
| "serf_response" |
| "serf_request" |
| "serf_spider" |
| "serf_httpd" |
| "serf_bwtp" |
| ) |
| |
| if(CC_LIKE_GNUC) |
| # MockHTTP requires C99 standard, so use it for the test suite. |
| string(REPLACE "-std=c89" "-std=c99" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) |
| endif() |
| |
| foreach(TEST_TARGET ${SIMPLE_TEST_TARGETS}) |
| add_executable(${TEST_TARGET} "${TEST_TARGET}.c") |
| add_dependencies(${TEST_TARGET} serf_static) |
| target_link_libraries(${TEST_TARGET} serf_static) |
| endforeach() |
| |
| add_executable(test_all ${TEST_ALL_SOURCES}) |
| add_dependencies(test_all serf_static) |
| target_compile_definitions(test_all PRIVATE "-DMOCKHTTP_OPENSSL") |
| target_include_directories(test_all SYSTEM BEFORE PRIVATE ${SERF_DEPENDENCY_INCLUDES}) |
| target_link_libraries(test_all serf_static) |
| |
| file(GLOB RESPONSE_TEST_CASES "${CMAKE_CURRENT_SOURCE_DIR}/testcases/*.response") |
| foreach(TEST_CASE ${RESPONSE_TEST_CASES}) |
| get_filename_component(TEST_CASE_NAME ${TEST_CASE} NAME) |
| add_test(NAME "${TEST_CASE_NAME}" COMMAND serf_response "${TEST_CASE}") |
| list(APPEND RESPONSE_TESTS "${TEST_CASE_NAME}") |
| endforeach() |
| |
| add_test(NAME test_all COMMAND test_all) |
| |
| set_tests_properties(${RESPONSE_TESTS} test_all PROPERTIES |
| ENVIRONMENT srcdir=${SERF_SOURCE_DIR}) |