macro(add_base_test TEST_NAME TEST_SRC)
    add_executable(${TEST_NAME} ${TEST_SRC})
    target_include_directories(${TEST_NAME} PRIVATE ${ROCKETMQ_INTERNAL_INCLUDE_DIRS})
    target_link_libraries(${TEST_NAME} PRIVATE ${ROCKETMQ_TEST_LINK_LIBS})
    add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
endmacro()

add_base_test(assignment_test AssignmentTest.cpp)
add_base_test(configuration_test ConfigurationTest.cpp)
add_base_test(invocation_context_test InvocationContextTest.cpp)
add_base_test(message_builder_test MessageBuilderTest.cpp)
add_base_test(message_queue_test MessageQueueTest.cpp)
add_base_test(mix_all_test MixAllTest.cpp)
add_base_test(retry_policy_test RetryPolicyTest.cpp)
add_base_test(thread_pool_test ThreadPoolTest.cpp)
add_base_test(unique_id_generator_test UniqueIdGeneratorTest.cpp)
