RyanMqttDestroyTest.c 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #include "RyanMqttTest.h"
  2. static RyanMqttError_e RyanMqttConnectDestroy(uint32_t count)
  3. {
  4. RyanMqttClientConfig_t baseMqttConfig = {.clientId = RyanMqttClientId,
  5. .userName = RyanMqttUserName,
  6. .password = RyanMqttPassword,
  7. .host = RyanMqttHost,
  8. .port = RyanMqttPort,
  9. .taskName = "mqttThread",
  10. .taskPrio = 16,
  11. .taskStack = 4096,
  12. .mqttVersion = 4,
  13. .ackHandlerRepeatCountWarning = 6,
  14. .ackHandlerCountWarning = 60000,
  15. .autoReconnectFlag = RyanMqttTrue,
  16. .cleanSessionFlag = RyanMqttTrue,
  17. .reconnectTimeout = 3000,
  18. .recvTimeout = 2000,
  19. .sendTimeout = 1800,
  20. .ackTimeout = 10000,
  21. .keepaliveTimeoutS = 120,
  22. .mqttEventHandle = NULL,
  23. .userData = NULL};
  24. for (uint32_t i = 0; i < count; i++)
  25. {
  26. RyanMqttClient_t *client = NULL;
  27. RyanMqttTestInit(&client, (i == count - 1) ? RyanMqttTrue : RyanMqttFalse, RyanMqttTrue, 120, NULL,
  28. NULL);
  29. // 增加一些测试量
  30. RyanMqttSubscribe(client, "testlinux/pub3", RyanMqttQos2);
  31. RyanMqttSubscribe(client, "testlinux/pub2", RyanMqttQos1);
  32. RyanMqttSubscribe(client, "testlinux/pub1", RyanMqttQos0);
  33. RyanMqttPublish(client, "testlinux/pub3", "helloworld", RyanMqttStrlen("helloworld"), RyanMqttQos2,
  34. RyanMqttFalse);
  35. RyanMqttPublish(client, "testlinux/pub2", "helloworld", RyanMqttStrlen("helloworld"), RyanMqttQos1,
  36. RyanMqttFalse);
  37. RyanMqttPublish(client, "testlinux/pub1", "helloworld", RyanMqttStrlen("helloworld"), RyanMqttQos0,
  38. RyanMqttFalse);
  39. // 偶尔等待订阅主题全部订阅成功
  40. if (i % 7 == 0)
  41. {
  42. delay(2);
  43. }
  44. RyanMqttTestDestroyClient(client);
  45. // 测试只初始化不启动的销毁
  46. RyanMqttInit(&client);
  47. if (i % 2)
  48. {
  49. RyanMqttSetConfig(client, &baseMqttConfig);
  50. }
  51. RyanMqttDestroy(client);
  52. }
  53. return RyanMqttSuccessError;
  54. }
  55. RyanMqttError_e RyanMqttDestroyTest(void)
  56. {
  57. RyanMqttError_e result = RyanMqttSuccessError;
  58. result = RyanMqttConnectDestroy(100);
  59. RyanMqttCheckCodeNoReturn(RyanMqttSuccessError == result, RyanMqttFailedError, RyanMqttLog_e, { goto __exit; });
  60. checkMemory;
  61. return RyanMqttSuccessError;
  62. __exit:
  63. return RyanMqttFailedError;
  64. }