@@ -51,7 +51,9 @@ void setup() {
51
51
class Test {
52
52
public:
53
53
static void run ();
54
- private:
54
+ private: // helpers
55
+ static void setServerUrl (InfluxDBClient &client, String serverUrl);
56
+ private: // tests
55
57
static void testOptions ();
56
58
static void testEcaping ();
57
59
static void testPoint ();
@@ -481,16 +483,29 @@ void Test::testRetryOnFailedConnection() {
481
483
482
484
InfluxDBClient clientOk (INFLUXDB_CLIENT_TESTING_URL, INFLUXDB_CLIENT_TESTING_ORG, INFLUXDB_CLIENT_TESTING_BUC, INFLUXDB_CLIENT_TESTING_TOK);
483
485
clientOk.setWriteOptions (WriteOptions ().batchSize (1 ).bufferSize (5 ));
486
+ waitServer (clientOk, true );
487
+ TEST_ASSERT (clientOk.validateConnection ());
488
+ Point *p = createPoint (" test1" );
489
+ TEST_ASSERT (clientOk.writePoint (*p));
490
+ delete p;
491
+ p = createPoint (" test1" );
492
+ TEST_ASSERT (clientOk.writePoint (*p));
493
+ delete p;
494
+ TEST_ASSERT (clientOk.isBufferEmpty ());
495
+
484
496
clientOk.setHTTPOptions (HTTPOptions ().httpReadTimeout (500 ));
485
497
486
498
Serial.println (" Stop server!" );
487
499
waitServer (clientOk, false );
488
500
TEST_ASSERT (!clientOk.validateConnection ());
489
- Point *p = createPoint (" test1" );
501
+ TEST_ASSERTM (clientOk._lastRetryAfter == 0 , String (clientOk._lastRetryAfter ));
502
+ p = createPoint (" test1" );
490
503
TEST_ASSERT (!clientOk.writePoint (*p));
504
+ TEST_ASSERTM (clientOk._lastRetryAfter == 0 , String (clientOk._lastRetryAfter ));
491
505
delete p;
492
506
p = createPoint (" test1" );
493
507
TEST_ASSERT (!clientOk.writePoint (*p));
508
+ TEST_ASSERTM (clientOk._lastRetryAfter == 0 , String (clientOk._lastRetryAfter ));
494
509
delete p;
495
510
496
511
Serial.println (" Start server!" );
@@ -499,6 +514,7 @@ void Test::testRetryOnFailedConnection() {
499
514
TEST_ASSERT (clientOk.validateConnection ());
500
515
p = createPoint (" test1" );
501
516
TEST_ASSERT (clientOk.writePoint (*p));
517
+ TEST_ASSERTM (clientOk._lastRetryAfter == 0 , String (clientOk._lastRetryAfter ));
502
518
delete p;
503
519
TEST_ASSERT (clientOk.isBufferEmpty ());
504
520
String query = " select" ;
@@ -525,8 +541,8 @@ void Test::testBufferOverwriteBatchsize1() {
525
541
TEST_ASSERT (client.isBufferFull ());
526
542
TEST_ASSERTM (client._writeBuffer [0 ]->buffer [0 ].indexOf (" index=10i" ) > 0 , client._writeBuffer [0 ]->buffer [0 ]);
527
543
528
- client. _serverUrl = INFLUXDB_CLIENT_TESTING_URL;
529
- client. setUrls ();
544
+ setServerUrl ( client, INFLUXDB_CLIENT_TESTING_URL ) ;
545
+
530
546
waitServer (client, true );
531
547
client.setHTTPOptions (HTTPOptions ().httpReadTimeout (5000 ));
532
548
Point *p = createPoint (" test1" );
@@ -566,8 +582,7 @@ void Test::testBufferOverwriteBatchsize5() {
566
582
TEST_ASSERT (client.isBufferFull ());
567
583
TEST_ASSERTM (client._writeBuffer [0 ]->buffer [0 ].indexOf (" index=20i" ) > 0 , client._writeBuffer [0 ]->buffer [0 ]);
568
584
569
- client._serverUrl = INFLUXDB_CLIENT_TESTING_URL;
570
- client.setUrls ();
585
+ setServerUrl (client,INFLUXDB_CLIENT_TESTING_URL );
571
586
572
587
waitServer (client, true );
573
588
client.setHTTPOptions (HTTPOptions ().httpReadTimeout (5000 ));
@@ -1685,34 +1700,42 @@ void Test::testRetryInterval() {
1685
1700
1686
1701
String rec = " test1,direction=permanent-set,x-code=502,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=0" ;
1687
1702
TEST_ASSERT (!client.writeRecord (rec));
1703
+ TEST_ASSERT (!client.canSendRequest ());
1688
1704
TEST_ASSERTM (client._lastRetryAfter == 2 , String (client._lastRetryAfter ));
1689
1705
TEST_ASSERTM (client._writeBuffer [0 ]->retryCount == 1 , String (client._writeBuffer [0 ]->retryCount ));
1690
1706
delay (2000 );
1691
1707
rec = " test1,direction=permanent-unset,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=2" ;
1692
1708
TEST_ASSERT (!client.writeRecord (rec));
1709
+ TEST_ASSERT (!client.canSendRequest ());
1693
1710
TEST_ASSERTM (client._lastRetryAfter == 4 , String (client._lastRetryAfter ));
1694
1711
TEST_ASSERTM (client._writeBuffer [0 ]->retryCount == 2 , String (client._writeBuffer [0 ]->retryCount ));
1695
1712
delay (4000 );
1696
1713
rec = " test1,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=3" ;
1697
1714
TEST_ASSERT (!client.writeRecord (rec));
1715
+ TEST_ASSERT (!client.canSendRequest ());
1698
1716
TEST_ASSERTM (client._lastRetryAfter == 8 , String (client._lastRetryAfter ));
1699
1717
TEST_ASSERTM (client._writeBuffer [0 ]->retryCount == 3 , String (client._writeBuffer [0 ]->retryCount ));
1700
1718
delay (8000 );
1701
1719
rec = " test1,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=4" ;
1702
1720
TEST_ASSERT (!client.writeRecord (rec));
1721
+ TEST_ASSERT (!client.canSendRequest ());
1703
1722
TEST_ASSERTM (client._lastRetryAfter == 2 , String (client._lastRetryAfter ));
1704
1723
TEST_ASSERT (!client._writeBuffer [0 ]);
1705
1724
TEST_ASSERTM (client._writeBuffer [1 ]->retryCount == 0 , String (client._writeBuffer [1 ]->retryCount ));
1706
1725
1707
1726
delay (2000 );
1708
1727
rec = " test1,SSID=bonitoo.io,device_name=ESP32,device_id=4272205360 temperature=28.60,humidity=86i,code=69i,door=false,status=\" failed\" ,index=5" ;
1709
1728
TEST_ASSERT (!client.writeRecord (rec));
1729
+ TEST_ASSERT (!client.canSendRequest ());
1710
1730
TEST_ASSERTM (client._lastRetryAfter == 2 , String (client._lastRetryAfter ));
1711
1731
TEST_ASSERT (!client._writeBuffer [0 ]);
1712
1732
TEST_ASSERTM (client._writeBuffer [1 ]->retryCount == 1 , String (client._writeBuffer [1 ]->retryCount ));
1713
1733
1714
1734
delay (2000 );
1735
+ TEST_ASSERT (client.canSendRequest ());
1715
1736
TEST_ASSERTM (client.flushBuffer (), client.getLastErrorMessage ());
1737
+ TEST_ASSERT (client.isBufferEmpty ());
1738
+ TEST_ASSERT (!client.isBufferFull ());
1716
1739
String query = " select" ;
1717
1740
FluxQueryResult q = client.query (query);
1718
1741
TEST_ASSERT (countLines (q) == 3 ); // point with the direction tag is skipped
@@ -1782,6 +1805,11 @@ void Test::testDefaultTags() {
1782
1805
deleteAll (INFLUXDB_CLIENT_TESTING_URL);
1783
1806
}
1784
1807
1808
+ void Test::setServerUrl (InfluxDBClient &client, String serverUrl) {
1809
+ client._serverUrl = serverUrl;
1810
+ client.setUrls ();
1811
+ }
1812
+
1785
1813
Point *createPoint (String measurement) {
1786
1814
Point *point = new Point (measurement);
1787
1815
point->addTag (" SSID" , WiFi.SSID ());
0 commit comments