8000 test: check broadcast handleInt and handleNotify with no peers · arduino-libraries/ArduinoBLE@240c74f · GitHub
[go: up one dir, main page]

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

Appearance settings

Commit 240c74f

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

File tree

1 file changed

+240
-16
lines changed

1 file changed

+240
-16
lines changed

extras/test/src/test_characteristic/test_writeValue.cpp

Lines changed: 240 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,132 +34,356 @@ 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+
boolCharacteristic.broadcast();
43+
written = boolCharacteristic.writeValue(v);
44+
REQUIRE( written == sizeof(bool) );
45+
46+
BLEDevice device;
47+
boolCharacteristic.local()->writeCccdValue(device, 0x002);
48+
written = boolCharacteristic.writeValue(v);
49+
/* No peers connected */
50+
REQUIRE( written == 0 );
51+
boolCharacteristic.local()->writeCccdValue(device, 0x001);
52+
written = boolCharacteristic.writeValue(v);
53+
/* No peers connected */
54+
REQUIRE( written == 0 );
4155
}
4256

4357
WHEN("Create a boolean characteristic")
4458
{
45-
BLEBooleanCharacteristic booleanCharacteristic("Boolean", BLERead | BLEIndicate | BLEWrite);
59+
BLEBooleanCharacteristic booleanCharacteristic("Boolean", BLEBroadcast| BLEIndicate | BLENotify);
4660
bool v = false;
4761
int written = booleanCharacteristic.writeValue(v);
4862
REQUIRE( written == sizeof(bool) );
63+
64+
booleanCharacteristic.broadcast();
65+
written = booleanCharacteristic.writeValue(v);
66+
REQUIRE( written == sizeof(bool) );
67+
68+
BLEDevice device;
69+
booleanCharacteristic.local()->writeCccdValue(device, 0x002);
70+
written = booleanCharacteristic.writeValue(v);
71+
/* No peers connected */
72+
REQUIRE( written == 0 );
73+
booleanCharacteristic.local()->writeCccdValue(device, 0x001);
74+
written = booleanCharacteristic.writeValue(v);
75+
/* No peers connected */
76+
REQUIRE( written == 0 );
4977
}
5078

5179
WHEN("Create a char characteristic")
5280
{
53-
BLECharCharacteristic charCharacteristic("Char", BLERead | BLEIndicate | BLEWrite);
81+
BLECharCharacteristic charCharacteristic("Char", BLEBroadcast| BLEIndicate | BLENotify);
5482
char v = 'a';
5583
int written = charCharacteristic.writeValue(v);
5684
REQUIRE( written == sizeof(char) );
85+
86+
charCharacteristic.broadcast();
87+
written = charCharacteristic.writeValue(v);
88+
REQUIRE( written == sizeof(char) );
89+
90+
BLEDevice device;
91+
charCharacteristic.local()->writeCccdValue(device, 0x002);
92+
written = charCharacteristic.writeValue(v);
93+
/* No peers connected */
94+
REQUIRE( written == 0 );
95+
charCharacteristic.local()->writeCccdValue(device, 0x001);
96+
written = charCharacteristic.writeValue(v);
97+
/* No peers connected */
98+
REQUIRE( written == 0 );
5799
}
58100

59101
WHEN("Create a unsigned char characteristic")
60102
{
61-
BLEUnsignedCharCharacteristic unsignedCharCharacteristic("UnsignedChar", BLERead | BLEIndicate | BLEWrite);
103+
BLEUnsignedCharCharacteristic unsignedCharCharacteristic("UnsignedChar", BLEBroadcast| BLEIndicate | BLENotify);
62104
unsigned char v = 0x01;
63105
int written = unsignedCharCharacteristic.writeValue(v);
64106
REQUIRE( written == sizeof(unsigned char) );
107+
108+
unsignedCharCharacteristic.broadcast();
109+
written = unsignedCharCharacteristic.writeValue(v);
110+
REQUIRE( written == sizeof(unsigned char) );
111+
112+
BLEDevice device;
113+
unsignedCharCharacteristic.local()->writeCccdValue(device, 0x002);
114+
written = unsignedCharCharacteristic.writeValue(v);
115+
/* No peers connected */
116+
REQUIRE( written == 0 );
117+
unsignedCharCharacteristic.local()->writeCccdValue(device, 0x001);
118+
written = unsignedCharCharacteristic.writeValue(v);
119+
/* No peers connected */
120+
REQUIRE( written == 0 );
65121
}
66122

