@@ -579,7 +579,7 @@ TEST_F(TestATHandler, test_ATHandler_read_string)
579
579
EXPECT_TRUE (NSAPI_ERROR_DEVICE_ERROR == at.get_last_error ());
580
580
at.clear_error ();
581
581
// Device error because empty buffer and attempt to fill_buffer by consume_char('\"')
582
- EXPECT_TRUE (- 1 == at.read_string (buf1, 1 ));
582
+ EXPECT_TRUE (0 == at.read_string (buf1, 1 ));
583
583
584
584
// *** 1 BYTE ***
585
585
at.clear_error ();
@@ -599,7 +599,7 @@ TEST_F(TestATHandler, test_ATHandler_read_string)
599
599
600
600
// *** CRLF ***
601
601
at.clear_error ();
602
- char table3[] = " \r\n s \r\n\0 " ;
602
+ char table3[] = " \r\n ,s \r\n\0 " ;
603
603
at.flush ();
604
604
filehandle_stub_table = table3;
605
605
filehandle_stub_table_pos = 0 ;
@@ -670,13 +670,9 @@ TEST_F(TestATHandler, test_ATHandler_read_string)
670
670
at.resp_start ();
671
671
// TO read 1 byte from: "s"OK\r\n -> read "
672
672
at.read_bytes (buf5, 1 );
673
- // TO read max 1 byte from: s"OK\r\n -> read s
673
+ // TO read max 1 byte from: s"OK\r\n -> read s + read to stop_tag(OKCRLF)
674
674
EXPECT_TRUE (1 == at.read_string (buf4, 1 + 1 /* for NULL*/ ));
675
675
676
- // *** Consume " and run into OKCRLF ***
677
- // TO read max 1 byte from: "OK\r\n -> consume " and find stop tag OKCRLF
678
- EXPECT_TRUE (0 == at.read_string (buf4, 1 + 1 /* for NULL*/ ));
679
-
680
676
// *** Try to read after stop tag was found ***
681
677
// stop tag found do not read further
682
678
EXPECT_TRUE (-1 == at.read_string (buf4, 1 + 1 /* for NULL*/ ));
@@ -706,7 +702,7 @@ TEST_F(TestATHandler, test_ATHandler_read_string)
706
702
mbed_poll_stub::revents_value = POLLIN;
707
703
mbed_poll_stub::int_value = 1 ;
708
704
at.resp_start (" s" );
709
- // TO read from buffer having only " -> consume " -> trying to read when nothing in buffer
705
+ // TO read from buffer having only " -> trying to find delimiter or stop_tag(OKCRLF)
710
706
EXPECT_TRUE (-1 == at.read_string (buf4, 5 ));
711
707
EXPECT_TRUE (NSAPI_ERROR_DEVICE_ERROR == at.get_last_error ());
712
708
@@ -739,6 +735,21 @@ TEST_F(TestATHandler, test_ATHandler_read_string)
739
735
// TO read from
740
736
EXPECT_TRUE (6 == at.read_string (buf9, 6 + 1 /* for NULL*/ ));
741
737
738
+ at.clear_error ();
739
+ char table11[] = " \" 1016\" ,\" 39AB\" ,9\r\n\0 " ;
740
+ mbed_poll_stub::int_value = 0 ;
741
+ at.flush ();
742
+ filehandle_stub_table = table11;
743
+ filehandle_stub_table_pos = 0 ;
744
+ mbed_poll_stub::revents_value = POLLIN;
745
+ mbed_poll_stub::int_value = 1 ;
746
+ at.resp_start ();
747
+ EXPECT_TRUE (4 == at.read_string (buf4, 4 + 1 /* for NULL*/ ));
748
+ EXPECT_TRUE (!strncmp (buf4, " 1016" , 4 ));
749
+ EXPECT_TRUE (4 == at.read_string (buf4, 4 + 1 /* for NULL*/ ));
750
+ EXPECT_TRUE (!strncmp (buf4, " 39AB" , 4 ));
751
+ EXPECT_TRUE (9 == at.read_int ());
752
+
742
753
// *** CRLF part of the string ***
743
754
at.clear_error ();
744
755
char table10[] = " \" s\"\r\n OK\r\n\0 " ;
0 commit comments