include(CTest) include(AwsTestHarness) include(AwsLibFuzzer) enable_testing() file(GLOB TEST_HDRS "*.h") set(TEST_SRC packet_encoding_test.c topic_tree_test.c connection_state_test.c mqtt_mock_server_handler.c) file(GLOB TESTS ${TEST_HDRS} ${TEST_SRC}) add_test_case(mqtt_packet_puback) add_test_case(mqtt_packet_pubrec) add_test_case(mqtt_packet_pubrel) add_test_case(mqtt_packet_pubcomp) add_test_case(mqtt_packet_suback) add_test_case(mqtt_packet_unsuback) add_test_case(mqtt_packet_connect) add_test_case(mqtt_packet_connect_will) add_test_case(mqtt_packet_connect_password) add_test_case(mqtt_packet_connack) add_test_case(mqtt_packet_publish_qos0_dup) add_test_case(mqtt_packet_publish_qos2_retain) add_test_case(mqtt_packet_subscribe) add_test_case(mqtt_packet_unsubscribe) add_test_case(mqtt_packet_pingreq) add_test_case(mqtt_packet_pingresp) add_test_case(mqtt_packet_disconnect) add_test_case(mqtt_topic_tree_match) add_test_case(mqtt_topic_tree_unsubscribe) add_test_case(mqtt_topic_tree_duplicate_transactions) add_test_case(mqtt_topic_tree_transactions) add_test_case(mqtt_topic_validation) add_test_case(mqtt_connect_disconnect) add_test_case(mqtt_connect_set_will_login) add_test_case(mqtt_connection_interrupted) add_test_case(mqtt_connection_any_publish) add_test_case(mqtt_connection_timeout) add_test_case(mqtt_connection_connack_timeout) add_test_case(mqtt_connect_subscribe) add_test_case(mqtt_connect_subscribe_fail_from_broker) add_test_case(mqtt_connect_subscribe_multi) add_test_case(mqtt_connect_unsubscribe) add_test_case(mqtt_connect_resubscribe) add_test_case(mqtt_connect_publish) add_test_case(mqtt_connect_publish_payload) add_test_case(mqtt_connection_offline_publish) add_test_case(mqtt_connection_disconnect_while_reconnecting) add_test_case(mqtt_connection_closes_while_making_requests) add_test_case(mqtt_connection_resend_packets) # It's too complicate to implement... Let's save it for the future. # add_test_case(mqtt_connection_not_retry_publish_QoS_0) add_test_case(mqtt_connection_consistent_retry_policy) add_test_case(mqtt_connection_not_resend_packets_on_healthy_connection) add_test_case(mqtt_connection_destory_pending_requests) add_test_case(mqtt_clean_session_not_retry) add_test_case(mqtt_clean_session_discard_previous) add_test_case(mqtt_clean_session_keep_next_session) add_test_case(mqtt_connection_publish_QoS1_timeout) add_test_case(mqtt_connection_unsub_timeout) add_test_case(mqtt_connection_publish_QoS1_timeout_connection_lost_reset_time) generate_test_driver(${PROJECT_NAME}-tests) set(TEST_PAHO_CLIENT_BINARY_NAME ${PROJECT_NAME}-paho-client) add_executable(${TEST_PAHO_CLIENT_BINARY_NAME} "paho_client_test.c") target_link_libraries(${TEST_PAHO_CLIENT_BINARY_NAME} PRIVATE ${PROJECT_NAME}) aws_set_common_properties(${TEST_PAHO_CLIENT_BINARY_NAME}) aws_add_sanitizers(${TEST_PAHO_CLIENT_BINARY_NAME} ${${PROJECT_NAME}_SANITIZERS}) target_compile_definitions(${TEST_PAHO_CLIENT_BINARY_NAME} PRIVATE AWS_UNSTABLE_TESTING_API=1) target_include_directories(${TEST_PAHO_CLIENT_BINARY_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR}) set(TEST_IOT_CLIENT_BINARY_NAME ${PROJECT_NAME}-iot-client) add_executable(${TEST_IOT_CLIENT_BINARY_NAME} "aws_iot_client_test.c") target_link_libraries(${TEST_IOT_CLIENT_BINARY_NAME} PRIVATE ${PROJECT_NAME}) aws_set_common_properties(${TEST_IOT_CLIENT_BINARY_NAME}) aws_add_sanitizers(${TEST_IOT_CLIENT_BINARY_NAME} ${${PROJECT_NAME}_SANITIZERS}) target_compile_definitions(${TEST_IOT_CLIENT_BINARY_NAME} PRIVATE AWS_UNSTABLE_TESTING_API=1) target_include_directories(${TEST_IOT_CLIENT_BINARY_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR})