update espMqttclient

This commit is contained in:
technyon
2024-03-02 04:30:46 +01:00
parent e92d0e9ac9
commit 7219ddd556
36 changed files with 667 additions and 210 deletions

View File

@@ -7,6 +7,12 @@ void setUp() {}
void tearDown() {}
espMqttClient mqttClient;
uint32_t onConnectCbId = 1;
uint32_t onDisconnectCbId = 2;
uint32_t onSubscribeCbId = 3;
uint32_t onUnsubscribeCbId = 4;
uint32_t onMessageCbId = 5;
uint32_t onPublishCbId = 6;
std::atomic_bool exitProgram(false);
std::thread t;
@@ -30,7 +36,7 @@ void test_connect() {
.onConnect([&](bool sessionPresent) mutable {
sessionPresentTest = sessionPresent;
onConnectCalledTest = true;
});
}, onConnectCbId);
mqttClient.connect();
uint32_t start = millis();
while (millis() - start < 2000) {
@@ -44,7 +50,7 @@ void test_connect() {
TEST_ASSERT_TRUE(onConnectCalledTest);
TEST_ASSERT_FALSE(sessionPresentTest);
mqttClient.onConnect(nullptr);
mqttClient.removeOnConnect(onConnectCbId);
}
/*
@@ -83,7 +89,7 @@ void test_subscribe() {
if (len == 1 && returncodes[0] == espMqttClientTypes::SubscribeReturncode::QOS0) {
subscribeTest = true;
}
});
}, onSubscribeCbId);
mqttClient.subscribe("test/test", 0);
uint32_t start = millis();
while (millis() - start < 2000) {
@@ -96,7 +102,7 @@ void test_subscribe() {
TEST_ASSERT_TRUE(mqttClient.connected());
TEST_ASSERT_TRUE(subscribeTest);
mqttClient.onSubscribe(nullptr);
mqttClient.removeOnSubscribe(onSubscribeCbId);
}
/*
@@ -112,7 +118,7 @@ void test_publish() {
mqttClient.onPublish([&](uint16_t packetId) mutable {
(void) packetId;
publishSendTest++;
});
}, onPublishCbId);
std::atomic<int> publishReceiveTest(0);
mqttClient.onMessage([&](const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total) mutable {
(void) properties;
@@ -122,7 +128,7 @@ void test_publish() {
(void) index;
(void) total;
publishReceiveTest++;
});
}, onMessageCbId);
uint16_t sendQos0Test = mqttClient.publish("test/test", 0, false, "test0");
uint16_t sendQos1Test = mqttClient.publish("test/test", 1, false, "test1");
uint16_t sendQos2Test = mqttClient.publish("test/test", 2, false, "test2");
@@ -138,8 +144,8 @@ void test_publish() {
TEST_ASSERT_EQUAL_INT(2, publishSendTest);
TEST_ASSERT_EQUAL_INT(3, publishReceiveTest);
mqttClient.onPublish(nullptr);
mqttClient.onMessage(nullptr);
mqttClient.removeOnPublish(onPublishCbId);
mqttClient.removeOnMessage(onMessageCbId);
}
void test_publish_empty() {
@@ -147,7 +153,7 @@ void test_publish_empty() {
mqttClient.onPublish([&](uint16_t packetId) mutable {
(void) packetId;
publishSendEmptyTest++;
});
}, onPublishCbId);
std::atomic<int> publishReceiveEmptyTest(0);
mqttClient.onMessage([&](const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total) mutable {
(void) properties;
@@ -157,7 +163,7 @@ void test_publish_empty() {
(void) index;
(void) total;
publishReceiveEmptyTest++;
});
}, onMessageCbId);
uint16_t sendQos0Test = mqttClient.publish("test/test", 0, false, nullptr, 0);
uint16_t sendQos1Test = mqttClient.publish("test/test", 1, false, nullptr, 0);
uint16_t sendQos2Test = mqttClient.publish("test/test", 2, false, nullptr, 0);
@@ -173,8 +179,8 @@ void test_publish_empty() {
TEST_ASSERT_EQUAL_INT(2, publishSendEmptyTest);
TEST_ASSERT_EQUAL_INT(3, publishReceiveEmptyTest);
mqttClient.onPublish(nullptr);
mqttClient.onMessage(nullptr);
mqttClient.removeOnPublish(onPublishCbId);
mqttClient.removeOnMessage(onMessageCbId);
}
/*
@@ -195,13 +201,13 @@ void test_receive1() {
(void) index;
(void) total;
publishReceive1Test++;
});
}, onMessageCbId);
mqttClient.onSubscribe([&](uint16_t packetId, const espMqttClientTypes::SubscribeReturncode* returncodes, size_t len) mutable {
(void) packetId;
if (len == 1 && returncodes[0] == espMqttClientTypes::SubscribeReturncode::QOS1) {
mqttClient.publish("test/test", 1, false, "");
}
});
}, onSubscribeCbId);
mqttClient.subscribe("test/test", 1);
uint32_t start = millis();
while (millis() - start < 6000) {
@@ -211,8 +217,8 @@ void test_receive1() {
TEST_ASSERT_TRUE(mqttClient.connected());
TEST_ASSERT_GREATER_THAN_INT(0, publishReceive1Test);
mqttClient.onMessage(nullptr);
mqttClient.onSubscribe(nullptr);
mqttClient.removeOnMessage(onMessageCbId);
mqttClient.removeOnSubscribe(onSubscribeCbId);
}
/*
@@ -233,13 +239,13 @@ void test_receive2() {
(void) index;
(void) total;
publishReceive2Test++;
});
}, onMessageCbId);
mqttClient.onSubscribe([&](uint16_t packetId, const espMqttClientTypes::SubscribeReturncode* returncodes, size_t len) mutable {
(void) packetId;
if (len == 1 && returncodes[0] == espMqttClientTypes::SubscribeReturncode::QOS2) {
mqttClient.publish("test/test", 2, false, "");
}
});
}, onSubscribeCbId);
mqttClient.subscribe("test/test", 2);
uint32_t start = millis();
while (millis() - start < 6000) {
@@ -249,8 +255,8 @@ void test_receive2() {
TEST_ASSERT_TRUE(mqttClient.connected());
TEST_ASSERT_EQUAL_INT(1, publishReceive2Test);
mqttClient.onMessage(nullptr);
mqttClient.onSubscribe(nullptr);
mqttClient.removeOnMessage(onMessageCbId);
mqttClient.removeOnSubscribe(onSubscribeCbId);
}
@@ -265,7 +271,7 @@ void test_unsubscribe() {
mqttClient.onUnsubscribe([&](uint16_t packetId) mutable {
(void) packetId;
unsubscribeTest = true;
});
}, onUnsubscribeCbId);
mqttClient.unsubscribe("test/test");
uint32_t start = millis();
while (millis() - start < 2000) {
@@ -278,7 +284,7 @@ void test_unsubscribe() {
TEST_ASSERT_TRUE(mqttClient.connected());
TEST_ASSERT_TRUE(unsubscribeTest);
mqttClient.onUnsubscribe(nullptr);
mqttClient.removeOnUnsubscribe(onUnsubscribeCbId);
}
/*
@@ -293,7 +299,7 @@ void test_disconnect() {
mqttClient.onDisconnect([&](espMqttClientTypes::DisconnectReason reason) mutable {
reasonTest = reason;
onDisconnectCalled = true;
});
}, onDisconnectCbId);
mqttClient.disconnect();
uint32_t start = millis();
while (millis() - start < 2000) {
@@ -307,7 +313,7 @@ void test_disconnect() {
TEST_ASSERT_EQUAL_UINT8(espMqttClientTypes::DisconnectReason::USER_OK, reasonTest);
TEST_ASSERT_TRUE(mqttClient.disconnected());
mqttClient.onDisconnect(nullptr);
mqttClient.removeOnDisconnect(onDisconnectCbId);
}
void test_pub_before_connect() {
@@ -320,11 +326,11 @@ void test_pub_before_connect() {
.onConnect([&](bool sessionPresent) mutable {
sessionPresentTest = sessionPresent;
onConnectCalledTest = true;
})
}, onConnectCbId)
.onPublish([&](uint16_t packetId) mutable {
(void) packetId;
publishSendTest++;
});
}, onPublishCbId);
uint16_t sendQos0Test = mqttClient.publish("test/test", 0, false, "test0");
uint16_t sendQos1Test = mqttClient.publish("test/test", 1, false, "test1");
uint16_t sendQos2Test = mqttClient.publish("test/test", 2, false, "test2");
@@ -349,8 +355,8 @@ void test_pub_before_connect() {
TEST_ASSERT_GREATER_THAN_UINT16(0, sendQos2Test);
TEST_ASSERT_EQUAL_INT(2, publishSendTest);
mqttClient.onConnect(nullptr);
mqttClient.onPublish(nullptr);
mqttClient.removeOnConnect(onConnectCbId);
mqttClient.removeOnPublish(onPublishCbId);
}
void final_disconnect() {
@@ -358,7 +364,7 @@ void final_disconnect() {
mqttClient.onDisconnect([&](espMqttClientTypes::DisconnectReason reason) mutable {
(void) reason;
onDisconnectCalled = true;
});
}, onDisconnectCbId);
mqttClient.disconnect();
uint32_t start = millis();
while (millis() - start < 2000) {
@@ -370,7 +376,7 @@ void final_disconnect() {
if (mqttClient.connected()) {
mqttClient.disconnect(true);
}
mqttClient.onDisconnect(nullptr);
mqttClient.removeOnDisconnect(onDisconnectCbId);
}
int main() {

View File

@@ -2,7 +2,7 @@
#include <unity.h>
#include <Packets/String.h>
#include <Packets/StringUtil.h>
void setUp() {}
void tearDown() {}