summaryrefslogtreecommitdiff
path: root/libs/cpp-httplib/test/CMakeLists.txt
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-09-27 18:38:35 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-09-27 18:38:35 +0200
commitd8c4d84dc75300c6d4d8b0adceafa33741960b92 (patch)
tree00e2dfcc5c836d62fccff76c862e6ec3b0a74db8 /libs/cpp-httplib/test/CMakeLists.txt
parentfa088bb60692ba02d30d39affa9a31d9e2b688e2 (diff)
added http lib, working on AI invoice importing
Diffstat (limited to 'libs/cpp-httplib/test/CMakeLists.txt')
-rw-r--r--libs/cpp-httplib/test/CMakeLists.txt121
1 files changed, 121 insertions, 0 deletions
diff --git a/libs/cpp-httplib/test/CMakeLists.txt b/libs/cpp-httplib/test/CMakeLists.txt
new file mode 100644
index 0000000..d4e684c
--- /dev/null
+++ b/libs/cpp-httplib/test/CMakeLists.txt
@@ -0,0 +1,121 @@
+find_package(GTest)
+
+if(GTest_FOUND)
+ if(NOT TARGET GTest::gtest_main AND TARGET GTest::Main)
+ # CMake <3.20
+ add_library(GTest::gtest_main INTERFACE IMPORTED)
+ target_link_libraries(GTest::gtest_main INTERFACE GTest::Main)
+ endif()
+else()
+ if(POLICY CMP0135)
+ cmake_policy(SET CMP0135 NEW)
+ endif()
+
+ include(FetchContent)
+
+ set(BUILD_GMOCK OFF)
+ set(INSTALL_GTEST OFF)
+ set(gtest_force_shared_crt ON)
+
+ FetchContent_Declare(
+ gtest
+ URL https://github.com/google/googletest/archive/main.tar.gz
+ )
+ FetchContent_MakeAvailable(gtest)
+endif()
+
+find_package(CURL REQUIRED)
+
+add_executable(httplib-test test.cc include_httplib.cc $<$<BOOL:${WIN32}>:include_windows_h.cc>)
+target_compile_options(httplib-test PRIVATE "$<$<CXX_COMPILER_ID:MSVC>:/utf-8;/bigobj>")
+target_link_libraries(httplib-test PRIVATE httplib GTest::gtest_main CURL::libcurl)
+gtest_discover_tests(httplib-test)
+
+file(
+ COPY www www2 www3 ca-bundle.crt image.jpg
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+if(HTTPLIB_IS_USING_OPENSSL)
+ if (OPENSSL_VERSION VERSION_LESS "3.2.0")
+ set(OPENSSL_X509_FLAG "-x509")
+ else()
+ set(OPENSSL_X509_FLAG "-x509v1")
+ endif()
+ find_program(OPENSSL_COMMAND
+ NAMES openssl
+ PATHS ${OPENSSL_INCLUDE_DIR}/../bin
+ REQUIRED
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} genrsa 2048
+ OUTPUT_FILE key.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} req -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key key.pem
+ COMMAND ${OPENSSL_COMMAND} x509 -days 3650 -req -signkey key.pem
+ OUTPUT_FILE cert.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} req ${OPENSSL_X509_FLAG} -new -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key key.pem -sha256 -days 3650 -nodes -out cert2.pem -extensions SAN
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} genrsa 2048
+ OUTPUT_FILE rootCA.key.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} req ${OPENSSL_X509_FLAG} -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.rootCA.conf -key rootCA.key.pem -days 1024
+ OUTPUT_FILE rootCA.cert.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} genrsa 2048
+ OUTPUT_FILE client.key.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} req -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key client.key.pem
+ COMMAND ${OPENSSL_COMMAND} x509 -days 370 -req -CA rootCA.cert.pem -CAkey rootCA.key.pem -CAcreateserial
+ OUTPUT_FILE client.cert.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} genrsa -passout pass:test123! 2048
+ OUTPUT_FILE key_encrypted.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} req -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key key_encrypted.pem
+ COMMAND ${OPENSSL_COMMAND} x509 -days 3650 -req -signkey key_encrypted.pem
+ OUTPUT_FILE cert_encrypted.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} genrsa -aes256 -passout pass:test012! 2048
+ OUTPUT_FILE client_encrypted.key.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+ execute_process(
+ COMMAND ${OPENSSL_COMMAND} req -new -batch -config ${CMAKE_CURRENT_LIST_DIR}/test.conf -key client_encrypted.key.pem -passin pass:test012!
+ COMMAND ${OPENSSL_COMMAND} x509 -days 370 -req -CA rootCA.cert.pem -CAkey rootCA.key.pem -CAcreateserial
+ OUTPUT_FILE client_encrypted.cert.pem
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND_ERROR_IS_FATAL ANY
+ )
+endif()
+
+add_subdirectory(fuzzing)