• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1if(NOT MSVC)
2    add_compile_options(-fno-access-control)
3    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
4        add_compile_options(-Wno-thread-safety)
5    endif()
6
7    if(BUILD_TESTING)
8        add_executable(sws_io_test io_test.cpp)
9        target_link_libraries(sws_io_test simple-web-server)
10        add_test(NAME sws_io_test COMMAND sws_io_test)
11
12        add_executable(sws_parse_test parse_test.cpp)
13        target_link_libraries(sws_parse_test simple-web-server)
14        add_test(NAME sws_parse_test COMMAND sws_parse_test)
15    endif()
16endif()
17
18if(OPENSSL_FOUND AND BUILD_TESTING)
19    add_executable(sws_crypto_test crypto_test.cpp)
20    target_link_libraries(sws_crypto_test simple-web-server)
21    add_test(NAME sws_crypto_test COMMAND sws_crypto_test)
22endif()
23
24if(BUILD_TESTING)
25    add_executable(status_code_test status_code_test.cpp)
26    target_link_libraries(status_code_test simple-web-server)
27    add_test(NAME status_code_test COMMAND status_code_test)
28endif()
29
30if(BUILD_FUZZING)
31    add_executable(percent_decode fuzzers/percent_decode.cpp)
32    target_compile_options(percent_decode PRIVATE -fsanitize=address,fuzzer)
33    target_link_options(percent_decode PRIVATE -fsanitize=address,fuzzer)
34    target_link_libraries(percent_decode simple-web-server)
35
36    add_executable(query_string_parse fuzzers/query_string_parse.cpp)
37    target_compile_options(query_string_parse PRIVATE -fsanitize=address,fuzzer)
38    target_link_options(query_string_parse PRIVATE -fsanitize=address,fuzzer)
39    target_link_libraries(query_string_parse simple-web-server)
40
41    add_executable(http_header_parse fuzzers/http_header_parse.cpp)
42    target_compile_options(http_header_parse PRIVATE -fsanitize=address,fuzzer)
43    target_link_options(http_header_parse PRIVATE -fsanitize=address,fuzzer)
44    target_link_libraries(http_header_parse simple-web-server)
45
46    add_executable(http_header_field_value_semicolon_separated_attributes_parse fuzzers/http_header_field_value_semicolon_separated_attributes_parse.cpp)
47    target_compile_options(http_header_field_value_semicolon_separated_attributes_parse PRIVATE -fsanitize=address,fuzzer)
48    target_link_options(http_header_field_value_semicolon_separated_attributes_parse PRIVATE -fsanitize=address,fuzzer)
49    target_link_libraries(http_header_field_value_semicolon_separated_attributes_parse simple-web-server)
50
51    add_executable(request_message_parse fuzzers/request_message_parse.cpp)
52    target_compile_options(request_message_parse PRIVATE -fsanitize=address,fuzzer)
53    target_link_options(request_message_parse PRIVATE -fsanitize=address,fuzzer)
54    target_link_libraries(request_message_parse simple-web-server)
55
56    add_executable(response_message_parse fuzzers/response_message_parse.cpp)
57    target_compile_options(response_message_parse PRIVATE -fsanitize=address,fuzzer)
58    target_link_options(response_message_parse PRIVATE -fsanitize=address,fuzzer)
59    target_link_libraries(response_message_parse simple-web-server)
60endif()