File tree Expand file tree Collapse file tree 3 files changed +66
-17
lines changed Expand file tree Collapse file tree 3 files changed +66
-17
lines changed Original file line number Diff line number Diff line change @@ -48,6 +48,7 @@ set(TEST_SRCS
48
48
src/Ringbuffer/test_read_char.cpp
49
49
src/Ringbuffer/test_store_char.cpp
50
50
src/Stream/test_getTimeout.cpp
51
+ src/Stream/test_readString.cpp
51
52
src/Stream/test_setTimeout.cpp
52
53
src/String/test_concat.cpp
53
54
src/String/test_operators.cpp
@@ -91,8 +92,9 @@ set(TEST_TARGET_SRCS
91
92
src/main.cpp
92
93
src/dtostrf.cpp
93
94
src/itoa.cpp
94
- src/PrintMock.cpp
95
95
src/MillisFake.cpp
96
+ src/PrintMock.cpp
97
+ src/StreamMock.cpp
96
98
${TEST_SRCS}
97
99
${TEST_DUT_SRCS}
98
100
)
Original file line number Diff line number Diff line change 9
9
* INCLUDE
10
10
**************************************************************************************/
11
11
12
- #include < sstream >
12
+ #include < deque >
13
13
14
14
#include < Stream.h>
15
15
20
20
class StreamMock : public arduino ::Stream
21
21
{
22
22
public:
23
- std::stringstream _ss;
24
-
25
- virtual size_t write (uint8_t ch) override { _ss << static_cast <char >(ch); return 1 ; }
26
- virtual int available () override { return _ss.gcount (); }
27
- virtual int read () override
28
- {
29
- char ch;
30
- _ss >> ch;
31
- return ch;
32
- }
33
- virtual int peek () override
34
- {
35
- char ch = _ss.peek ();
36
- return ch;
37
- }
23
+
24
+ void operator << (char const * str);
25
+
26
+ virtual size_t write (uint8_t ch) override ;
27
+ virtual int available () override ;
28
+ virtual int read () override ;
29
+ virtual int peek () override ;
30
+
31
+ private:
32
+ std::deque<char > _stream;
33
+
38
34
};
39
35
40
36
#endif /* STREAM_MOCK_H_ */
Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (c) 2020 Arduino. All rights reserved.
3
+ */
4
+
5
+ /* *************************************************************************************
6
+ * INCLUDE
7
+ **************************************************************************************/
8
+
9
+ #include < StreamMock.h>
10
+
11
+ /* *************************************************************************************
12
+ * PUBLIC MEMBER FUNCTIONS
13
+ **************************************************************************************/
14
+
15
+ void StreamMock::operator << (char const * str)
16
+ {
17
+ for (size_t c = 0 ; c < strlen (str); c++)
18
+ _stream.push_back (str[c]);
19
+ }
20
+
21
+ size_t StreamMock::write (uint8_t ch)
22
+ {
23
+ _stream.push_back (static_cast <char >(ch));
24
+ return 1 ;
25
+ }
26
+
27
+ int StreamMock::available ()
28
+ {
29
+ return _stream.size ();
30
+ }
31
+
32
+ int StreamMock::read ()
33
+ {
34
+ if (available () == 0 )
35
+ return -1 ;
36
+
37
+ /* Extract first/oldest element. */
38
+ char const c = _stream.at (0 );
39
+ /* Erase first/oldest element. */
40
+ _stream.pop_front ();
41
+
42
+ return c;
43
+ }
44
+
45
+ int StreamMock::peek ()
46
+ {
47
+ if (available () == 0 )
48
+ return -1 ;
49
+
50
+ return _stream.at (0 );
51
+ }
You can’t perform that action at this time.
0 commit comments