Commit a6d7395ea2d1a9949fc8833f083d96fc7660c0e3

Authored by Wiebe Cazemier
1 parent e1043748

Repurpose packet copy test

Showing 1 changed file with 16 additions and 35 deletions
FlashMQTests/tst_maintests.cpp
... ... @@ -57,6 +57,8 @@ class MainTests : public QObject
57 57  
58 58 QScopedPointer<MainAppThread> mainApp;
59 59  
  60 + void testParsePacketHelper(const std::string &topic, char from_qos, bool retain);
  61 +
60 62 public:
61 63 MainTests();
62 64 ~MainTests();
... ... @@ -102,7 +104,7 @@ private slots:
102 104  
103 105 void testSavingSessions();
104 106  
105   - void testCopyPacket();
  107 + void testParsePacket();
106 108  
107 109 void testDowngradeQoSOnSubscribeQos2to2();
108 110 void testDowngradeQoSOnSubscribeQos2to1();
... ... @@ -1104,10 +1106,8 @@ void MainTests::testSavingSessions()
1104 1106 }
1105 1107 }
1106 1108  
1107   -void testCopyPacketHelper(const std::string &topic, char from_qos, char to_qos, bool retain)
  1109 +void MainTests::testParsePacketHelper(const std::string &topic, char from_qos, bool retain)
1108 1110 {
1109   - assert(to_qos <= from_qos);
1110   -
1111 1111 Logger::getInstance()->setFlags(false, false, true);
1112 1112  
1113 1113 std::shared_ptr<Settings> settings(new Settings());
... ... @@ -1145,48 +1145,29 @@ void testCopyPacketHelper(const std::string &amp;topic, char from_qos, char to_qos,
1145 1145 parsedPacketOne.handlePublish();
1146 1146 if (retain) // A normal handled packet always has retain=0, so I force setting it here.
1147 1147 parsedPacketOne.setRetain();
  1148 +
1148 1149 QCOMPARE(stagingPacketOne.getTopic(), parsedPacketOne.getTopic());
1149 1150 QCOMPARE(stagingPacketOne.getPayloadCopy(), parsedPacketOne.getPayloadCopy());
1150   -
1151   - /*
1152   - std::shared_ptr<MqttPacket> copiedPacketOne = parsedPacketOne.getCopy(to_qos);
1153   -
1154   - QCOMPARE(payloadOne, copiedPacketOne->getPayloadCopy());
1155   -
1156   - // Now compare the written buffer of our copied packet to one that was written with our known good reference packet.
1157   -
1158   - Publish pubReference(topic, payloadOne, to_qos);
1159   - pubReference.retain = retain;
1160   - MqttPacket packetReference(ProtocolVersion::Mqtt311, pubReference);
1161   - QCOMPARE(packetReference.getQos(), copiedPacketOne->getQos());
1162   - if (to_qos > 0)
1163   - packetReference.setPacketId(pack_id);
1164   - CirBuf bufOfReference(1024);
1165   - CirBuf bufOfCopied(1024);
1166   - packetReference.readIntoBuf(bufOfReference);
1167   - copiedPacketOne->readIntoBuf(bufOfCopied);
1168   - QVERIFY2(bufOfCopied == bufOfReference, formatString("Failure on length %d for topic %s, from qos %d to qos %d, retain: %d.",
1169   - len, topic.c_str(), from_qos, to_qos, retain).c_str());
1170   - */
  1151 + QCOMPARE(stagingPacketOne.getRetain(), parsedPacketOne.getRetain());
  1152 + QCOMPARE(stagingPacketOne.getQos(), parsedPacketOne.getQos());
  1153 + QCOMPARE(stagingPacketOne.first_byte, parsedPacketOne.first_byte);
1171 1154 }
1172 1155 }
1173 1156  
1174 1157 /**
1175   - * @brief MainTests::testCopyPacket tests the actual bytes of a copied that would be written to a client.
1176   - *
1177   - * This is specifically to test the optimiziations in getCopy(). It indirectly also tests packet parsing.
  1158 + * @brief MainTests::testCopyPacket tests the actual bytes of a published packet that would be written to a client.
1178 1159 */
1179   -void MainTests::testCopyPacket()
  1160 +void MainTests::testParsePacket()
1180 1161 {
1181 1162 for (int retain = 0; retain < 2; retain++)
1182 1163 {
1183   - testCopyPacketHelper("John/McLane", 0, 0, retain);
1184   - testCopyPacketHelper("Ben/Sisko", 1, 1, retain);
1185   - testCopyPacketHelper("Rebecca/Bunch", 2, 2, retain);
  1164 + testParsePacketHelper("John/McLane", 0, retain);
  1165 + testParsePacketHelper("Ben/Sisko", 1, retain);
  1166 + testParsePacketHelper("Rebecca/Bunch", 2, retain);
1186 1167  
1187   - testCopyPacketHelper("Buffy/Slayer", 1, 0, retain);
1188   - testCopyPacketHelper("Sarah/Connor", 2, 0, retain);
1189   - testCopyPacketHelper("Susan/Mayer", 2, 1, retain);
  1168 + testParsePacketHelper("Buffy/Slayer", 1, retain);
  1169 + testParsePacketHelper("Sarah/Connor", 2, retain);
  1170 + testParsePacketHelper("Susan/Mayer", 2, retain);
1190 1171 }
1191 1172 }
1192 1173  
... ...