@@ -17,12 +17,24 @@ void assertStringsEqual(Test& __test__, const char* expected, const String& actu
17
17
{
18
18
size_t expectedLength = strlen (expected);
19
19
assertEquals (expectedLength, actual.length ());
20
- for (size_t i = 0 ; i < strlen (expected) ; i++)
20
+ for (size_t i = 0 ; i < expectedLength ; i++)
21
21
{
22
22
assertEquals (expected[i], actual[i]);
23
23
}
24
24
}
25
25
26
+ test (setFirmwareVersionDoesNotLeakMemory)
27
+ {
28
+ Firmata.setFirmwareVersion (1 , 0 );
29
+ int initialMemory = freeMemory ();
30
+
31
+ Firmata.setFirmwareVersion (1 , 0 );
32
+
33
+ assertEquals (0 , initialMemory - freeMemory ());
34
+
35
+ Firmata.unsetFirmwareVersion ();
36
+ }
37
+
26
38
test (beginPrintsVersion)
27
39
{
28
40
FakeStream stream;
@@ -59,8 +71,14 @@ void writeToDigitalPort(byte port, int value)
59
71
_digitalPortValue = value;
60
72
}
61
73
74
+ void setupDigitalPort () {
75
+ _digitalPort = 0 ;
76
+ _digitalPortValue = 0 ;
77
+ }
78
+
62
79
test (processWriteDigital_0)
63
80
{
81
+ setupDigitalPort ();
64
82
Firmata.attach (DIGITAL_MESSAGE, writeToDigitalPort);
65
83
66
84
byte message[] = { DIGITAL_MESSAGE, 0 , 0 };
@@ -71,6 +89,7 @@ test(processWriteDigital_0)
71
89
72
90
test (processWriteDigital_127)
73
91
{
92
+ setupDigitalPort ();
74
93
Firmata.attach (DIGITAL_MESSAGE, writeToDigitalPort);
75
94
76
95
byte message[] = { DIGITAL_MESSAGE, 127 , 0 };
@@ -79,18 +98,9 @@ test(processWriteDigital_127)
79
98
assertEquals (127 , _digitalPortValue);
80
99
}
81
100
82
- test (processWriteDigitalStripsTopBit)
83
- {
84
- Firmata.attach (DIGITAL_MESSAGE, writeToDigitalPort);
85
-
86
- byte message[] = { DIGITAL_MESSAGE, B11111111, 0 };
87
- processMessage (message, 3 );
88
-
89
- assertEquals (B01111111, _digitalPortValue);
90
- }
91
-
92
101
test (processWriteDigital_128)
93
102
{
103
+ setupDigitalPort ();
94
104
Firmata.attach (DIGITAL_MESSAGE, writeToDigitalPort);
95
105
96
106
byte message[] = { DIGITAL_MESSAGE, 0 , 1 };
@@ -101,6 +111,7 @@ test(processWriteDigital_128)
101
111
102
112
test (processWriteLargestDigitalValue)
103
113
{
114
+ setupDigitalPort ();
104
115
Firmata.attach (DIGITAL_MESSAGE, writeToDigitalPort);
105
116
106
117
byte message[] = { DIGITAL_MESSAGE, 0x7F , 0x7F };
@@ -112,6 +123,7 @@ test(processWriteLargestDigitalValue)
112
123
113
124
test (defaultDigitalWritePortIsZero)
114
125
{
126
+ setupDigitalPort ();
115
127
Firmata.attach (DIGITAL_MESSAGE, writeToDigitalPort);
116
128
117
129
byte message[] = { DIGITAL_MESSAGE, 0 , 0 };
@@ -122,6 +134,7 @@ test(defaultDigitalWritePortIsZero)
122
134
123
135
test (specifiedDigitalWritePort)
124
136
{
137
+ setupDigitalPort ();
125
138
Firmata.attach (DIGITAL_MESSAGE, writeToDigitalPort);
126
139
127
140
byte message[] = { DIGITAL_MESSAGE + 1 , 0 , 0 };
@@ -130,12 +143,3 @@ test(specifiedDigitalWritePort)
130
143
assertEquals (1 , _digitalPort);
131
144
}
132
145
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