@@ -101,7 +101,7 @@ test(NETWORK_01_LargePacketsDontCauseIssues_ResolveMtu) {
101101 }
102102 Serial.printlnf (" Using Echo Server: [%s]" , udpEchoServerHostname);
103103 NAMED_SCOPE_GUARD (sg, {
104- assertEqual (0 , pushMailboxMsg (String::format (" {\" mtu\" : 0 , \" error\" : true, \" server\" : \" %s\" }" , 0 , udpEchoServerHostname), 30000 /* wait */ ));
104+ assertEqual (0 , pushMailboxMsg (String::format (" {\" mtu\" : %d , \" error\" : true, \" server\" : \" %s\" }" , 0 , udpEchoServerHostname), 30000 /* wait */ ));
105105 });
106106
107107 // 15 min gives the device time to go through a 10 min timeout & power cycle
@@ -173,6 +173,7 @@ test(NETWORK_01_LargePacketsDontCauseIssues_ResolveMtu) {
173173 size_t minMtu = MIN_MTU;
174174 size_t maxMtu = MAX_MTU;
175175 while (mtu > IPV4_PLUS_UDP_HEADER_LENGTH) {
176+ Particle.process ();
176177 // Fille send buffer with random data
177178 const size_t payloadSize = mtu - IPV4_PLUS_UDP_HEADER_LENGTH;
178179 rand.gen ((char *)sendBuffer.get (), payloadSize);
@@ -188,11 +189,6 @@ test(NETWORK_01_LargePacketsDontCauseIssues_ResolveMtu) {
188189
189190 Serial.printlnf (" Resolved MTU: %u" , mtu);
190191
191- // The test should be running for at least a minute, just in case
192- if (millis () - start < MINIMUM_TEST_TIME) {
193- delay (millis () - start);
194- }
195- assertFalse ((bool )networkState.disconnected );
196192#if PLATFORM_ID != PLATFORM_BORON && PLATFORM_ID != PLATFORM_BSOM && PLATFORM_ID != PLATFORM_ELECTRON2
197193 assertMoreOrEqual ((mtu - IPV4_PLUS_UDP_HEADER_LENGTH), MBEDTLS_SSL_MAX_CONTENT_LEN);
198194#else
@@ -206,6 +202,7 @@ test(NETWORK_01_LargePacketsDontCauseIssues_ResolveMtu) {
206202
207203 int replies = 0 ;
208204 for (int i = 0 ; i < 100 ; i++) {
205+ Particle.process ();
209206 const size_t payloadSize = mtu - IPV4_PLUS_UDP_HEADER_LENGTH;
210207 rand.gen ((char *)sendBuffer.get (), payloadSize);
211208 int sent = 0 ;
@@ -223,6 +220,7 @@ test(NETWORK_01_LargePacketsDontCauseIssues_ResolveMtu) {
223220 assertMoreOrEqual (sent, 1 );
224221 if (sent > 0 ) {
225222 for (auto start = millis (); millis () - start <= 5000 ;) {
223+ Particle.process ();
226224 auto len = udp->parsePacket (10 );
227225 if (len == payloadSize) {
228226 if (!memcmp (udp->buffer (), sendBuffer.get (), payloadSize)) {
@@ -239,6 +237,14 @@ test(NETWORK_01_LargePacketsDontCauseIssues_ResolveMtu) {
239237
240238 Serial.printlnf (" Recvd %d replies" , replies);
241239
240+ // The test should be running for at least a minute, just in case
241+ const auto end = start + MINIMUM_TEST_TIME;
242+ const auto now = millis ();
243+ if (now < end) {
244+ delay (end - now);
245+ }
246+ assertFalse ((bool )networkState.disconnected );
247+
242248 assertMoreOrEqual (replies, 100 * 10 / 2 );
243249 assertFalse ((bool )networkState.disconnected );
244250
0 commit comments