Commit 0cc6610a15ac9dc8d0b3b8988806e609213e1a2d

Authored by Wiebe Cazemier
1 parent 2677a728

Stablized test_retained_tree

It was flakey. I also ported it to the new test client.
Showing 1 changed file with 32 additions and 18 deletions
FlashMQTests/tst_maintests.cpp
... ... @@ -489,33 +489,47 @@ void MainTests::test_retained_removed()
489 489 */
490 490 void MainTests::test_retained_tree()
491 491 {
492   - TwoClientTestContext testContext;
  492 + FlashMQTestClient sender;
  493 + sender.start();
493 494  
494   - QByteArray payload = "We are testing";
495   - const QString topic1 = "TopicA/B";
496   - const QString topic2 = "Topic/C";
497   - const QString topic3 = "TopicB/C";
498   - const QStringList topics {topic1, topic2, topic3};
  495 + std::string payload = "We are testing";
  496 + const std::string topic1 = "TopicA/B";
  497 + const std::string topic2 = "Topic/C";
  498 + const std::string topic3 = "TopicB/C";
  499 + const std::list<std::string> topics {topic1, topic2, topic3};
499 500  
500   - testContext.connectSender();
501   - testContext.publish(topic1, payload, true);
502   - testContext.publish(topic2, payload, true);
503   - testContext.publish(topic3, payload, true);
  501 + sender.connectClient(ProtocolVersion::Mqtt311);
504 502  
505   - testContext.connectReceiver();
506   - testContext.subscribeReceiver("+/+");
507   - testContext.waitReceiverReceived(1);
  503 + Publish p1(topic1, payload, 0);
  504 + p1.retain = true;
  505 + sender.publish(p1);
  506 +
  507 + Publish p2(topic2, payload, 0);
  508 + p2.retain = true;
  509 + sender.publish(p2);
  510 +
  511 + Publish p3(topic3, payload, 0);
  512 + p3.retain = true;
  513 + sender.publish(p3);
  514 +
  515 + FlashMQTestClient receiver;
  516 + receiver.start();
  517 + receiver.connectClient(ProtocolVersion::Mqtt5);
  518 +
  519 + receiver.subscribe("+/+", 0);
  520 +
  521 + receiver.waitForMessageCount(3);
508 522  
509   - QCOMPARE(testContext.receivedMessages.count(), topics.count());
  523 + QCOMPARE(receiver.receivedPublishes.size(), topics.size());
510 524  
511   - for (const QString &s : topics)
  525 + for (const std::string &s : topics)
512 526 {
513   - bool r = std::any_of(testContext.receivedMessages.begin(), testContext.receivedMessages.end(), [&](QMQTT::Message &msg)
  527 + bool r = std::any_of(receiver.receivedPublishes.begin(), receiver.receivedPublishes.end(), [&](MqttPacket &pack)
514 528 {
515   - return msg.topic() == s && msg.payload() == payload;
  529 + return pack.getTopic() == s && pack.getPayloadCopy() == payload;
516 530 });
517 531  
518   - QVERIFY2(r, formatString("%s not found in retained messages.", s.toStdString().c_str()).c_str());
  532 + QVERIFY2(r, formatString("%s not found in retained messages.", s.c_str()).c_str());
519 533 }
520 534  
521 535 }
... ...