You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mosquitto/test/unit/CMakeLists.txt

156 lines
4.7 KiB
CMake

find_package(CUnit REQUIRED)
add_library(common-unit-test-header INTERFACE)
target_include_directories(common-unit-test-header
INTERFACE
"${mosquitto_SOURCE_DIR}/include"
"${mosquitto_SOURCE_DIR}/common"
"${mosquitto_SOURCE_DIR}/deps"
"${mosquitto_SOURCE_DIR}/lib"
"${mosquitto_SOURCE_DIR}/src"
"${mosquitto_SOURCE_DIR}/test"
)
target_link_libraries(common-unit-test-header
INTERFACE
common-options
config-header
CUnit::CUnit
)
# unit-broker
add_executable(broker-test
datatype_read.c
datatype_write.c
misc_trim_test.c
property_add.c
property_read.c
property_user_read.c
property_write.c
strings_test.c
stubs.c
util_topic_test.c
utf8.c
# main test files
test.c
../../lib/packet_datatypes.c
../../lib/packet_mosq.c
../../lib/property_mosq.c
../../lib/memory_mosq.c
../../common/misc_mosq.c
../../lib/strings_mosq.c
../../lib/util_mosq.c
../../lib/util_topic.c
../../lib/utf8_mosq.c
)
target_link_libraries(broker-test PRIVATE common-unit-test-header OpenSSL::SSL)
add_test(NAME unit-broker-test COMMAND broker-test)
# bridge-topic-test
add_library(bridge-topic-obj OBJECT ../../src/bridge_topic.c)
target_compile_definitions(bridge-topic-obj PRIVATE WITH_BRIDGE WITH_BROKER)
target_link_libraries(bridge-topic-obj PUBLIC common-unit-test-header)
add_executable(bridge-topic-test
bridge_topic_test.c
stubs.c
../../lib/memory_mosq.c
../../src/memory_public.c
../../lib/util_topic.c
)
target_compile_definitions(bridge-topic-test PRIVATE WITH_BRIDGE WITH_BROKER)
target_link_libraries(bridge-topic-test PRIVATE bridge-topic-obj common-unit-test-header)
add_test(NAME unit-bridge-topic-test COMMAND bridge-topic-test)
# keepalive-test
add_executable(keepalive-test
keepalive_test.c
keepalive_stubs.c
../../lib/memory_mosq.c
)
target_link_libraries(keepalive-test PRIVATE common-unit-test-header)
add_test(NAME unit-keepalive-test COMMAND keepalive-test)
# persist-read-test
add_library(persistence-read-obj
OBJECT
../../src/persist_read_v234.c
../../src/persist_read_v5.c
../../src/persist_read.c
../../src/retain.c
../../src/topic_tok.c
)
target_compile_definitions(persistence-read-obj PRIVATE WITH_PERSISTENCE WITH_BROKER)
target_link_libraries(persistence-read-obj PUBLIC common-unit-test-header OpenSSL::SSL)
add_executable(persist-read-test
persist_read_test.c
persist_read_stubs.c
../../common/misc_mosq.c
../../lib/memory_mosq.c
../../lib/packet_datatypes.c
../../lib/property_mosq.c
../../lib/utf8_mosq.c
../../lib/util_mosq.c
../../src/memory_public.c
)
target_compile_definitions(persist-read-test PRIVATE TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}" WITH_PERSISTENCE WITH_BROKER)
target_link_libraries(persist-read-test PRIVATE persistence-read-obj)
add_test(NAME unit-persist-read-test COMMAND persist-read-test)
# persist-write-test
add_library(persistence-write-obj
OBJECT
../../src/database.c
../../src/persist_read_v234.c
../../src/persist_read_v5.c
../../src/persist_read.c
../../src/persist_write_v5.c
../../src/persist_write.c
../../src/retain.c
../../src/subs.c
../../src/topic_tok.c
)
target_compile_definitions(persistence-write-obj PRIVATE WITH_PERSISTENCE WITH_BROKER)
target_link_libraries(persistence-write-obj PUBLIC common-unit-test-header)
add_executable(persist-write-test
persist_write_test.c
persist_write_stubs.c
../../common/misc_mosq.c
../../lib/memory_mosq.c
../../lib/packet_datatypes.c
../../lib/property_mosq.c
../../lib/utf8_mosq.c
../../lib/util_mosq.c
../../src/memory_public.c
../../lib/packet_mosq.c
)
target_compile_definitions(persist-write-test PRIVATE TEST_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}" WITH_PERSISTENCE WITH_BROKER)
target_link_libraries(persist-write-test PRIVATE persistence-write-obj OpenSSL::SSL)
add_test(NAME unit-persist-write-test COMMAND persist-write-test)
# subs-test
add_library(persistence-obj
OBJECT
../../lib/property_mosq.c
../../lib/packet_datatypes.c
../../lib/utf8_mosq.c
../../src/database.c
../../src/subs.c
../../src/topic_tok.c
)
target_compile_definitions(persistence-obj PRIVATE WITH_PERSISTENCE WITH_BROKER)
target_link_libraries(persistence-obj PUBLIC common-unit-test-header)
add_executable(subs-test
subs_stubs.c
subs_test.c
../../lib/memory_mosq.c
../../src/memory_public.c
)
target_compile_definitions(subs-test PRIVATE WITH_PERSISTENCE WITH_BROKER)
target_link_libraries(subs-test PRIVATE common-unit-test-header persistence-obj)
add_test(NAME unit-subs-test COMMAND subs-test)