Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitabee6d1

Browse files
committed
Fixing a couple of issues within StreamMock so that it's now fully functional
1 parentff7e4a6 commitabee6d1

File tree

3 files changed

+66
-17
lines changed

3 files changed

+66
-17
lines changed

‎test/CMakeLists.txt‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ set(TEST_SRCS
4848
src/Ringbuffer/test_read_char.cpp
4949
src/Ringbuffer/test_store_char.cpp
5050
src/Stream/test_getTimeout.cpp
51+
src/Stream/test_readString.cpp
5152
src/Stream/test_setTimeout.cpp
5253
src/String/test_concat.cpp
5354
src/String/test_operators.cpp
@@ -91,8 +92,9 @@ set(TEST_TARGET_SRCS
9192
src/main.cpp
9293
src/dtostrf.cpp
9394
src/itoa.cpp
94-
src/PrintMock.cpp
9595
src/MillisFake.cpp
96+
src/PrintMock.cpp
97+
src/StreamMock.cpp
9698
${TEST_SRCS}
9799
${TEST_DUT_SRCS}
98100
)

‎test/include/StreamMock.h‎

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* INCLUDE
1010
**************************************************************************************/
1111

12-
#include<sstream>
12+
#include<deque>
1313

1414
#include<Stream.h>
1515

@@ -20,21 +20,17 @@
2020
classStreamMock :publicarduino::Stream
2121
{
2222
public:
23-
std::stringstream _ss;
24-
25-
virtualsize_twrite(uint8_t ch)override { _ss <<static_cast<char>(ch);return1; }
26-
virtualintavailable()override {return _ss.gcount(); }
27-
virtualintread()override
28-
{
29-
char ch;
30-
_ss >> ch;
31-
return ch;
32-
}
33-
virtualintpeek()override
34-
{
35-
char ch = _ss.peek();
36-
return ch;
37-
}
23+
24+
voidoperator << (charconst * str);
25+
26+
virtualsize_twrite(uint8_t ch)override;
27+
virtualintavailable()override;
28+
virtualintread()override;
29+
virtualintpeek()override;
30+
31+
private:
32+
std::deque<char> _stream;
33+
3834
};
3935

4036
#endif/* STREAM_MOCK_H_*/

‎test/src/StreamMock.cpp‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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 << (charconst * str)
16+
{
17+
for (size_t c =0; c <strlen(str); c++)
18+
_stream.push_back(str[c]);
19+
}
20+
21+
size_tStreamMock::write(uint8_t ch)
22+
{
23+
_stream.push_back(static_cast<char>(ch));
24+
return1;
25+
}
26+
27+
intStreamMock::available()
28+
{
29+
return _stream.size();
30+
}
31+
32+
intStreamMock::read()
33+
{
34+
if (available() ==0)
35+
return -1;
36+
37+
/* Extract first/oldest element.*/
38+
charconst c = _stream.at(0);
39+
/* Erase first/oldest element.*/
40+
_stream.pop_front();
41+
42+
return c;
43+
}
44+
45+
intStreamMock::peek()
46+
{
47+
if (available() ==0)
48+
return -1;
49+
50+
return _stream.at(0);
51+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp