Skip to content

Commit e8fefbb

Browse files
committed
test: check broadcast handleInt and handleNotify with no peers
1 parent 2a4e4b5 commit e8fefbb

File tree

1 file changed

+176
-16
lines changed

1 file changed

+176
-16
lines changed

Diff for: extras/test/src/test_characteristic/test_writeValue.cpp

+176-16
Original file line numberDiff line numberDiff line change
@@ -34,132 +34,292 @@ TEST_CASE("Test characteristic writeValue", "[ArduinoBLE::BLECharacteristic]")
3434
{
3535
WHEN("Create a bool characteristic")
3636
{
37-
BLEBoolCharacteristic boolCharacteristic("Bool", BLERead | BLEIndicate | BLEWrite);
37+
BLEBoolCharacteristic boolCharacteristic("Bool", BLEBroadcast| BLEIndicate | BLENotify );
3838
bool v = false;;
3939
int written = boolCharacteristic.writeValue(v);
4040
REQUIRE( written == sizeof(bool) );
41+
42+
BLEDevice device;
43+
boolCharacteristic.local()->writeCccdValue(device, 0x002);
44+
written = boolCharacteristic.writeValue(v);
45+
/* No peers connected */
46+
REQUIRE( written == 0 );
47+
boolCharacteristic.local()->writeCccdValue(device, 0x001);
48+
written = boolCharacteristic.writeValue(v);
49+
/* No peers connected */
50+
REQUIRE( written == 0 );
4151
}
4252

4353
WHEN("Create a boolean characteristic")
4454
{
45-
BLEBooleanCharacteristic booleanCharacteristic("Boolean", BLERead | BLEIndicate | BLEWrite);
55+
BLEBooleanCharacteristic booleanCharacteristic("Boolean", BLEBroadcast| BLEIndicate | BLENotify);
4656
bool v = false;
4757
int written = booleanCharacteristic.writeValue(v);
4858
REQUIRE( written == sizeof(bool) );
59+
60+
BLEDevice device;
61+
booleanCharacteristic.local()->writeCccdValue(device, 0x002);
62+
written = booleanCharacteristic.writeValue(v);
63+
/* No peers connected */
64+
REQUIRE( written == 0 );
65+
booleanCharacteristic.local()->writeCccdValue(device, 0x001);
66+
written = booleanCharacteristic.writeValue(v);
67+
/* No peers connected */
68+
REQUIRE( written == 0 );
4969
}
5070

5171
WHEN("Create a char characteristic")
5272
{
53-
BLECharCharacteristic charCharacteristic("Char", BLERead | BLEIndicate | BLEWrite);
73+
BLECharCharacteristic charCharacteristic("Char", BLEBroadcast| BLEIndicate | BLENotify);
5474
char v = 'a';
5575
int written = charCharacteristic.writeValue(v);
5676
REQUIRE( written == sizeof(char) );
77+
78+
BLEDevice device;
79+
charCharacteristic.local()->writeCccdValue(device, 0x002);
80+
written = charCharacteristic.writeValue(v);
81+
/* No peers connected */
82+
REQUIRE( written == 0 );
83+
charCharacteristic.local()->writeCccdValue(device, 0x001);
84+
written = charCharacteristic.writeValue(v);
85+
/* No peers connected */
86+
REQUIRE( written == 0 );
5787
}
5888

5989
WHEN("Create a unsigned char characteristic")
6090
{
61-
BLEUnsignedCharCharacteristic unsignedCharCharacteristic("UnsignedChar", BLERead | BLEIndicate | BLEWrite);
91+
BLEUnsignedCharCharacteristic unsignedCharCharacteristic("UnsignedChar", BLEBroadcast| BLEIndicate | BLENotify);
6292
unsigned char v = 0x01;
6393
int written = unsignedCharCharacteristic.writeValue(v);
6494
REQUIRE( written == sizeof(unsigned char) );
95+
96+
BLEDevice device;
97+
unsignedCharCharacteristic.local()->writeCccdValue(device, 0x002);
98+
written = unsignedCharCharacteristic.writeValue(v);
99+
/* No peers connected */
100+
REQUIRE( written == 0 );
101+
unsignedCharCharacteristic.local()->writeCccdValue(device, 0x001);
102+
written = unsignedCharCharacteristic.writeValue(v);
103+
/* No peers connected */
104+
REQUIRE( written == 0 );
65105
}
66106

67107
WHEN("Create a byte characteristic")
68108
{
69-
BLEByteCharacteristic byteCharacteristic("Byte", BLERead | BLEIndicate | BLEWrite);
109+
BLEByteCharacteristic byteCharacteristic("Byte", BLEBroadcast| BLEIndicate | BLENotify);
70110
byte v = 0x01;
71111
int written = byteCharacteristic.writeValue(v);
72112
REQUIRE( written == sizeof(byte) );
113+
114+
BLEDevice device;
115+
byteCharacteristic.local()->writeCccdValue(device, 0x002);
116+
written = byteCharacteristic.writeValue(v);
117+
/* No peers connected */
118+
REQUIRE( written == 0 );
119+
byteCharacteristic.local()->writeCccdValue(device, 0x001);
120+
written = byteCharacteristic.writeValue(v);
121+
/* No peers connected */
122+
REQUIRE( written == 0 );
73123
}
74124

75125
WHEN("Create a short characteristic")
76126
{
77-
BLEShortCharacteristic shortCharacteristic("Short", BLERead | BLEIndicate | BLEWrite);
127+
BLEShortCharacteristic shortCharacteristic("Short", BLEBroadcast| BLEIndicate | BLENotify);
78128
short v = -1;
79129
int written = shortCharacteristic.writeValue(v);
80130
REQUIRE( written == sizeof(short) );
131+
132+
BLEDevice device;
133+
shortCharacteristic.local()->writeCccdValue(device, 0x002);
134+
written = shortCharacteristic.writeValue(v);
135+
/* No peers connected */
136+
REQUIRE( written == 0 );
137+
shortCharacteristic.local()->writeCccdValue(device, 0x001);
138+
written = shortCharacteristic.writeValue(v);
139+
/* No peers connected */
140+
REQUIRE( written == 0 );
81141
}
82142

83143
WHEN("Create a unsigned short characteristic")
84144
{
85-
BLEUnsignedShortCharacteristic unsignedShortCharacteristic("UnsignedShort", BLERead | BLEIndicate | BLEWrite);
145+
BLEUnsignedShortCharacteristic unsignedShortCharacteristic("UnsignedShort", BLEBroadcast| BLEIndicate | BLENotify);
86146
unsigned short v = 1;
87147
int written = unsignedShortCharacteristic.writeValue(v);
88148
REQUIRE( written == sizeof(unsigned short) );
149+
150+
BLEDevice device;
151+
unsignedShortCharacteristic.local()->writeCccdValue(device, 0x002);
152+
written = unsignedShortCharacteristic.writeValue(v);
153+
/* No peers connected */
154+
REQUIRE( written == 0 );
155+
unsignedShortCharacteristic.local()->writeCccdValue(device, 0x001);
156+
written = unsignedShortCharacteristic.writeValue(v);
157+
/* No peers connected */
158+
REQUIRE( written == 0 );
89159
}
90160

91161
WHEN("Create a word characteristic")
92162
{
93-
BLEWordCharacteristic wordCharacteristic("Word", BLERead | BLEIndicate | BLEWrite);
163+
BLEWordCharacteristic wordCharacteristic("Word", BLEBroadcast| BLEIndicate | BLENotify);
94164
word v = -1;
95165
int written = wordCharacteristic.writeValue(v);
96166
REQUIRE( written == sizeof(word) );
167+
168+
BLEDevice device;
169+
wordCharacteristic.local()->writeCccdValue(device, 0x002);
170+
written = wordCharacteristic.writeValue(v);
171+
/* No peers connected */
172+
REQUIRE( written == 0 );
173+
wordCharacteristic.local()->writeCccdValue(device, 0x001);
174+
written = wordCharacteristic.writeValue(v);
175+
/* No peers connected */
176+
REQUIRE( written == 0 );
97177
}
98178

99179
WHEN("Create a int characteristic")
100180
{
101-
BLEIntCharacteristic intCharacteristic("Int", BLERead | BLEIndicate | BLEWrite);
181+
BLEIntCharacteristic intCharacteristic("Int", BLEBroadcast| BLEIndicate | BLENotify);
102182
int v = -1;
103183
int written = intCharacteristic.writeValue(v);
104184
REQUIRE( written == sizeof(int) );
185+
186+
BLEDevice device;
187+
intCharacteristic.local()->writeCccdValue(device, 0x002);
188+
written = intCharacteristic.writeValue(v);
189+
/* No peers connected */
190+
REQUIRE( written == 0 );
191+
intCharacteristic.local()->writeCccdValue(device, 0x001);
192+
written = intCharacteristic.writeValue(v);
193+
/* No peers connected */
194+
REQUIRE( written == 0 );
105195
}
106196

107197
WHEN("Create a unsigned int characteristic")
108198
{
109-
BLEUnsignedIntCharacteristic unsignedIntCharacteristic("UnsignedInt", BLERead | BLEIndicate | BLEWrite);
199+
BLEUnsignedIntCharacteristic unsignedIntCharacteristic("UnsignedInt", BLEBroadcast| BLEIndicate | BLENotify);
110200
unsigned int v = 1;
111201
int written = unsignedIntCharacteristic.writeValue(v);
112202
REQUIRE( written == sizeof(unsigned int) );
203+
204+
BLEDevice device;
205+
unsignedIntCharacteristic.local()->writeCccdValue(device, 0x002);
206+
written = unsignedIntCharacteristic.writeValue(v);
207+
/* No peers connected */
208+
REQUIRE( written == 0 );
209+
unsignedIntCharacteristic.local()->writeCccdValue(device, 0x001);
210+
written = unsignedIntCharacteristic.writeValue(v);
211+
/* No peers connected */
212+
REQUIRE( written == 0 );
113213
}
114214

115215
WHEN("Create a long characteristic")
116216
{
117-
BLELongCharacteristic longCharacteristic("Long", BLERead | BLEIndicate | BLEWrite);
217+
BLELongCharacteristic longCharacteristic("Long", BLEBroadcast| BLEIndicate | BLENotify);
118218
long v = -1;
119219
int written = longCharacteristic.writeValue(v);
120220
REQUIRE( written == sizeof(long) );
221+
222+
BLEDevice device;
223+
longCharacteristic.local()->writeCccdValue(device, 0x002);
224+
written = longCharacteristic.writeValue(v);
225+
/* No peers connected */
226+
REQUIRE( written == 0 );
227+
longCharacteristic.local()->writeCccdValue(device, 0x001);
228+
written = longCharacteristic.writeValue(v);
229+
/* No peers connected */
230+
REQUIRE( written == 0 );
121231
}
122232

123233
WHEN("Create a unsigned long characteristic")
124234
{
125-
BLEUnsignedLongCharacteristic unsignedLongCharacteristic("UnsignedLong", BLERead | BLEIndicate | BLEWrite);
235+
BLEUnsignedLongCharacteristic unsignedLongCharacteristic("UnsignedLong", BLEBroadcast| BLEIndicate | BLENotify);
126236
unsigned long v = 1;
127237
int written = unsignedLongCharacteristic.writeValue(v);
128238
REQUIRE( written == sizeof(unsigned long) );
239+
240+
BLEDevice device;
241+
unsignedLongCharacteristic.local()->writeCccdValue(device, 0x002);
242+
written = unsignedLongCharacteristic.writeValue(v);
243+
/* No peers connected */
244+
REQUIRE( written == 0 );
245+
unsignedLongCharacteristic.local()->writeCccdValue(device, 0x001);
246+
written = unsignedLongCharacteristic.writeValue(v);
247+
/* No peers connected */
248+
REQUIRE( written == 0 );
129249
}
130250

131251
WHEN("Create a float characteristic")
132252
{
133-
BLEFloatCharacteristic floatCharacteristic("Float", BLERead | BLEIndicate | BLEWrite);
253+
BLEFloatCharacteristic floatCharacteristic("Float", BLEBroadcast| BLEIndicate | BLENotify);
134254
float v = -1.0f;
135255
int written = floatCharacteristic.writeValue(v);
136256
REQUIRE( written == sizeof(float) );
257+
258+
BLEDevice device;
259+
floatCharacteristic.local()->writeCccdValue(device, 0x002);
260+
written = floatCharacteristic.writeValue(v);
261+
/* No peers connected */
262+
REQUIRE( written == 0 );
263+
floatCharacteristic.local()->writeCccdValue(device, 0x001);
264+
written = floatCharacteristic.writeValue(v);
265+
/* No peers connected */
266+
REQUIRE( written == 0 );
137267
}
138268

139269
WHEN("Create a double characteristic")
140270
{
141-
BLEDoubleCharacteristic doubleCharacteristic("Double", BLERead | BLEIndicate | BLEWrite);
271+
BLEDoubleCharacteristic doubleCharacteristic("Double", BLEBroadcast| BLEIndicate | BLENotify);
142272
double v = -1.0;
143273
int written = doubleCharacteristic.writeValue(v);
144274
REQUIRE( written == sizeof(double) );
275+
276+
BLEDevice device;
277+
doubleCharacteristic.local()->writeCccdValue(device, 0x002);
278+
written = doubleCharacteristic.writeValue(v);
279+
/* No peers connected */
280+
REQUIRE( written == 0 );
281+
doubleCharacteristic.local()->writeCccdValue(device, 0x001);
282+
written = doubleCharacteristic.writeValue(v);
283+
/* No peers connected */
284+
REQUIRE( written == 0 );
145285
}
146286

147287
WHEN("Create a string characteristic")
148288
{
149289
const int maxStringLength = 64;
150-
BLEStringCharacteristic stringCharacteristic("String", BLERead | BLEIndicate | BLEWrite, maxStringLength);
290+
BLEStringCharacteristic stringCharacteristic("String", BLEBroadcast| BLEIndicate | BLENotify, maxStringLength);
151291
const char* v = "Hello";
152292
int written = stringCharacteristic.writeValue(v);
153293
REQUIRE( written == min(strlen(v), maxStringLength) );
294+
295+
BLEDevice device;
296+
stringCharacteristic.local()->writeCccdValue(device, 0x002);
297+
written = stringCharacteristic.writeValue(v);
298+
/* No peers connected */
299+
REQUIRE( written == 0 );
300+
stringCharacteristic.local()->writeCccdValue(device, 0x001);
301+
written = stringCharacteristic.writeValue(v);
302+
/* No peers connected */
303+
REQUIRE( written == 0 );
154304
}
155305

156306
WHEN("Create a too long string characteristic")
157307
{
158308
const int maxStringLength = 4;
159-
BLEStringCharacteristic stringCharacteristic("String", BLERead | BLEIndicate | BLEWrite, maxStringLength);
309+
BLEStringCharacteristic stringCharacteristic("String", BLEBroadcast| BLEIndicate | BLENotify, maxStringLength);
160310
const char* v = "Hello";
161311
int written = stringCharacteristic.writeValue(v);
162312
REQUIRE( written == min(strlen(v), maxStringLength) );
313+
314+
BLEDevice device;
315+
stringCharacteristic.local()->writeCccdValue(device, 0x002);
316+
written = stringCharacteristic.writeValue(v);
317+
/* No peers connected */
318+
REQUIRE( written == 0 );
319+
stringCharacteristic.local()->writeCccdValue(device, 0x001);
320+
written = stringCharacteristic.writeValue(v);
321+
/* No peers connected */
322+
REQUIRE( written == 0 );
163323
}
164324

165325
}

0 commit comments

Comments
 (0)