Skip to content

Commit eb3aec6

Browse files
committed
Change unit tests to use ArduinoUnit FakeStream
1 parent 9521b53 commit eb3aec6

File tree

1 file changed

+14
-53
lines changed

1 file changed

+14
-53
lines changed

test/unit/firmata_test/firmata_test.ino

Lines changed: 14 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -13,54 +13,6 @@ void loop()
1313
suite.run();
1414
}
1515

16-
class InMemoryStream : public Stream
17-
{
18-
public:
19-
virtual ~InMemoryStream()
20-
{
21-
}
22-
23-
size_t write(uint8_t val)
24-
{
25-
_bytesWritten += (char) val;
26-
27-
return size_t(1);
28-
}
29-
30-
void flush()
31-
{
32-
}
33-
34-
const String& bytesWritten()
35-
{
36-
return _bytesWritten;
37-
}
38-
39-
void nextByte(byte b)
40-
{
41-
_nextByte = b;
42-
}
43-
44-
int available()
45-
{
46-
return 1;
47-
}
48-
49-
int read()
50-
{
51-
return _nextByte;
52-
}
53-
54-
int peek()
55-
{
56-
return _nextByte;
57-
}
58-
59-
private:
60-
String _bytesWritten;
61-
byte _nextByte;
62-
};
63-
6416
void assertStringsEqual(Test& __test__, const char* expected, const String& actual)
6517
{
6618
size_t expectedLength = strlen(expected);
@@ -73,23 +25,23 @@ void assertStringsEqual(Test& __test__, const char* expected, const String& actu
7325

7426
test(beginPrintsVersion)
7527
{
76-
InMemoryStream stream;
28+
FakeStream stream;
7729

7830
Firmata.begin(stream);
7931

8032
char expected[] =
8133
{
82-
0xF9, // Version reporting identifier
83-
2, // Major version number
84-
3, // Minor version number
34+
REPORT_VERSION,
35+
FIRMATA_MAJOR_VERSION,
36+
FIRMATA_MINOR_VERSION,
8537
0
8638
};
8739
assertStringsEqual(__test__, expected, stream.bytesWritten());
8840
}
8941

9042
void processMessage(const byte* message, size_t length)
9143
{
92-
InMemoryStream stream;
44+
FakeStream stream;
9345
Firmata.begin(stream);
9446

9547
for (size_t i = 0; i < length; i++)
@@ -178,3 +130,12 @@ test(specifiedDigitalWritePort)
178130
assertEquals(1, _digitalPort);
179131
}
180132

133+
test(setFirmwareVersionDoesNotLeakMemory)
134+
{
135+
Firmata.setFirmwareVersion(1, 0);
136+
int initialMemory = freeMemory();
137+
138+
Firmata.setFirmwareVersion(1, 0);
139+
140+
assertEquals(0, initialMemory - freeMemory());
141+
}

0 commit comments

Comments
 (0)