| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575 |
- #include "RyanMqttTest.h"
- static RyanMqttQos_e invalidQos()
- {
- static bool aa = true;
- if (aa)
- {
- aa = false;
- // NOLINTNEXTLINE(clang-analyzer-optin.core.EnumCastOutOfRange)
- return (RyanMqttQos_e)(uintptr_t)10;
- }
- aa = true;
- return RyanMqttSubFail;
- }
- static RyanMqttError_e RyanMqttBaseApiParamCheckTest(void)
- {
- RyanMqttError_e result = RyanMqttSuccessError;
- RyanMqttClient_t *validClient = NULL;
- // 准备一个有效的客户端用于某些测试
- result = RyanMqttTestInit(&validClient, RyanMqttTrue, RyanMqttFalse, 120, NULL, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- result = RyanMqttInit(NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- result = RyanMqttDestroy(NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // todo 可能增加状态判断
- result = RyanMqttStart(NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // todo 可能增加状态判断
- result = RyanMqttDisconnect(NULL, RyanMqttTrue);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // todo 可能增加状态判断
- result = RyanMqttReconnect(NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL客户端指针
- RyanMqttState_e state = RyanMqttGetState(NULL);
- RyanMqttCheckCodeNoReturn(state == RyanMqttInvalidState, RyanMqttFailedError, RyanMqttLog_e, { goto __exit; });
- result = RyanMqttGetKeepAliveRemain(NULL, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- uint32_t keepAliveRemain;
- // NULL客户端指针
- result = RyanMqttGetKeepAliveRemain(NULL, &keepAliveRemain);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL剩余时间指针
- result = RyanMqttGetKeepAliveRemain(validClient, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL客户端指针
- result = RyanMqttDiscardAckHandler(NULL, MQTT_PACKET_TYPE_PUBACK, 1);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 无效包ID (0 是无效的)
- result = RyanMqttDiscardAckHandler(validClient, MQTT_PACKET_TYPE_PUBACK, 0);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 超过最大包ID
- result = RyanMqttDiscardAckHandler(validClient, MQTT_PACKET_TYPE_PUBACK, RyanMqttMaxPacketId + 1);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- RyanMqttEventId_e eventId = RyanMqttEventConnected;
- // NULL客户端指针
- result = RyanMqttGetEventId(NULL, &eventId);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL eventId指针
- result = RyanMqttGetEventId(validClient, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL客户端指针
- result = RyanMqttRegisterEventId(NULL, RyanMqttEventConnected);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL客户端指针
- result = RyanMqttCancelEventId(NULL, RyanMqttEventConnected);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 清理资源
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttSuccessError;
- __exit:
- // 清理资源
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttFailedError;
- }
- static RyanMqttError_e RyanMqttLwtApiParamCheckTest(void)
- {
- RyanMqttError_e result = RyanMqttSuccessError;
- RyanMqttClient_t *validClient = NULL;
- // 准备一个有效的客户端用于某些测试
- result = RyanMqttTestInit(&validClient, RyanMqttTrue, RyanMqttFalse, 120, NULL, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- RyanMqttDisconnect(validClient, RyanMqttTrue);
- // 增加一个get接口
- // NULL客户端指针
- result = RyanMqttSetLwt(NULL, "test/lwt", "offline", 7, RyanMqttQos1, RyanMqttTrue);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL主题指针
- result = RyanMqttSetLwt(validClient, NULL, "offline", 7, RyanMqttQos1, RyanMqttTrue);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 非法主题
- result = RyanMqttSetLwt(validClient, "", "offline", 7, RyanMqttQos1, RyanMqttTrue);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL负载但长度不为0
- result = RyanMqttSetLwt(validClient, "test/lwt", NULL, 7, RyanMqttQos1, RyanMqttTrue);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // payloadLen 超长
- result = RyanMqttSetLwt(validClient, "test/lwt", "offline", RyanMqttMaxPayloadLen + 1, RyanMqttQos1,
- RyanMqttTrue);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 无效QoS
- result = RyanMqttSetLwt(validClient, "test/lwt", "offline", 7, invalidQos(), RyanMqttTrue);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 清理资源
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttSuccessError;
- __exit:
- RyanMqttLog_e("result: %d", result);
- // 清理资源
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttFailedError;
- }
- static RyanMqttError_e RyanMqttConfigApiParamCheckTest(void)
- {
- RyanMqttError_e result = RyanMqttSuccessError;
- RyanMqttClient_t *validClient = NULL;
- /**
- * @brief RyanMqttSetConfig
- *
- */
- RyanMqttClientConfig_t baseMqttConfig = {.clientId = RyanMqttClientId,
- .userName = RyanMqttUserName,
- .password = RyanMqttPassword,
- .host = RyanMqttHost,
- .port = RyanMqttPort,
- .taskName = "mqttThread",
- .taskPrio = 16,
- .taskStack = 4096,
- .mqttVersion = 4,
- .ackHandlerRepeatCountWarning = 6,
- .ackHandlerCountWarning = 60000,
- .autoReconnectFlag = RyanMqttTrue,
- .cleanSessionFlag = RyanMqttTrue,
- .reconnectTimeout = 3000,
- .recvTimeout = 2000,
- .sendTimeout = 1800,
- .ackTimeout = 10000,
- .keepaliveTimeoutS = 120,
- .mqttEventHandle = NULL,
- .userData = NULL};
- result = RyanMqttInit(&validClient);
- RyanMqttCheck(RyanMqttSuccessError == result, result, RyanMqttLog_e);
- RyanMqttClientConfig_t mqttConfig = {0};
- // NULL客户端指针
- result = RyanMqttSetConfig(NULL, &mqttConfig);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL配置指针
- result = RyanMqttSetConfig(validClient, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- #define checkSetConfigParam(code, errType) \
- do \
- { \
- RyanMqttMemcpy(&mqttConfig, &baseMqttConfig, sizeof(RyanMqttClientConfig_t)); \
- {code}; \
- result = RyanMqttSetConfig(validClient, &mqttConfig); \
- RyanMqttCheckCodeNoReturn((errType) == result, result, RyanMqttLog_e, { goto __exit; }); \
- } while (0)
- checkSetConfigParam({ mqttConfig.host = NULL; }, RyanMqttParamInvalidError);
- checkSetConfigParam({ mqttConfig.taskName = NULL; }, RyanMqttParamInvalidError);
- checkSetConfigParam({ mqttConfig.clientId = NULL; }, RyanMqttParamInvalidError);
- // NULL用户名密码
- checkSetConfigParam({ mqttConfig.userName = NULL; }, RyanMqttSuccessError);
- checkSetConfigParam({ mqttConfig.password = NULL; }, RyanMqttSuccessError);
- // 0长度
- checkSetConfigParam({ mqttConfig.clientId = ""; }, RyanMqttSuccessError);
- checkSetConfigParam({ mqttConfig.userName = ""; }, RyanMqttSuccessError);
- checkSetConfigParam({ mqttConfig.password = ""; }, RyanMqttSuccessError);
- // 配置错误
- checkSetConfigParam(
- {
- mqttConfig.recvTimeout = 10;
- mqttConfig.keepaliveTimeoutS = 20 - 1;
- },
- RyanMqttParamInvalidError);
- checkSetConfigParam(
- {
- mqttConfig.recvTimeout = 10;
- mqttConfig.sendTimeout = 11;
- },
- RyanMqttParamInvalidError);
- RyanMqttSetConfig(validClient, &baseMqttConfig);
- RyanMqttDestroy(validClient);
- validClient = NULL;
- /**
- * @brief RyanMqttGetConfig
- *
- */
- // 准备一个有效的客户端用于某些测试
- result = RyanMqttTestInit(&validClient, RyanMqttTrue, RyanMqttFalse, 120, NULL, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- RyanMqttDisconnect(validClient, RyanMqttTrue);
- // NULL客户端指针
- result = RyanMqttGetConfig(NULL, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- RyanMqttClientConfig_t *getConfig = NULL;
- /**
- * @brief RyanMqttGetConfig
- *
- */
- // NULL客户端指针
- result = RyanMqttGetConfig(NULL, &getConfig);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL配置指针
- result = RyanMqttGetConfig(validClient, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL配置指针
- result = RyanMqttFreeConfigFromGet(NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 清理资源
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttSuccessError;
- __exit:
- // 清理资源
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttFailedError;
- }
- static RyanMqttError_e RyanMqttSubApiParamCheckTest(void)
- {
- RyanMqttError_e result = RyanMqttSuccessError;
- RyanMqttClient_t *validClient = NULL;
- // 准备一个有效的客户端用于某些测试
- result = RyanMqttTestInit(&validClient, RyanMqttTrue, RyanMqttFalse, 120, NULL, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL客户端指针
- result = RyanMqttSubscribe(NULL, "test/topic", RyanMqttQos1);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL主题指针
- result = RyanMqttSubscribe(validClient, NULL, RyanMqttQos1);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 无效QoS级别
- result = RyanMqttSubscribe(validClient, "test/topic", invalidQos());
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 分配测试数据
- RyanMqttSubscribeData_t subscribeData[2] = {0};
- subscribeData[0].topic = "test/topic1";
- subscribeData[0].topicLen = strlen("test/topic1");
- subscribeData[0].qos = RyanMqttQos1;
- subscribeData[1].topic = "test/topic2";
- subscribeData[1].topicLen = strlen("test/topic2");
- subscribeData[1].qos = RyanMqttQos2;
- // NULL客户端指针
- result = RyanMqttSubscribeMany(NULL, 2, subscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 无效数量
- result = RyanMqttSubscribeMany(validClient, 0, subscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- result = RyanMqttSubscribeMany(validClient, -1, subscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL数据指针
- result = RyanMqttSubscribeMany(validClient, 2, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- for (uint32_t i = 0; i < getArraySize(subscribeData); i++)
- {
- // subscribeData 内数据无效
- subscribeData[i].topic = NULL;
- subscribeData[i].topicLen = strlen("test/topic2");
- subscribeData[i].qos = RyanMqttQos2;
- result = RyanMqttSubscribeMany(validClient, 2, subscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // subscribeData 内数据无效
- subscribeData[i].topic = "test/topic2";
- subscribeData[i].topicLen = 0;
- subscribeData[i].qos = RyanMqttQos2;
- result = RyanMqttSubscribeMany(validClient, 2, subscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // subscribeData 内数据无效
- subscribeData[i].topic = "test/topic2";
- subscribeData[i].topicLen = strlen("test/topic2");
- subscribeData[i].qos = invalidQos();
- result = RyanMqttSubscribeMany(validClient, 2, subscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 恢复 subscribeData 内数据
- subscribeData[i].topic = "test/topic2";
- subscribeData[i].topicLen = strlen("test/topic2");
- subscribeData[i].qos = RyanMqttQos2;
- }
- // NULL客户端指针
- result = RyanMqttUnSubscribe(NULL, "test/topic");
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL主题指针
- result = RyanMqttUnSubscribe(validClient, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 分配测试数据
- RyanMqttUnSubscribeData_t unsubscribeData[2] = {0};
- unsubscribeData[0].topic = "test/topic1";
- unsubscribeData[0].topicLen = strlen("test/topic1");
- unsubscribeData[1].topic = "test/topic2";
- unsubscribeData[1].topicLen = strlen("test/topic2");
- // NULL客户端指针
- result = RyanMqttUnSubscribeMany(NULL, 2, unsubscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 无效数量
- result = RyanMqttUnSubscribeMany(validClient, 0, unsubscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL数据指针
- result = RyanMqttUnSubscribeMany(validClient, 2, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- for (uint32_t i = 0; i < getArraySize(unsubscribeData); i++)
- {
- // unsubscribeData 内数据无效
- unsubscribeData[i].topic = NULL;
- unsubscribeData[i].topicLen = strlen("test/topic2");
- result = RyanMqttUnSubscribeMany(validClient, 2, unsubscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // unsubscribeData 内数据无效
- unsubscribeData[i].topic = "test/topic2";
- unsubscribeData[i].topicLen = 0;
- result = RyanMqttUnSubscribeMany(validClient, 2, unsubscribeData);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 恢复 unsubscribeData 内数据
- unsubscribeData[i].topic = "test/topic2";
- unsubscribeData[i].topicLen = strlen("test/topic2");
- }
- /**
- * @brief
- *
- */
- RyanMqttMsgHandler_t *msgHandles = NULL;
- int32_t subscribeNum = 0;
- int32_t totalCount = 0;
- // NULL客户端指针
- result = RyanMqttGetSubscribeSafe(NULL, &msgHandles, &subscribeNum);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL消息句柄指针
- result = RyanMqttGetSubscribeSafe(validClient, NULL, &subscribeNum);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL数量指针
- result = RyanMqttGetSubscribeSafe(validClient, &msgHandles, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL指针但数量不为0
- result = RyanMqttSafeFreeSubscribeResources(NULL, 5);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL客户端指针
- result = RyanMqttGetSubscribeTotalCount(NULL, &totalCount);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL总数指针
- result = RyanMqttGetSubscribeTotalCount(validClient, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e,
- { goto __exit; }); // 清理资源
- /**
- * @brief
- *
- */
- RyanMqttMsgHandler_t msgHandlesStatic[3] = {0};
- RyanMqttGetSubscribe(NULL, msgHandlesStatic, getArraySize(msgHandlesStatic), &subscribeNum);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- RyanMqttGetSubscribe(validClient, NULL, getArraySize(msgHandlesStatic), &subscribeNum);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- RyanMqttGetSubscribe(validClient, msgHandlesStatic, 0, &subscribeNum);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- RyanMqttGetSubscribe(validClient, msgHandlesStatic, getArraySize(msgHandlesStatic), NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttSuccessError;
- __exit:
- // 清理资源
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttFailedError;
- }
- static RyanMqttError_e RyanMqttPubApiParamCheckTest(void)
- {
- RyanMqttError_e result = RyanMqttSuccessError;
- RyanMqttClient_t *validClient = NULL;
- // 准备一个有效的客户端用于某些测试
- result = RyanMqttTestInit(&validClient, RyanMqttTrue, RyanMqttFalse, 120, NULL, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL客户端指针
- result = RyanMqttPublish(NULL, "test/topic", "payload", 7, RyanMqttQos0, RyanMqttFalse);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL主题指针
- result = RyanMqttPublish(validClient, NULL, "payload", 7, RyanMqttQos0, RyanMqttFalse);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL负载指针但长度不为0
- result = RyanMqttPublish(validClient, "test/topic", NULL, 7, RyanMqttQos0, RyanMqttFalse);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 无效QoS级别
- result = RyanMqttPublish(validClient, "test/topic", "payload", 7, invalidQos(), RyanMqttFalse);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 超大负载长度
- result = RyanMqttPublish(validClient, "test/topic", "payload", RyanMqttMaxPayloadLen + 1, RyanMqttQos0,
- RyanMqttFalse);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL客户端指针
- result = RyanMqttPublishWithUserData(NULL, "test/topic", 10, "payload", 7, RyanMqttQos1, RyanMqttFalse, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // NULL主题指针
- result = RyanMqttPublishWithUserData(validClient, NULL, 10, "payload", 7, RyanMqttQos1, RyanMqttFalse, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 主题长度为0
- result = RyanMqttPublishWithUserData(validClient, "test/topic", 0, "payload", 7, RyanMqttQos1, RyanMqttFalse,
- NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- // 无效QoS级别
- result = RyanMqttPublishWithUserData(validClient, "test/topic", strlen("test/topic"), "payload", 7,
- invalidQos(), RyanMqttFalse, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e,
- { goto __exit; }); // 清理资源
- // 负载长度>0但负载指针为NULL
- result = RyanMqttPublishWithUserData(validClient, "test/topic", strlen("test/topic"), NULL, 7, RyanMqttQos1,
- RyanMqttFalse, NULL);
- RyanMqttCheckCodeNoReturn(RyanMqttParamInvalidError == result, result, RyanMqttLog_e, { goto __exit; });
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttSuccessError;
- __exit:
- // 清理资源
- if (validClient)
- {
- RyanMqttTestDestroyClient(validClient);
- }
- return RyanMqttFailedError;
- }
- RyanMqttError_e RyanMqttPublicApiParamCheckTest(void)
- {
- RyanMqttError_e result = RyanMqttSuccessError;
- result = RyanMqttBaseApiParamCheckTest();
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- checkMemory;
- result = RyanMqttLwtApiParamCheckTest();
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- checkMemory;
- result = RyanMqttConfigApiParamCheckTest();
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- checkMemory;
- result = RyanMqttSubApiParamCheckTest();
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- checkMemory;
- result = RyanMqttPubApiParamCheckTest();
- RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, result, RyanMqttLog_e, { goto __exit; });
- checkMemory;
- return RyanMqttSuccessError;
- __exit:
- return RyanMqttFailedError;
- }
|