67123
WHEN("Create a byte characteristic")
68124
{
69-
BLEByteCharacteristic byteCharacteristic("Byte", BLERead | BLEIndicate | BLEWrite);
125+
BLEByteCharacteristic byteCharacteristic("Byte", BLEBroadcast| BLEIndicate | BLENotify);
70126
byte v = 0x01;
71127
int written = byteCharacteristic.writeValue(v);
72128
REQUIRE( written == sizeof(byte) );
129+
130+
byteCharacteristic.broadcast();
131+
written = byteCharacteristic.writeValue(v);
132+
REQUIRE( written == sizeof(byte) );
133+
134+
BLEDevice device;
135+
byteCharacteristic.local()->writeCccdValue(device, 0x002);
136+
written = byteCharacteristic.writeValue(v);
137+
/* No peers connected */
138+
REQUIRE( written == 0 );
139+
byteCharacteristic.local()->writeCccdValue(device, 0x001);
140+
written = byteCharacteristic.writeValue(v);
141+
/* No peers connected */
142+
REQUIRE( written == 0 );
73143
}
74144

75145
WHEN("Create a short characteristic")
76146
{
77-
BLEShortCharacteristic shortCharacteristic("Short", BLERead | BLEIndicate | BLEWrite);
147+
BLEShortCharacteristic shortCharacteristic("Short", BLEBroadcast| BLEIndicate | BLENotify);
78148
short v = -1;
79149
int written = shortCharacteristic.writeValue(v);
80150
REQUIRE( written == sizeof(short) );
151+
152+
shortCharacteristic.broadcast();
153+
written = shortCharacteristic.writeValue(v);
154+
REQUIRE( written == sizeof(short) );
155+
156+
BLEDevice device;
157+
shortCharacteristic.local()->writeCccdValue(device, 0x002);
158+
written = shortCharacteristic.writeValue(v);
159+
/* No peers connected */
160+
REQUIRE( written == 0 );
161+
shortCharacteristic.local()->writeCccdValue(device, 0x001);
162+
written = shortCharacteristic.writeValue(v);
163+
/* No peers connected */
164+
REQUIRE( written == 0 );
81165
}
82166

83167
WHEN("Create a unsigned short characteristic")
84168
{
85-
BLEUnsignedShortCharacteristic unsignedShortCharacteristic("UnsignedShort", BLERead | BLEIndicate | BLEWrite);
169+
BLEUnsignedShortCharacteristic unsignedShortCharacteristic("UnsignedShort", BLEBroadcast| BLEIndicate | BLENotify);
86170
unsigned short v = 1;
87171
int written = unsignedShortCharacteristic.writeValue(v);
88172
REQUIRE( written == sizeof(unsigned short) );
173+
174+
unsignedShortCharacteristic.broadcast();
175+
written = unsignedShortCharacteristic.writeValue(v);
176+
REQUIRE( written == sizeof(unsigned short) );
177+
178+
BLEDevice device;
179+
unsignedShortCharacteristic.local()->writeCccdValue(device, 0x002);
180+
written = unsignedShortCharacteristic.writeValue(v);
181+
/* No peers connected */
182+
REQUIRE( written == 0 );
183+
unsignedShortCharacteristic.local()->writeCccdValue(device, 0x001);
184+
written = unsignedShortCharacteristic.writeValue(v);
185+
/* No peers connected */
186+
REQUIRE( written == 0 );
89187
}
90188

91189
WHEN("Create a word characteristic")
92190
{
93-
BLEWordCharacteristic wordCharacteristic("Word", BLERead | BLEIndicate | BLEWrite);
191+
BLEWordCharacteristic wordCharacteristic("Word", BLEBroadcast| BLEIndicate | BLENotify);
94192
word v = -1;
95193
int written = wordCharacteristic.writeValue(v);
96194
REQUIRE( written == sizeof(word) );
195+
196+
wordCharacteristic.broadcast();
197+
written = wordCharacteristic.writeValue(v);
198+
REQUIRE( written == sizeof(word) );
199+
200+
BLEDevice device;
201+
wordCharacteristic.local()->writeCccdValue(device, 0x002);
202+
written = wordCharacteristic.writeValue(v);
203+
/* No peers connected */
204+
REQUIRE( written == 0 );
205+
wordCharacteristic.local()->writeCccdValue(device, 0x001);
206+
written = wordCharacteristic.writeValue(v);
207+
/* No peers connected */
208+
REQUIRE( written == 0 );
97209
}
98210

