blob: 5c97544582eed5a89459de80b3399a2dc699365b [file] [log] [blame]
# ===================================================================
# 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})