@@ -94,6 +94,7 @@ void Test::run() {
94
94
testFailedWrites ();
95
95
testTimestamp ();
96
96
testRetryOnFailedConnection ();
97
+ testRetryOnFailedConnectionWithFlush ();
97
98
testBufferOverwriteBatchsize1 ();
98
99
testBufferOverwriteBatchsize5 ();
99
100
testServerTempDownBatchsize5 ();
@@ -503,6 +504,81 @@ void Test::testRetryOnFailedConnection() {
503
504
deleteAll (Test::apiUrl);
504
505
}
505
506
507
+ void Test::testRetryOnFailedConnectionWithFlush () {
508
+ TEST_INIT (" testRetryOnFailedConnectionWithFlush" );
509
+
510
+ InfluxDBClient clientOk (Test::apiUrl, Test::orgName, Test::bucketName, Test::token);
511
+ clientOk.setWriteOptions (WriteOptions ().batchSize (2 ).bufferSize (2 ).retryInterval (4 ));
512
+ waitServer (Test::managementUrl, true );
513
+ TEST_ASSERT (clientOk.validateConnection ());
514
+ Point *p = createPoint (" test1" );
515
+ TEST_ASSERT (clientOk.writePoint (*p));
516
+ delete p;
517
+ TEST_ASSERT (clientOk.flushBuffer ());
518
+ TEST_ASSERT (clientOk.isBufferEmpty ());
519
+
520
+ clientOk.setHTTPOptions (HTTPOptions ().httpReadTimeout (500 ));
521
+
522
+ Serial.println (" Stop server!" );
523
+ waitServer (Test::managementUrl, false );
524
+ // test dropping batch on max retry count
525
+ TEST_ASSERT (!clientOk.validateConnection ());
526
+ p = createPoint (" test1" );
527
+ TEST_ASSERT (clientOk.writePoint (*p));
528
+ delete p;
529
+
530
+ Serial.print (millis ()/1000 .0f ,3 );
531
+ Serial.println (" Write 1" );
532
+
533
+ TEST_ASSERT (!clientOk.flushBuffer ());
534
+ TEST_ASSERT (!clientOk.isBufferEmpty ());
535
+ Serial.println (clientOk.getLastErrorMessage ());
536
+
537
+ Serial.print (millis ()/1000 .0f ,3 );
538
+ Serial.println (" Write 2" );
539
+
540
+ TEST_ASSERT (!clientOk.flushBuffer ());
541
+ TEST_ASSERT (!clientOk.isBufferEmpty ());
542
+ Serial.println (clientOk.getLastErrorMessage ());
543
+
544
+ Serial.print (millis ()/1000 .0f ,3 );
545
+ Serial.println (" Write 3" );
546
+
547
+ TEST_ASSERT (!clientOk.flushBuffer ());
548
+ TEST_ASSERT (!clientOk.isBufferEmpty ());
549
+ Serial.println (clientOk.getLastErrorMessage ());
550
+
551
+
552
+ Serial.println (" Start server!" );
553
+ waitServer (Test::managementUrl, true );
554
+ clientOk.setHTTPOptions (HTTPOptions ().httpReadTimeout (5000 ));
555
+ TEST_ASSERT (clientOk.validateConnection ());
556
+
557
+ Serial.print (millis ()/1000 .0f ,3 );
558
+ Serial.println (" Write 4" );
559
+ p = createPoint (" test1" );
560
+ TEST_ASSERT (clientOk.writePoint (*p));
561
+ delete p;
562
+ TEST_ASSERT (clientOk.flushBuffer ());
563
+ TEST_ASSERT (clientOk.isBufferEmpty ());
564
+
565
+ Serial.print (millis ()/1000 .0f ,3 );
566
+ Serial.println (" Write 5" );
567
+ p = createPoint (" test1" );
568
+ TEST_ASSERT (clientOk.writePoint (*p));
569
+ delete p;
570
+ TEST_ASSERT (clientOk.flushBuffer ());
571
+ TEST_ASSERT (clientOk.isBufferEmpty ());
572
+
573
+ String query = " select" ;
574
+ FluxQueryResult q = clientOk.query (query);
575
+ TEST_ASSERT (countLines (q) == 3 );
576
+
577
+
578
+ TEST_END ();
579
+ deleteAll (Test::apiUrl);
580
+ }
581
+
506
582
void Test::testBufferOverwriteBatchsize1 () {
507
583
TEST_INIT (" testBufferOverwriteBatchsize1" );
508
584
InfluxDBClient client (INFLUXDB_CLIENT_TESTING_BAD_URL, Test::orgName, Test::bucketName, Test::token);
0 commit comments