99211
WHEN("Create a int characteristic")
100212
{
101-
BLEIntCharacteristic intCharacteristic("Int", BLERead | BLEIndicate | BLEWrite);
213+
BLEIntCharacteristic intCharacteristic("Int", BLEBroadcast| BLEIndicate | BLENotify);
102214
int v = -1;
103215
int written = intCharacteristic.writeValue(v);
104216
REQUIRE( written == sizeof(int) );
217+
218+
intCharacteristic.broadcast();
219+
written = intCharacteristic.writeValue(v);
220+
REQUIRE( written == sizeof(int) );
221+
222+
BLEDevice device;
223+
intCharacteristic.local()->writeCccdValue(device, 0x002);
224+
written = intCharacteristic.writeValue(v);
225+
/* No peers connected */
226+
REQUIRE( written == 0 );
227+
intCharacteristic.local()->writeCccdValue(device, 0x001);
228+
written = intCharacteristic.writeValue(v);
229+
/* No peers connected */
230+
REQUIRE( written == 0 );
105231
}
106232

107233
WHEN("Create a unsigned int characteristic")
108234
{
109-
BLEUnsignedIntCharacteristic unsignedIntCharacteristic("UnsignedInt", BLERead | BLEIndicate | BLEWrite);
235+
BLEUnsignedIntCharacteristic unsignedIntCharacteristic("UnsignedInt", BLEBroadcast| BLEIndicate | BLENotify);
110236
unsigned int v = 1;
111237
int written = unsignedIntCharacteristic.writeValue(v);
112238
REQUIRE( written == sizeof(unsigned int) );
239+
240+
unsignedIntCharacteristic.broadcast(); F438
241+
written = unsignedIntCharacteristic.writeValue(v);
242+
REQUIRE( written == sizeof(unsigned int) );
243+
244+
BLEDevice device;
245+
unsignedIntCharacteristic.local()->writeCccdValue(device, 0x002);
246+
written = unsignedIntCharacteristic.writeValue(v);
247+
/* No peers connected */
248+
REQUIRE( written == 0 );
249+
unsignedIntCharacteristic.local()->writeCccdValue(device, 0x001);
250+
written = unsignedIntCharacteristic.writeValue(v);
251+
/* No peers connected */
252+
REQUIRE( written == 0 );
113253
}
114254

115255
WHEN("Create a long characteristic")
116256
{
117-
BLELongCharacteristic longCharacteristic("Long", BLERead | BLEIndicate | BLEWrite);
257+
BLELongCharacteristic longCharacteristic("Long", BLEBroadcast| BLEIndicate | BLENotify);
118258
long v = -1;
119259
int written = longCharacteristic.writeValue(v);
120260
REQUIRE( written == sizeof(long) );
261+
262+
longCharacteristic.broadcast();
263+
written = longCharacteristic.writeValue(v);
264+
REQUIRE( written == sizeof(long) );
265+
266+
BLEDevice device;
267+
longCharacteristic.local()->writeCccdValue(device, 0x002);
268+
written = longCharacteristic.writeValue(v);
269+
/* No peers connected */
270+
REQUIRE( written == 0 );
271+
longCharacteristic.local()->writeCccdValue(device, 0x001);
272+
written = longCharacteristic.writeValue(v);
273+
/* No peers connected */
274+
REQUIRE( written == 0 );
121275
}
122276

123277
WHEN("Create a unsigned long characteristic")
124278
{
125-
BLEUnsignedLongCharacteristic unsignedLongCharacteristic("UnsignedLong", BLERead | BLEIndicate | BLEWrite);
279+
BLEUnsignedLongCharacteristic unsignedLongCharacteristic("UnsignedLong", BLEBroadcast| BLEIndicate | BLENotify);
126280
unsigned long v = 1;
127281
int written = unsignedLongCharacteristic.writeValue(v);
128282
REQUIRE( written == sizeof(unsigned long) );
283+
284+
unsignedLongCharacteristic.broadcast();
285+
written = unsignedLongCharacteristic.writeValue(v);
286+
REQUIRE( written == sizeof(unsigned long) );
287+
288+
BLEDevice device;
289+
unsignedLongCharacteristic.local()->writeCccdValue(device, 0x002);
290+
written = unsignedLongCharacteristic.writeValue(v);
291+
/* No peers connected */
292+
REQUIRE( written == 0 );
293+
unsignedLongCharacteristic.local()->writeCccdValue(device, 0x001);
294+
written = unsignedLongCharacteristic.writeValue(v);
295+
/* No peers connected */
296+
REQUIRE( written == 0 );
129297
}
130298

