mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-09 15:50:26 +03:00
Add CMake support for tests
This commit is contained in:
parent
d8230644b2
commit
61bcfebcc8
@ -20,12 +20,17 @@ option(WITH_UPNP "Include support for UPnP client" OFF)
|
||||
option(WITH_GIT_VERSION "Use git commit info as version" OFF)
|
||||
option(WITH_ADDRSANITIZER "Build with address sanitizer unix only" OFF)
|
||||
option(WITH_THREADSANITIZER "Build with thread sanitizer unix only" OFF)
|
||||
option(BUILD_TESTING "Build tests" OFF)
|
||||
|
||||
IF(BUILD_TESTING)
|
||||
enable_testing()
|
||||
ENDIF()
|
||||
|
||||
# paths
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules")
|
||||
set(CMAKE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||
|
||||
#Handle paths nicely
|
||||
# Handle paths nicely
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# architecture
|
||||
@ -275,9 +280,13 @@ if(WITH_BINARY)
|
||||
set(DL_LIB ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
|
||||
target_link_libraries("${PROJECT_NAME}" libi2pd libi2pdclient libi2pdlang ${DL_LIB} ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto ${MINIUPNPC_LIBRARY} ZLIB::ZLIB Threads::Threads ${DL_LIB} ${CMAKE_REQUIRED_LIBRARIES})
|
||||
target_link_libraries("${PROJECT_NAME}" libi2pd libi2pdclient libi2pdlang ${Boost_LIBRARIES} OpenSSL::SSL OpenSSL::Crypto ${MINIUPNPC_LIBRARY} ZLIB::ZLIB Threads::Threads ${DL_LIB} ${CMAKE_REQUIRED_LIBRARIES})
|
||||
|
||||
install(TARGETS "${PROJECT_NAME}" RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Runtime)
|
||||
set(APPS "\${CMAKE_INSTALL_PREFIX}/bin/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
|
||||
set(DIRS "${Boost_LIBRARY_DIR};${OPENSSL_INCLUDE_DIR}/../bin;${ZLIB_INCLUDE_DIR}/../bin;/mingw32/bin")
|
||||
endif()
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/tests ${CMAKE_CURRENT_BINARY_DIR}/tests)
|
||||
endif()
|
||||
|
55
build/cmake_modules/FindCheck.cmake
Normal file
55
build/cmake_modules/FindCheck.cmake
Normal file
@ -0,0 +1,55 @@
|
||||
# - Try to find the CHECK libraries
|
||||
# Once done this will define
|
||||
#
|
||||
# CHECK_FOUND - system has check
|
||||
# CHECK_INCLUDE_DIRS - the check include directory
|
||||
# CHECK_LIBRARIES - check library
|
||||
#
|
||||
# Copyright (c) 2007 Daniel Gollub <gollub@b1-systems.de>
|
||||
# Copyright (c) 2007-2009 Bjoern Ricks <bjoern.ricks@gmail.com>
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the New
|
||||
# BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||||
|
||||
|
||||
INCLUDE( FindPkgConfig )
|
||||
|
||||
IF ( Check_FIND_REQUIRED )
|
||||
SET( _pkgconfig_REQUIRED "REQUIRED" )
|
||||
ELSE( Check_FIND_REQUIRED )
|
||||
SET( _pkgconfig_REQUIRED "" )
|
||||
ENDIF ( Check_FIND_REQUIRED )
|
||||
|
||||
IF ( CHECK_MIN_VERSION )
|
||||
PKG_SEARCH_MODULE( CHECK ${_pkgconfig_REQUIRED} check>=${CHECK_MIN_VERSION} )
|
||||
ELSE ( CHECK_MIN_VERSION )
|
||||
PKG_SEARCH_MODULE( CHECK ${_pkgconfig_REQUIRED} check )
|
||||
ENDIF ( CHECK_MIN_VERSION )
|
||||
|
||||
# Look for CHECK include dir and libraries
|
||||
IF( NOT CHECK_FOUND AND NOT PKG_CONFIG_FOUND )
|
||||
|
||||
FIND_PATH( CHECK_INCLUDE_DIRS check.h )
|
||||
|
||||
FIND_LIBRARY( CHECK_LIBRARIES NAMES check )
|
||||
|
||||
IF ( CHECK_INCLUDE_DIRS AND CHECK_LIBRARIES )
|
||||
SET( CHECK_FOUND 1 )
|
||||
IF ( NOT Check_FIND_QUIETLY )
|
||||
MESSAGE ( STATUS "Found CHECK: ${CHECK_LIBRARIES}" )
|
||||
ENDIF ( NOT Check_FIND_QUIETLY )
|
||||
ELSE ( CHECK_INCLUDE_DIRS AND CHECK_LIBRARIES )
|
||||
IF ( Check_FIND_REQUIRED )
|
||||
MESSAGE( FATAL_ERROR "Could NOT find CHECK" )
|
||||
ELSE ( Check_FIND_REQUIRED )
|
||||
IF ( NOT Check_FIND_QUIETLY )
|
||||
MESSAGE( STATUS "Could NOT find CHECK" )
|
||||
ENDIF ( NOT Check_FIND_QUIETLY )
|
||||
ENDIF ( Check_FIND_REQUIRED )
|
||||
ENDIF ( CHECK_INCLUDE_DIRS AND CHECK_LIBRARIES )
|
||||
ENDIF( NOT CHECK_FOUND AND NOT PKG_CONFIG_FOUND )
|
||||
|
||||
# Hide advanced variables from CMake GUIs
|
||||
MARK_AS_ADVANCED( CHECK_INCLUDE_DIRS CHECK_LIBRARIES )
|
||||
|
138
tests/CMakeLists.txt
Normal file
138
tests/CMakeLists.txt
Normal file
@ -0,0 +1,138 @@
|
||||
enable_testing()
|
||||
find_package(Check 0.9.10 REQUIRED)
|
||||
include_directories(${CHECK_INCLUDE_DIRS})
|
||||
|
||||
# Compiler flags:
|
||||
if(APPLE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-parameter -Wextra -pedantic -O0 -g -Wl,-undefined,dynamic_lookup")
|
||||
else()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-parameter -Wextra -pedantic -O0 -g -D_GLIBCXX_USE_NANOSLEEP=1 -Wl,--unresolved-symbols=ignore-in-object-files")
|
||||
endif()
|
||||
|
||||
set(TEST_PATH ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
include_directories(
|
||||
../libi2pd
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${OPENSSL_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
set(test-http-merge_chunked_SRCS
|
||||
../libi2pd/HTTP.cpp
|
||||
test-http-merge_chunked.cpp
|
||||
)
|
||||
|
||||
set(test-http-req_SRCS
|
||||
../libi2pd/HTTP.cpp
|
||||
test-http-req.cpp
|
||||
)
|
||||
|
||||
set(test-http-res_SRCS
|
||||
../libi2pd/HTTP.cpp
|
||||
test-http-res.cpp
|
||||
)
|
||||
|
||||
set(test-http-url_decode_SRCS
|
||||
../libi2pd/HTTP.cpp
|
||||
test-http-url_decode.cpp
|
||||
)
|
||||
|
||||
set(test-http-url_SRCS
|
||||
../libi2pd/HTTP.cpp
|
||||
test-http-url.cpp
|
||||
)
|
||||
|
||||
set(test-base-64_SRCS
|
||||
../libi2pd/Base.cpp
|
||||
test-base-64.cpp
|
||||
)
|
||||
|
||||
set(test-gost_SRCS
|
||||
../libi2pd/Gost.cpp
|
||||
../libi2pd/I2PEndian.cpp
|
||||
test-gost.cpp
|
||||
)
|
||||
|
||||
set(test-gost-sig_SRCS
|
||||
../libi2pd/Gost.cpp
|
||||
../libi2pd/I2PEndian.cpp
|
||||
../libi2pd/Crypto.cpp
|
||||
../libi2pd/Log.cpp
|
||||
test-gost-sig.cpp
|
||||
)
|
||||
|
||||
set(test-x25519_SRCS
|
||||
../libi2pd/Ed25519.cpp
|
||||
../libi2pd/I2PEndian.cpp
|
||||
../libi2pd/Log.cpp
|
||||
../libi2pd/Crypto.cpp
|
||||
test-x25519.cpp
|
||||
)
|
||||
|
||||
set(test-aeadchacha20poly1305_SRCS
|
||||
../libi2pd/Crypto.cpp
|
||||
../libi2pd/ChaCha20.cpp
|
||||
../libi2pd/Poly1305.cpp
|
||||
test-aeadchacha20poly1305.cpp
|
||||
)
|
||||
|
||||
set(test-blinding_SRCS
|
||||
../libi2pd/Crypto.cpp
|
||||
../libi2pd/Blinding.cpp
|
||||
../libi2pd/Ed25519.cpp
|
||||
../libi2pd/I2PEndian.cpp
|
||||
../libi2pd/Log.cpp
|
||||
../libi2pd/util.cpp
|
||||
../libi2pd/Identity.cpp
|
||||
../libi2pd/Signature.cpp
|
||||
../libi2pd/Timestamp.cpp
|
||||
test-blinding.cpp
|
||||
)
|
||||
|
||||
SET(test-elligator_SRCS
|
||||
../libi2pd/Elligator.cpp
|
||||
../libi2pd/Crypto.cpp
|
||||
test-elligator.cpp
|
||||
)
|
||||
|
||||
add_executable(test-http-merge_chunked ${test-http-merge_chunked_SRCS})
|
||||
add_executable(test-http-req ${test-http-req_SRCS})
|
||||
add_executable(test-http-res ${test-http-res_SRCS})
|
||||
add_executable(test-http-url_decode ${test-http-url_decode_SRCS})
|
||||
add_executable(test-http-url ${test-http-url_SRCS})
|
||||
add_executable(test-base-64 ${test-base-64_SRCS})
|
||||
add_executable(test-gost ${test-gost_SRCS})
|
||||
add_executable(test-gost-sig ${test-gost-sig_SRCS})
|
||||
add_executable(test-x25519 ${test-x25519_SRCS})
|
||||
add_executable(test-aeadchacha20poly1305 ${test-aeadchacha20poly1305_SRCS})
|
||||
add_executable(test-blinding ${test-blinding_SRCS})
|
||||
add_executable(test-elligator ${test-elligator_SRCS})
|
||||
|
||||
set(LIBS
|
||||
${Boost_LIBRARIES}
|
||||
${CHECK_LDFLAGS}
|
||||
${CMAKE_REQUIRED_LIBRARIES}
|
||||
OpenSSL::SSL
|
||||
OpenSSL::Crypto
|
||||
Threads::Threads
|
||||
)
|
||||
|
||||
target_link_libraries(test-gost OpenSSL::Crypto Threads::Threads)
|
||||
target_link_libraries(test-gost-sig ${LIBS})
|
||||
target_link_libraries(test-x25519 ${LIBS})
|
||||
target_link_libraries(test-aeadchacha20poly1305 ${LIBS})
|
||||
target_link_libraries(test-blinding ${LIBS})
|
||||
target_link_libraries(test-elligator ${LIBS})
|
||||
|
||||
add_test(test-http-merge_chunked ${TEST_PATH}/test-http-merge_chunked)
|
||||
add_test(test-http-req ${TEST_PATH}/test-http-req)
|
||||
add_test(test-http-res ${TEST_PATH}/test-http-res)
|
||||
add_test(test-http-url_decode ${TEST_PATH}/test-http-url_decode)
|
||||
add_test(test-http-url ${TEST_PATH}/test-http-url)
|
||||
add_test(test-base-64 ${TEST_PATH}/test-base-64)
|
||||
add_test(test-gost ${TEST_PATH}/test-gost)
|
||||
add_test(test-gost-sig ${TEST_PATH}/test-gost-sig)
|
||||
add_test(test-x25519 ${TEST_PATH}/test-x25519)
|
||||
add_test(test-aeadchacha20poly1305 ${TEST_PATH}/test-aeadchacha20poly1305)
|
||||
add_test(test-blinding ${TEST_PATH}/test-blinding)
|
||||
add_test(test-elligator ${TEST_PATH}/test-elligator)
|
@ -17,7 +17,7 @@ test-gost: ../libi2pd/Gost.cpp ../libi2pd/I2PEndian.cpp test-gost.cpp
|
||||
test-gost-sig: ../libi2pd/Gost.cpp ../libi2pd/I2PEndian.cpp ../libi2pd/Crypto.cpp ../libi2pd/Log.cpp test-gost-sig.cpp
|
||||
$(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) -o $@ $^ -lcrypto -lssl -lboost_system
|
||||
|
||||
test-x25519: ../libi2pd/Ed25519.cpp ../libi2pd/I2PEndian.cpp ../libi2pd/Log.cpp ../libi2pd/Crypto.cpp test-x25519.cpp
|
||||
test-x25519: ../libi2pd/Ed25519.cpp ../libi2pd/I2PEndian.cpp ../libi2pd/Log.cpp ../libi2pd/Crypto.cpp test-x25519.cpp
|
||||
$(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) -o $@ $^ -lcrypto -lssl -lboost_system
|
||||
|
||||
test-aeadchacha20poly1305: ../libi2pd/Crypto.cpp ../libi2pd/ChaCha20.cpp ../libi2pd/Poly1305.cpp test-aeadchacha20poly1305.cpp
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <cassert>
|
||||
#include "../HTTP.h"
|
||||
#include "HTTP.h"
|
||||
|
||||
using namespace i2p::http;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <cassert>
|
||||
#include "../HTTP.h"
|
||||
#include "HTTP.h"
|
||||
|
||||
using namespace i2p::http;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <cassert>
|
||||
#include "../HTTP.h"
|
||||
#include "HTTP.h"
|
||||
|
||||
using namespace i2p::http;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <cassert>
|
||||
#include "../HTTP.h"
|
||||
#include "HTTP.h"
|
||||
|
||||
using namespace i2p::http;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <cassert>
|
||||
#include "../HTTP.h"
|
||||
#include "HTTP.h"
|
||||
|
||||
using namespace i2p::http;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user