11#*******************************************************************************
2- #* (c) 2018 ZondaX GmbH
2+ #* (c) 2018 Zondax GmbH
33#*
44#* Licensed under the Apache License, Version 2.0 (the "License");
55#* you may not use this file except in compliance with the License.
@@ -35,28 +35,51 @@ file(GLOB_RECURSE TINYCBOR_SRC
3535 )
3636
3737file (GLOB_RECURSE LIB_SRC
38- ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/src/hexutils.c
39- ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/src/bignum.c
40- ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/src/zxmacros.c
38+ ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/src/*.c
39+ ${CMAKE_CURRENT_SOURCE_DIR} /deps/sha512/sha512.c
4140 #########
4241 ${CMAKE_CURRENT_SOURCE_DIR} /app/src/parser.c
43- ${CMAKE_CURRENT_SOURCE_DIR} /app/src/parser_impl.c
44- ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/src/bech32.c
45- ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/src/segwit_addr.c
46- ${CMAKE_CURRENT_SOURCE_DIR} /deps/sha512/sha512.c
42+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/crypto.c
43+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/consumer/parser_consumer.c
44+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/consumer/parser_impl_con.c
45+ )
46+
47+ file (GLOB_RECURSE LIB_VAL_SRC
48+ ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/src/*.c
49+ #########
50+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/parser.c
51+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/crypto.c
52+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/validator/parser_validator.c
53+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/validator/parser_impl_val.c
54+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/validator/vote_fsm.c
55+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/validator/vote.c
4756 )
4857
4958add_library (app_lib STATIC
5059 ${LIB_SRC}
5160 ${TINYCBOR_SRC}
5261 )
62+ add_library (app_val_lib STATIC
63+ ${LIB_VAL_SRC}
64+ )
65+
66+ target_compile_definitions (app_lib PRIVATE APP_CONSUMER )
67+ target_compile_definitions (app_val_lib PRIVATE APP_VALIDATOR )
5368
5469target_include_directories (app_lib PUBLIC
5570 ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/include
5671 ${CMAKE_CURRENT_SOURCE_DIR} /deps/tinycbor/src
5772 ${CMAKE_CURRENT_SOURCE_DIR} /deps/sha512
5873 ${CMAKE_CURRENT_SOURCE_DIR} /app/src
59- ${CMAKE_CURRENT_SOURCE_DIR} /app/src/lib
74+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/consumer
75+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/common
76+ )
77+
78+ target_include_directories (app_val_lib PUBLIC
79+ ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/include
80+ ${CMAKE_CURRENT_SOURCE_DIR} /deps/sha512
81+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src
82+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/validator
6083 ${CMAKE_CURRENT_SOURCE_DIR} /app/src/common
6184 )
6285
@@ -68,14 +91,34 @@ file(GLOB_RECURSE TESTS_SRC
6891 ${CMAKE_CURRENT_SOURCE_DIR} /tests/utils/*.cpp
6992 )
7093
94+ file (GLOB_RECURSE TESTS_VAL_SRC
95+ ${CMAKE_CURRENT_SOURCE_DIR} /tests/cpp_val/*.cpp
96+ )
97+
7198add_executable (unittests ${TESTS_SRC} )
99+ target_compile_definitions (unittests PRIVATE APP_CONSUMER=1 )
100+ add_executable (unittests_val ${TESTS_VAL_SRC} )
101+ target_compile_definitions (unittests_val PRIVATE APP_VALIDATOR=1 )
102+
72103target_include_directories (unittests PUBLIC
73104 ${gtest_SOURCE_DIR} /include
74105 ${gmock_SOURCE_DIR} /include
75106 ${CONAN_INCLUDE_DIRS_FMT}
76107 ${CONAN_INCLUDE_DIRS_JSONCPP}
77108 ${CMAKE_CURRENT_SOURCE_DIR} /deps/tinycbor/src
78109 ${CMAKE_CURRENT_SOURCE_DIR} /tests/utils
110+ ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/include
111+ )
112+
113+ target_include_directories (unittests_val PUBLIC
114+ ${gtest_SOURCE_DIR} /include
115+ ${gmock_SOURCE_DIR} /include
116+ ${CONAN_INCLUDE_DIRS_FMT}
117+ ${CONAN_INCLUDE_DIRS_JSONCPP}
118+ ${CMAKE_CURRENT_SOURCE_DIR} /deps/ledger-zxlib/include
119+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/common
120+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src/validator
121+ ${CMAKE_CURRENT_SOURCE_DIR} /app/src
79122 )
80123
81124target_link_libraries (unittests PRIVATE
@@ -84,19 +127,14 @@ target_link_libraries(unittests PRIVATE
84127 CONAN_PKG::fmt
85128 CONAN_PKG::jsoncpp )
86129
130+ target_link_libraries (unittests_val PRIVATE
131+ gtest_main
132+ app_val_lib
133+ CONAN_PKG::fmt
134+ CONAN_PKG::jsoncpp )
135+
87136add_test (unittests ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /unittests )
88- set_tests_properties ( unittests PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /tests )
137+ add_test ( unittests_val ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /unittests_val )
89138
90- ###############################################################
91- # Force tests to depend from app compiling
92- ###############################################################
93-
94- #set(DISABLE_DOCKER_BUILDS OFF CACHE BOOL "Disables Docker Builds")
95- #
96- #if (NOT DISABLE_DOCKER_BUILDS)
97- # add_custom_target(ledger_app
98- # COMMAND make build
99- # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
100- # )
101- # add_dependencies(unittests ledger_app)
102- #endif()
139+ set_tests_properties (unittests PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /tests )
140+ set_tests_properties (unittests_val PROPERTIES WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /tests )
0 commit comments