131299
WHEN("Create a float characteristic")
132300
{
133-
BLEFloatCharacteristic floatCharacteristic("Float", BLERead | BLEIndicate | BLEWrite);
301+
BLEFloatCharacteristic floatCharacteristic("Float", BLEBroadcast| BLEIndicate | BLENotify);
134302
float v = -1.0f;
135303
int written = floatCharacteristic.writeValue(v);
136304
REQUIRE( written == sizeof(float) );
305+
306+
floatCharacteristic.broadcast();
307+
written = floatCharacteristic.writeValue(v);
308+
REQUIRE( written == sizeof(float) );
309+
310+
BLEDevice device;
311+
floatCharacteristic.local()->writeCccdValue(device, 0x002);
312+
written = floatCharacteristic.writeValue(v);
313+
/* No peers connected */
314+
REQUIRE( written == 0 );
315+
floatCharacteristic.local()->writeCccdValue(device, 0x001);
316+
written = floatCharacteristic.writeValue(v);
317+
/* No peers connected */
318+
REQUIRE( written == 0 );
137319
}
138320

139321
WHEN("Create a double characteristic")
140322
{
141-
BLEDoubleCharacteristic doubleCharacteristic("Double", BLERead | BLEIndicate | BLEWrite);
323+
BLEDoubleCharacteristic doubleCharacteristic("Double", BLEBroadcast| BLEIndicate | BLENotify);
142324
double v = -1.0;
143325
int written = doubleCharacteristic.writeValue(v);
144326
REQUIRE( written == sizeof(double) );
327+
328+
doubleCharacteristic.broadcast();
329+
written = doubleCharacteristic.writeValue(v);
330+
REQUIRE( written == sizeof(double) );
331+
332+
BLEDevice device;
333+
doubleCharacteristic.local()->writeCccdValue(device, 0x002);
334+
written = doubleCharacteristic.writeValue(v);
335+
/* No peers connected */
336+
REQUIRE( written == 0 );
337+
doubleCharacteristic.local()->writeCccdValue(device, 0x001);
338+
written = doubleCharacteristic.writeValue(v);
339+
/* No peers connected */
340+
REQUIRE( written == 0 );
145341
}
146342

147343
WHEN("Create a string characteristic")
148344
{
149345
const int maxStringLength = 64;
150-
BLEStringCharacteristic stringCharacteristic("String", BLERead | BLEIndicate | BLEWrite, maxStringLength);
346+
BLEStringCharacteristic stringCharacteristic("String", BLEBroadcast| BLEIndicate | BLENotify, maxStringLength);
151347
const char* v = "Hello";
152348
int written = stringCharacteristic.writeValue(v);
153349
REQUIRE( written == min(strlen(v), maxStringLength) );
350+
351+
stringCharacteristic.broadcast();
352+
written = stringCharacteristic.writeValue(v);
353+
REQUIRE( written == min(strlen(v), maxStringLength) );
354+
355+
BLEDevice device;
356+
stringCharacteristic.local()->writeCccdValue(device, 0x002);
357+
written = stringCharacteristic.writeValue(v);
358+
/* No peers connected */
359+
REQUIRE( written == 0 );
360+
stringCharacteristic.local()->writeCccdValue(device, 0x001);
361+
written = stringCharacteristic.writeValue(v);
362+
/* No peers connected */
363+
REQUIRE( written == 0 );
154364
}
155365

156366
WHEN("Create a too long string characteristic")
157367
{
158368
const int maxStringLength = 4;
159-
BLEStringCharacteristic stringCharacteristic("String", BLERead | BLEIndicate | BLEWrite, maxStringLength);
369+
BLEStringCharacteristic stringCharacteristic("String", BLEBroadcast| BLEIndicate | BLENotify, maxStringLength);
160370
const char* v = "Hello";
161371
int written = stringCharacteristic.writeValue(v);
162372
REQUIRE( written == min(strlen(v), maxStringLength) );
373+
374+
stringCharacteristic.broadcast();
375+
written = stringCharacteristic.writeValue(v);
376+
REQUIRE( written == min(strlen(v), maxStringLength) );
377+
378+
BLEDevice device;
379+
stringCharacteristic.local()->writeCccdValue(device, 0x002);
380+
written = stringCharacteristic.writeValue(v);
381+
/* No peers connected */
382+
REQUIRE( written == 0 );
383+
stringCharacteristic.local()->writeCccdValue(device, 0x001);
384+
written = stringCharacteristic.writeValue(v);
385+
/* No peers connected */
386+
REQUIRE( written == 0 );
163387
}
164388

165389
}

0 commit comments

Comments
 (0)
0