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()