Files
Eric F d398a6ced2 Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter
- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
2026-06-08 00:38:27 -04:00

213 lines
4.9 KiB
CMake

get_target_property(GENERATED_INCLUDE_DIR generate_cpp_files EVEREST_GENERATED_INCLUDE_DIR)
find_package(libevent)
find_package(OpenSSL 3)
set(LIB_EVEREST_TLS_TESTS_DIR "${PROJECT_SOURCE_DIR}/lib/everest/tls/tests")
set(TESTS_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/tests/include")
set(TLS_TEST_FILES
alt_openssl-pki.conf
iso_pkey.asn1
openssl-pki.conf
ocsp_response.der
pki.sh
)
add_custom_command(
OUTPUT ${TLS_TEST_FILES}
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/pki
COMMAND cd pki && cp ${TLS_TEST_FILES} ${CMAKE_CURRENT_BINARY_DIR}/
WORKING_DIRECTORY ${LIB_EVEREST_TLS_TESTS_DIR}
)
add_custom_target(v2g_test_files_target
DEPENDS ${TLS_TEST_FILES}
)
set(TLS_GTEST_NAME v2g_openssl_test)
add_executable(${TLS_GTEST_NAME})
add_dependencies(${TLS_GTEST_NAME} v2g_test_files_target)
add_dependencies(${TLS_GTEST_NAME} generate_cpp_files)
target_include_directories(${TLS_GTEST_NAME} PRIVATE
.. ../crypto
${GENERATED_INCLUDE_DIR}
${CMAKE_BINARY_DIR}/generated/modules/${MODULE_NAME}
)
target_compile_definitions(${TLS_GTEST_NAME} PRIVATE
-DUNIT_TEST
)
target_sources(${TLS_GTEST_NAME} PRIVATE
${LIB_EVEREST_TLS_TESTS_DIR}/gtest_main.cpp
log.cpp
openssl_test.cpp
../crypto/crypto_openssl.cpp
)
target_link_libraries(${TLS_GTEST_NAME} PRIVATE
GTest::gtest
cbv2g::din
cbv2g::iso2
cbv2g::tp
everest::framework
everest::evse_security
everest::tls
)
set(V2G_MAIN_NAME v2g_server)
add_executable(${V2G_MAIN_NAME})
add_dependencies(${V2G_MAIN_NAME} generate_cpp_files)
target_include_directories(${V2G_MAIN_NAME} PRIVATE
.. ../connection ${TESTS_INCLUDE_DIR}
${GENERATED_INCLUDE_DIR}
${CMAKE_BINARY_DIR}/generated/modules/${MODULE_NAME}
${CMAKE_BINARY_DIR}/generated/include
)
target_compile_definitions(${V2G_MAIN_NAME} PRIVATE
-DUNIT_TEST
)
target_sources(${V2G_MAIN_NAME} PRIVATE
../connection/connection.cpp
../connection/tls_connection.cpp
../tools.cpp
../v2g_ctx.cpp
log.cpp
requirement.cpp
v2g_main.cpp
)
target_link_libraries(${V2G_MAIN_NAME} PRIVATE
cbv2g::din
cbv2g::iso2
cbv2g::tp
everest::log
everest::framework
everest::evse_security
everest::tls
-levent -lpthread -levent_pthreads
)
# runs fine locally, fails in CI
add_test(${TLS_GTEST_NAME} ${TLS_GTEST_NAME})
ev_register_test_target(${TLS_GTEST_NAME})
set(DIN_SERVER_NAME din_server_test)
add_executable(${DIN_SERVER_NAME})
target_include_directories(${DIN_SERVER_NAME} PRIVATE
.. ../connection ${TESTS_INCLUDE_DIR}
${GENERATED_INCLUDE_DIR}
${CMAKE_BINARY_DIR}/generated/modules/${MODULE_NAME}
${CMAKE_BINARY_DIR}/generated/include
)
add_dependencies(${DIN_SERVER_NAME} generate_cpp_files)
target_compile_definitions(${DIN_SERVER_NAME} PRIVATE
-DUNIT_TEST
-DLIBEVSE_CRYPTO_SUPPLIER_OPENSSL
)
target_sources(${DIN_SERVER_NAME} PRIVATE
din_server_test.cpp
log.cpp
../din_server.cpp
../tools.cpp # TODO: Maybe mock this one
)
target_link_libraries(${DIN_SERVER_NAME}
PRIVATE
GTest::gtest_main
OpenSSL::SSL
OpenSSL::Crypto
cbv2g::din
cbv2g::iso2
cbv2g::tp
everest::framework
everest::evse_security
everest::tls
)
add_test(${DIN_SERVER_NAME} ${DIN_SERVER_NAME})
ev_register_test_target(${DIN_SERVER_NAME})
set(SDP_NAME sdp_test)
add_executable(${SDP_NAME})
target_include_directories(${SDP_NAME} PRIVATE
.. ../connection ${TESTS_INCLUDE_DIR}
${GENERATED_INCLUDE_DIR}
${CMAKE_BINARY_DIR}/generated/modules/${MODULE_NAME}
${CMAKE_BINARY_DIR}/generated/include
)
add_dependencies(${SDP_NAME} generate_cpp_files)
target_compile_definitions(${SDP_NAME} PRIVATE
-DUNIT_TEST
)
target_sources(${SDP_NAME} PRIVATE
sdp_test.cpp
log.cpp
../sdp.cpp
../tools.cpp
)
target_link_libraries(${SDP_NAME}
PRIVATE
GTest::gtest_main
cbv2g::tp
everest::framework
everest::tls
)
add_test(${SDP_NAME} ${SDP_NAME})
ev_register_test_target(${SDP_NAME})
set(V2GCTX_NAME v2g_ctx_test)
add_executable(${V2GCTX_NAME})
target_include_directories(${V2GCTX_NAME} PRIVATE
.. ../connection ${TESTS_INCLUDE_DIR}
${GENERATED_INCLUDE_DIR}
${CMAKE_BINARY_DIR}/generated/modules/${MODULE_NAME}
${CMAKE_BINARY_DIR}/generated/include
)
add_dependencies(${V2GCTX_NAME} generate_cpp_files)
target_compile_definitions(${V2GCTX_NAME} PRIVATE
-DUNIT_TEST
-DLIBEVSE_CRYPTO_SUPPLIER_OPENSSL
)
target_sources(${V2GCTX_NAME} PRIVATE
v2g_ctx_test.cpp
log.cpp
tools_test.cpp
../v2g_ctx.cpp
../tools.cpp
)
target_link_libraries(${V2GCTX_NAME}
PRIVATE
GTest::gtest_main
OpenSSL::SSL
OpenSSL::Crypto
cbv2g::din
cbv2g::iso2
cbv2g::tp
everest::framework
everest::evse_security
everest::tls
-levent -lpthread -levent_pthreads
)
add_test(${V2GCTX_NAME} ${V2GCTX_NAME})
ev_register_test_target(${V2GCTX_NAME})