tester-bluetooth.c 48 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258
  1. // SPDX-License-Identifier: Apache-2.0
  2. /*
  3. * Copyright (C) 2014 Intel Corporation
  4. *
  5. */
  6. #define _GNU_SOURCE
  7. #include <stdbool.h>
  8. #include "emulator/bthost.h"
  9. #include "src/shared/tester.h"
  10. #include "src/shared/queue.h"
  11. #include "tester-main.h"
  12. static struct queue *list; /* List of bluetooth test cases */
  13. static bt_bdaddr_t emu_bdaddr_val = {
  14. .address = { 0x00, 0xaa, 0x01, 0x00, 0x00, 0x00 },
  15. };
  16. static bt_property_t prop_emu_bdaddr = {
  17. .type = BT_PROPERTY_BDADDR,
  18. .val = &emu_bdaddr_val,
  19. .len = sizeof(emu_bdaddr_val),
  20. };
  21. static char emu_bdname_val[] = "BlueZ for Android";
  22. static bt_property_t prop_emu_bdname = {
  23. .type = BT_PROPERTY_BDNAME,
  24. .val = &emu_bdname_val,
  25. .len = sizeof(emu_bdname_val) - 1,
  26. };
  27. static char emu_uuids_val[] = {
  28. /* Multi profile UUID */
  29. 0x00, 0x00, 0x11, 0x3b, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00,
  30. 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB,
  31. /* Device identification profile UUID */
  32. 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00,
  33. 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB,
  34. };
  35. static bt_property_t prop_emu_uuids = {
  36. .type = BT_PROPERTY_UUIDS,
  37. .val = &emu_uuids_val,
  38. .len = sizeof(emu_uuids_val),
  39. };
  40. static uint32_t emu_cod_val = 0x00020c;
  41. static bt_property_t prop_emu_cod = {
  42. .type = BT_PROPERTY_CLASS_OF_DEVICE,
  43. .val = &emu_cod_val,
  44. .len = sizeof(emu_cod_val),
  45. };
  46. static bt_device_type_t emu_tod_dual_val = BT_DEVICE_DEVTYPE_DUAL;
  47. static bt_property_t prop_emu_dual_tod = {
  48. .type = BT_PROPERTY_TYPE_OF_DEVICE,
  49. .val = &emu_tod_dual_val,
  50. .len = sizeof(emu_tod_dual_val),
  51. };
  52. static bt_scan_mode_t emu_scan_mode_val = BT_SCAN_MODE_NONE;
  53. static bt_property_t prop_emu_scan_mode = {
  54. .type = BT_PROPERTY_ADAPTER_SCAN_MODE,
  55. .val = &emu_scan_mode_val,
  56. .len = sizeof(emu_scan_mode_val),
  57. };
  58. static uint32_t emu_disc_timeout_val = 120;
  59. static bt_property_t prop_emu_disc_timeout = {
  60. .type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT,
  61. .val = &emu_disc_timeout_val,
  62. .len = sizeof(emu_disc_timeout_val),
  63. };
  64. static bt_property_t prop_emu_bonded_devs = {
  65. .type = BT_PROPERTY_ADAPTER_BONDED_DEVICES,
  66. .val = NULL,
  67. .len = 0,
  68. };
  69. static bt_bdaddr_t emu_remote_bdaddr_val = {
  70. .address = { 0x00, 0xaa, 0x01, 0x01, 0x00, 0x00 },
  71. };
  72. static bt_property_t prop_emu_remote_bdadr = {
  73. .type = BT_PROPERTY_BDADDR,
  74. .val = &emu_remote_bdaddr_val,
  75. .len = sizeof(emu_remote_bdaddr_val),
  76. };
  77. static struct bt_action_data prop_emu_remote_ble_bdaddr_req = {
  78. .addr = &emu_remote_bdaddr_val,
  79. .prop_type = BT_PROPERTY_BDADDR,
  80. };
  81. static uint32_t emu_remote_type_val = BT_DEVICE_DEVTYPE_BREDR;
  82. static uint32_t emu_remote_tod_ble_val = BT_DEVICE_DEVTYPE_BLE;
  83. static bt_property_t prop_emu_remote_ble_tod_prop = {
  84. .type = BT_PROPERTY_TYPE_OF_DEVICE,
  85. .val = &emu_remote_tod_ble_val,
  86. .len = sizeof(emu_remote_tod_ble_val),
  87. };
  88. static struct bt_action_data prop_emu_remote_ble_tod_req = {
  89. .addr = &emu_remote_bdaddr_val,
  90. .prop_type = BT_PROPERTY_TYPE_OF_DEVICE,
  91. };
  92. static int32_t emu_remote_rssi_val = -60;
  93. static int32_t emu_remote_ble_rssi_val = 127;
  94. static bt_property_t prop_emu_remote_ble_rssi_prop = {
  95. .type = BT_PROPERTY_REMOTE_RSSI,
  96. .val = &emu_remote_ble_rssi_val,
  97. .len = sizeof(emu_remote_ble_rssi_val),
  98. };
  99. static struct bt_action_data prop_emu_remote_ble_rssi_req = {
  100. .addr = &emu_remote_bdaddr_val,
  101. .prop_type = BT_PROPERTY_REMOTE_RSSI,
  102. };
  103. static char emu_remote_bdname_val[] = "00:AA:01:01:00:00";
  104. static bt_property_t prop_emu_remote_ble_bdname_prop = {
  105. .type = BT_PROPERTY_BDNAME,
  106. .val = &emu_remote_bdname_val,
  107. .len = sizeof(emu_remote_bdname_val) - 1,
  108. };
  109. static struct bt_action_data prop_emu_remote_ble_bdname_req = {
  110. .addr = &emu_remote_bdaddr_val,
  111. .prop_type = BT_PROPERTY_BDNAME,
  112. };
  113. static uint32_t emu_remote_cod_val = 0;
  114. static bt_property_t prop_emu_remote_ble_cod_prop = {
  115. .type = BT_PROPERTY_CLASS_OF_DEVICE,
  116. .val = &emu_remote_cod_val,
  117. .len = sizeof(emu_remote_cod_val),
  118. };
  119. static struct bt_action_data prop_emu_remote_ble_cod_req = {
  120. .addr = &emu_remote_bdaddr_val,
  121. .prop_type = BT_PROPERTY_CLASS_OF_DEVICE,
  122. };
  123. static bt_property_t prop_emu_remote_ble_uuids_prop = {
  124. .type = BT_PROPERTY_UUIDS,
  125. .val = NULL,
  126. .len = 0,
  127. };
  128. static struct bt_action_data prop_emu_remote_ble_uuids_req = {
  129. .addr = &emu_remote_bdaddr_val,
  130. .prop_type = BT_PROPERTY_UUIDS,
  131. };
  132. static bt_property_t prop_emu_remote_ble_timestamp_prop = {
  133. .type = BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP,
  134. .val = NULL,
  135. .len = 4,
  136. };
  137. static struct bt_action_data prop_emu_remote_ble_timestamp_req = {
  138. .addr = &emu_remote_bdaddr_val,
  139. .prop_type = BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP,
  140. };
  141. static struct bt_action_data prop_emu_remote_ble_scan_mode_req = {
  142. .addr = &emu_remote_bdaddr_val,
  143. .prop_type = BT_PROPERTY_ADAPTER_SCAN_MODE,
  144. };
  145. static struct bt_action_data prop_emu_remote_ble_bondeddev_req = {
  146. .addr = &emu_remote_bdaddr_val,
  147. .prop_type = BT_PROPERTY_ADAPTER_BONDED_DEVICES,
  148. };
  149. static struct bt_action_data prop_emu_remote_ble_disctimeout_req = {
  150. .addr = &emu_remote_bdaddr_val,
  151. .prop_type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT,
  152. };
  153. static struct bt_action_data prop_emu_remote_ble_verinfo_req = {
  154. .addr = &emu_remote_bdaddr_val,
  155. .prop_type = BT_PROPERTY_REMOTE_VERSION_INFO,
  156. };
  157. static char prop_test_fname_val[] = "FriendlyTestName";
  158. static bt_property_t prop_emu_remote_ble_fname_prop = {
  159. .type = BT_PROPERTY_REMOTE_FRIENDLY_NAME,
  160. .val = &prop_test_fname_val,
  161. .len = sizeof(prop_test_fname_val) - 1,
  162. };
  163. static struct bt_action_data prop_emu_remote_ble_fname_req = {
  164. .addr = &emu_remote_bdaddr_val,
  165. .prop_type = BT_PROPERTY_REMOTE_FRIENDLY_NAME,
  166. .prop = &prop_emu_remote_ble_fname_prop,
  167. };
  168. static bt_pin_code_t emu_pin_value = {
  169. .pin = { 0x30, 0x30, 0x30, 0x30 },
  170. };
  171. static bt_pin_code_t emu_pin_invalid_value = {
  172. .pin = { 0x30, 0x10, 0x30, 0x30 },
  173. };
  174. static struct bt_action_data emu_pin_set_req = {
  175. .addr = &emu_remote_bdaddr_val,
  176. .pin = &emu_pin_value,
  177. .pin_len = 4,
  178. };
  179. static struct bt_action_data emu_pin_set_invalid_req = {
  180. .addr = &emu_remote_bdaddr_val,
  181. .pin = &emu_pin_invalid_value,
  182. .pin_len = 4,
  183. };
  184. static bt_property_t prop_emu_default_set[] = {
  185. { BT_PROPERTY_BDADDR, sizeof(emu_bdaddr_val), NULL },
  186. { BT_PROPERTY_BDNAME, sizeof(emu_bdname_val) - 1, &emu_bdname_val },
  187. { BT_PROPERTY_CLASS_OF_DEVICE, sizeof(uint32_t), NULL },
  188. { BT_PROPERTY_TYPE_OF_DEVICE, sizeof(emu_tod_dual_val),
  189. &emu_tod_dual_val },
  190. { BT_PROPERTY_ADAPTER_SCAN_MODE, sizeof(emu_scan_mode_val),
  191. &emu_scan_mode_val },
  192. { BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT, sizeof(emu_disc_timeout_val),
  193. &emu_disc_timeout_val},
  194. { BT_PROPERTY_ADAPTER_BONDED_DEVICES, 0, NULL },
  195. { BT_PROPERTY_UUIDS, sizeof(emu_uuids_val), &emu_uuids_val },
  196. };
  197. static bt_property_t prop_emu_remote_ble_default_set[] = {
  198. { BT_PROPERTY_BDADDR, sizeof(emu_remote_bdaddr_val),
  199. &emu_remote_bdaddr_val },
  200. { BT_PROPERTY_TYPE_OF_DEVICE, sizeof(emu_remote_tod_ble_val),
  201. &emu_remote_tod_ble_val },
  202. { BT_PROPERTY_REMOTE_RSSI, sizeof(emu_remote_ble_rssi_val),
  203. &emu_remote_ble_rssi_val },
  204. };
  205. static bt_property_t prop_emu_remote_bredr_default_set[] = {
  206. { BT_PROPERTY_BDADDR, sizeof(emu_remote_bdaddr_val),
  207. &emu_remote_bdaddr_val },
  208. { BT_PROPERTY_TYPE_OF_DEVICE, sizeof(emu_remote_type_val),
  209. &emu_remote_type_val },
  210. { BT_PROPERTY_REMOTE_RSSI, sizeof(emu_remote_rssi_val),
  211. &emu_remote_rssi_val },
  212. };
  213. static bt_property_t prop_emu_remote_any_default_set[] = {
  214. { BT_PROPERTY_BDADDR, sizeof(emu_remote_bdaddr_val),
  215. &emu_remote_bdaddr_val },
  216. };
  217. static bt_property_t prop_emu_remote_bles_query_set[] = {
  218. { BT_PROPERTY_TYPE_OF_DEVICE, sizeof(emu_remote_tod_ble_val),
  219. &emu_remote_tod_ble_val },
  220. { BT_PROPERTY_CLASS_OF_DEVICE, sizeof(emu_remote_cod_val),
  221. &emu_remote_cod_val },
  222. { BT_PROPERTY_REMOTE_RSSI, sizeof(emu_remote_ble_rssi_val),
  223. &emu_remote_ble_rssi_val },
  224. { BT_PROPERTY_BDNAME, sizeof(emu_remote_bdname_val) - 1,
  225. &emu_remote_bdname_val },
  226. { BT_PROPERTY_UUIDS, 0, NULL },
  227. { BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP, 4, NULL },
  228. };
  229. static bt_property_t prop_emu_remotes_pin_req_set[] = {
  230. { BT_PROPERTY_BDADDR, sizeof(emu_remote_bdaddr_val),
  231. &emu_remote_bdaddr_val },
  232. { BT_PROPERTY_CLASS_OF_DEVICE, sizeof(emu_remote_cod_val),
  233. &emu_remote_cod_val },
  234. { BT_PROPERTY_BDNAME, sizeof(emu_remote_bdname_val) - 1,
  235. &emu_remote_bdname_val },
  236. };
  237. static char test_bdname[] = "test_bdname";
  238. static bt_property_t prop_test_bdname = {
  239. .type = BT_PROPERTY_BDNAME,
  240. .val = test_bdname,
  241. .len = sizeof(test_bdname) - 1,
  242. };
  243. static struct bt_action_data prop_test_remote_ble_bdname_req = {
  244. .addr = &emu_remote_bdaddr_val,
  245. .prop_type = BT_PROPERTY_BDNAME,
  246. .prop = &prop_test_bdname,
  247. };
  248. static bt_scan_mode_t test_scan_mode_connectable_discoverable =
  249. BT_SCAN_MODE_CONNECTABLE_DISCOVERABLE;
  250. static bt_property_t prop_test_scanmode_conn_discov = {
  251. .type = BT_PROPERTY_ADAPTER_SCAN_MODE,
  252. .val = &test_scan_mode_connectable_discoverable,
  253. .len = sizeof(bt_scan_mode_t),
  254. };
  255. static uint32_t test_disctimeout_val = 600;
  256. static bt_property_t prop_test_disctimeout = {
  257. .type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT,
  258. .val = &test_disctimeout_val,
  259. .len = sizeof(test_disctimeout_val),
  260. };
  261. static struct bt_action_data prop_test_remote_ble_disc_timeout_req = {
  262. .addr = &emu_remote_bdaddr_val,
  263. .prop_type = BT_PROPERTY_ADAPTER_DISCOVERY_TIMEOUT,
  264. .prop = &prop_test_disctimeout,
  265. };
  266. static unsigned char test_uuids_val[] = { 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00,
  267. 0x00, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
  268. 0x00, 0x00 };
  269. static bt_property_t prop_test_uuid = {
  270. .type = BT_PROPERTY_UUIDS,
  271. .val = &test_uuids_val,
  272. .len = sizeof(test_uuids_val),
  273. };
  274. static struct bt_action_data prop_test_remote_ble_uuids_req = {
  275. .addr = &emu_remote_bdaddr_val,
  276. .prop_type = BT_PROPERTY_UUIDS,
  277. .prop = &prop_test_uuid,
  278. };
  279. static uint32_t test_cod_val = 0;
  280. static bt_property_t prop_test_cod = {
  281. .type = BT_PROPERTY_CLASS_OF_DEVICE,
  282. .val = &test_cod_val,
  283. .len = sizeof(test_cod_val),
  284. };
  285. static struct bt_action_data prop_test_remote_ble_cod_req = {
  286. .addr = &emu_remote_bdaddr_val,
  287. .prop_type = BT_PROPERTY_CLASS_OF_DEVICE,
  288. .prop = &prop_test_cod,
  289. };
  290. static uint32_t test_tod_val = BT_DEVICE_DEVTYPE_BLE;
  291. static bt_property_t prop_test_tod = {
  292. .type = BT_PROPERTY_TYPE_OF_DEVICE,
  293. .val = &test_tod_val,
  294. .len = sizeof(test_tod_val),
  295. };
  296. static struct bt_action_data prop_test_remote_ble_tod_req = {
  297. .addr = &emu_remote_bdaddr_val,
  298. .prop_type = BT_PROPERTY_TYPE_OF_DEVICE,
  299. .prop = &prop_test_tod,
  300. };
  301. static int32_t test_remote_rssi_val = -9;
  302. static bt_property_t prop_test_remote_rssi = {
  303. .type = BT_PROPERTY_REMOTE_RSSI,
  304. .val = &test_remote_rssi_val,
  305. .len = sizeof(test_remote_rssi_val),
  306. };
  307. static struct bt_action_data prop_test_remote_ble_rssi_req = {
  308. .addr = &emu_remote_bdaddr_val,
  309. .prop_type = BT_PROPERTY_REMOTE_RSSI,
  310. .prop = &prop_test_remote_rssi,
  311. };
  312. static bt_service_record_t test_srvc_record_val = {
  313. .uuid = { {0x00} },
  314. .channel = 12,
  315. .name = "bt_name",
  316. };
  317. static bt_property_t prop_test_srvc_record = {
  318. .type = BT_PROPERTY_SERVICE_RECORD,
  319. .val = &test_srvc_record_val,
  320. .len = sizeof(test_srvc_record_val),
  321. };
  322. static struct bt_action_data prop_test_remote_ble_srvc_record_req = {
  323. .addr = &emu_remote_bdaddr_val,
  324. .prop_type = BT_PROPERTY_SERVICE_RECORD,
  325. .prop = &prop_test_srvc_record,
  326. };
  327. static bt_bdaddr_t test_bdaddr_val = {
  328. .address = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
  329. };
  330. static bt_property_t prop_test_bdaddr = {
  331. .type = BT_PROPERTY_BDADDR,
  332. .val = &test_bdaddr_val,
  333. .len = sizeof(test_bdaddr_val),
  334. };
  335. static struct bt_action_data prop_test_remote_ble_bdaddr_req = {
  336. .addr = &emu_remote_bdaddr_val,
  337. .prop_type = BT_PROPERTY_BDADDR,
  338. .prop = &prop_test_bdaddr,
  339. };
  340. static struct bt_action_data prop_test_bdaddr_req = {
  341. .addr = &test_bdaddr_val,
  342. .prop_type = BT_PROPERTY_BDADDR,
  343. .prop = &prop_test_bdaddr,
  344. };
  345. static bt_scan_mode_t setprop_scan_mode_conn_val = BT_SCAN_MODE_CONNECTABLE;
  346. static bt_property_t prop_test_scan_mode_conn = {
  347. .type = BT_PROPERTY_ADAPTER_SCAN_MODE,
  348. .val = &setprop_scan_mode_conn_val,
  349. .len = sizeof(setprop_scan_mode_conn_val),
  350. };
  351. static bt_scan_mode_t test_scan_mode_none_val = BT_SCAN_MODE_NONE;
  352. static bt_property_t prop_test_scan_mode_none = {
  353. .type = BT_PROPERTY_ADAPTER_SCAN_MODE,
  354. .val = &test_scan_mode_none_val,
  355. .len = sizeof(test_scan_mode_none_val),
  356. };
  357. static struct bt_action_data prop_test_remote_ble_scanmode_req = {
  358. .addr = &emu_remote_bdaddr_val,
  359. .prop_type = BT_PROPERTY_ADAPTER_SCAN_MODE,
  360. .prop = &prop_test_scan_mode_none,
  361. };
  362. static bt_bdaddr_t test_bonded_dev_addr_val = {
  363. .address = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 },
  364. };
  365. static bt_property_t prop_test_bonded_dev_addr = {
  366. .type = BT_PROPERTY_ADAPTER_BONDED_DEVICES,
  367. .val = &test_bonded_dev_addr_val,
  368. .len = sizeof(test_bonded_dev_addr_val),
  369. };
  370. static struct bt_action_data prop_test_ble_bonded_dev_req = {
  371. .addr = &emu_remote_bdaddr_val,
  372. .prop_type = BT_PROPERTY_ADAPTER_BONDED_DEVICES,
  373. .prop = &prop_test_bonded_dev_addr,
  374. };
  375. static uint32_t test_remote_timestamp_val = 42;
  376. static bt_property_t prop_test_remote_ble_timestamp_prop = {
  377. .type = BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP,
  378. .val = &test_remote_timestamp_val,
  379. .len = sizeof(test_remote_timestamp_val),
  380. };
  381. static struct bt_action_data prop_test_remote_ble_timestamp_req = {
  382. .addr = &emu_remote_bdaddr_val,
  383. .prop_type = BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP,
  384. .prop = &prop_test_remote_ble_timestamp_prop,
  385. };
  386. static struct bt_action_data ssp_confirm_accept_reply = {
  387. .addr = &emu_remote_bdaddr_val,
  388. .ssp_variant = BT_SSP_VARIANT_PASSKEY_CONFIRMATION,
  389. .accept = TRUE,
  390. };
  391. static struct bt_action_data ssp_confirm_reject_reply = {
  392. .addr = &emu_remote_bdaddr_val,
  393. .ssp_variant = BT_SSP_VARIANT_PASSKEY_CONFIRMATION,
  394. .accept = FALSE,
  395. };
  396. static struct bt_action_data no_input_no_output_io_cap = {
  397. .io_cap = 0x03,
  398. };
  399. static struct bt_action_data display_yes_no_io_cap = {
  400. .io_cap = 0x01,
  401. };
  402. static uint16_t test_conn_handle = 0;
  403. static void conn_cb(uint16_t handle, void *user_data)
  404. {
  405. struct test_data *data = tester_get_data();
  406. struct bthost *bthost = hciemu_client_get_host(data->hciemu);
  407. tester_print("New connection with handle 0x%04x", handle);
  408. test_conn_handle = handle;
  409. bthost_request_auth(bthost, handle);
  410. }
  411. static struct test_case test_cases[] = {
  412. TEST_CASE_BREDRLE("Bluetooth Init",
  413. ACTION_SUCCESS(dummy_action, NULL),
  414. ),
  415. TEST_CASE_BREDRLE("Bluetooth Enable - Success",
  416. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  417. CALLBACK_ADAPTER_PROPS(prop_emu_default_set, 8),
  418. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  419. ),
  420. TEST_CASE_BREDRLE("Bluetooth Enable - Success 2",
  421. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  422. CALLBACK_ADAPTER_PROPS(prop_emu_default_set, 8),
  423. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  424. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  425. ),
  426. TEST_CASE_BREDRLE("Bluetooth Disable - Success",
  427. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  428. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  429. ACTION_SUCCESS(bluetooth_disable_action, NULL),
  430. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF),
  431. ),
  432. TEST_CASE_BREDRLE("Bluetooth Set BDNAME - Success",
  433. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  434. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  435. ACTION_SUCCESS(bt_set_property_action, &prop_test_bdname),
  436. CALLBACK_ADAPTER_PROPS(&prop_test_bdname, 1),
  437. ),
  438. TEST_CASE_BREDRLE("Bluetooth Set SCAN_MODE - Success",
  439. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  440. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  441. ACTION_SUCCESS(bt_set_property_action,
  442. &prop_test_scanmode_conn_discov),
  443. CALLBACK_ADAPTER_PROPS(&prop_test_scanmode_conn_discov, 1),
  444. ),
  445. TEST_CASE_BREDRLE("Bluetooth Set DISCOVERY_TIMEOUT - Success",
  446. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  447. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  448. ACTION_SUCCESS(bt_set_property_action, &prop_test_disctimeout),
  449. CALLBACK_ADAPTER_PROPS(&prop_test_disctimeout, 1),
  450. ),
  451. TEST_CASE_BREDRLE("Bluetooth Get BDADDR - Success",
  452. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  453. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  454. ACTION_SUCCESS(bt_get_property_action, &prop_emu_bdaddr),
  455. CALLBACK_ADAPTER_PROPS(&prop_emu_bdaddr, 1),
  456. ),
  457. TEST_CASE_BREDRLE("Bluetooth Get BDNAME - Success",
  458. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  459. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  460. ACTION_SUCCESS(bt_get_property_action, &prop_emu_bdname),
  461. CALLBACK_ADAPTER_PROPS(&prop_emu_bdname, 1),
  462. ),
  463. TEST_CASE_BREDRLE("Bluetooth Set UUID - Fail",
  464. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  465. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  466. ACTION_FAIL(bt_set_property_action, &prop_test_uuid),
  467. ),
  468. TEST_CASE_BREDRLE("Bluetooth Set CLASS_OF_DEVICE - Fail",
  469. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  470. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  471. ACTION_FAIL(bt_set_property_action, &prop_test_cod),
  472. ),
  473. TEST_CASE_BREDRLE("Bluetooth Set TYPE_OF_DEVICE - Fail",
  474. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  475. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  476. ACTION_FAIL(bt_set_property_action, &prop_test_tod),
  477. ),
  478. TEST_CASE_BREDRLE("Bluetooth Set REMOTE_RSSI - Fail",
  479. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  480. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  481. ACTION_FAIL(bt_set_property_action, &prop_test_remote_rssi),
  482. ),
  483. TEST_CASE_BREDRLE("Bluetooth Set SERVICE_RECORD - Fail",
  484. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  485. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  486. ACTION_FAIL(bt_set_property_action, &prop_test_srvc_record),
  487. ),
  488. TEST_CASE_BREDRLE("Bluetooth Set BDADDR - Fail",
  489. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  490. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  491. ACTION_FAIL(bt_set_property_action, &prop_test_bdaddr),
  492. ),
  493. TEST_CASE_BREDRLE("Bluetooth Set SCAN_MODE_CONNECTABLE - Success",
  494. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  495. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  496. ACTION_SUCCESS(bt_set_property_action,
  497. &prop_test_scan_mode_conn),
  498. CALLBACK_ADAPTER_PROPS(&prop_test_scan_mode_conn, 1),
  499. ),
  500. TEST_CASE_BREDRLE("Bluetooth Set BONDED_DEVICES - Fail",
  501. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  502. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  503. ACTION_FAIL(bt_set_property_action, &prop_test_bonded_dev_addr),
  504. ),
  505. TEST_CASE_BREDRLE("Bluetooth Get CLASS_OF_DEVICE - Success",
  506. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  507. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  508. ACTION_SUCCESS(bt_get_property_action, &prop_emu_cod),
  509. CALLBACK_ADAPTER_PROPS(&prop_emu_cod, 1),
  510. ),
  511. TEST_CASE_BREDRLE("Bluetooth Get TYPE_OF_DEVICE - Success",
  512. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  513. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  514. ACTION_SUCCESS(bt_get_property_action, &prop_emu_dual_tod),
  515. CALLBACK_ADAPTER_PROPS(&prop_emu_dual_tod, 1),
  516. ),
  517. TEST_CASE_BREDRLE("Bluetooth Get SCAN_MODE - Success",
  518. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  519. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  520. ACTION_SUCCESS(bt_get_property_action, &prop_emu_scan_mode),
  521. CALLBACK_ADAPTER_PROPS(&prop_emu_scan_mode, 1),
  522. ),
  523. TEST_CASE_BREDRLE("Bluetooth Get DISCOVERY_TIMEOUT - Success",
  524. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  525. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  526. ACTION_SUCCESS(bt_get_property_action, &prop_emu_disc_timeout),
  527. CALLBACK_ADAPTER_PROPS(&prop_emu_disc_timeout, 1),
  528. ),
  529. TEST_CASE_BREDRLE("Bluetooth Get UUIDS - Success",
  530. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  531. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  532. ACTION_SUCCESS(bt_get_property_action, &prop_emu_uuids),
  533. CALLBACK_ADAPTER_PROPS(&prop_emu_uuids, 1),
  534. ),
  535. TEST_CASE_BREDRLE("Bluetooth Get BONDED_DEVICES - Success",
  536. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  537. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  538. ACTION_SUCCESS(bt_get_property_action, &prop_emu_bonded_devs),
  539. CALLBACK_ADAPTER_PROPS(&prop_emu_bonded_devs, 1),
  540. ),
  541. TEST_CASE_BREDRLE("Bluetooth Set SCAN_MODE - Success 2",
  542. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  543. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  544. ACTION_SUCCESS(bt_set_property_action,
  545. &prop_test_scan_mode_none),
  546. CALLBACK_ADAPTER_PROPS(&prop_test_scan_mode_none, 1),
  547. ),
  548. TEST_CASE_BREDRLE("Bluetooth Discovery Start - Success",
  549. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  550. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  551. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  552. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  553. BT_DISCOVERY_STARTED),
  554. ),
  555. TEST_CASE_BREDRLE("Bluetooth Discovery Start - Done",
  556. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  557. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  558. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  559. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  560. BT_DISCOVERY_STARTED),
  561. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  562. ),
  563. TEST_CASE_BREDRLE("Bluetooth Discovery Stop - Success",
  564. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  565. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  566. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  567. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  568. BT_DISCOVERY_STARTED),
  569. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  570. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  571. BT_DISCOVERY_STOPPED),
  572. ),
  573. TEST_CASE_BREDRLE("Bluetooth Discovery Stop - Done",
  574. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  575. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  576. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  577. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  578. BT_DISCOVERY_STARTED),
  579. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  580. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  581. BT_DISCOVERY_STOPPED),
  582. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  583. ),
  584. TEST_CASE_BREDRLE("Bluetooth Discovery Device Found",
  585. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  586. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  587. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  588. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  589. BT_DISCOVERY_STARTED),
  590. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  591. CALLBACK_DEVICE_FOUND(prop_emu_remote_ble_default_set, 3),
  592. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  593. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  594. BT_DISCOVERY_STOPPED),
  595. ),
  596. TEST_CASE_BREDRLE("Bluetooth Device Get Props - Success",
  597. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  598. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  599. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  600. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  601. BT_DISCOVERY_STARTED),
  602. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  603. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  604. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  605. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  606. BT_DISCOVERY_STOPPED),
  607. ACTION_SUCCESS(bt_get_device_props_action,
  608. &emu_remote_bdaddr_val),
  609. CALLBACK_DEVICE_PROPS(prop_emu_remote_bles_query_set, 6),
  610. ),
  611. TEST_CASE_BREDRLE("Bluetooth Device Get BDNAME - Success",
  612. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  613. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  614. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  615. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  616. BT_DISCOVERY_STARTED),
  617. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  618. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  619. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  620. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  621. BT_DISCOVERY_STOPPED),
  622. ACTION_SUCCESS(bt_get_device_prop_action,
  623. &prop_emu_remote_ble_bdname_req),
  624. CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_bdname_prop, 1),
  625. ),
  626. TEST_CASE_BREDRLE("Bluetooth Device Get UUIDS - Success",
  627. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  628. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  629. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  630. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  631. BT_DISCOVERY_STARTED),
  632. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  633. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  634. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  635. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  636. BT_DISCOVERY_STOPPED),
  637. ACTION_SUCCESS(bt_get_device_prop_action,
  638. &prop_emu_remote_ble_uuids_req),
  639. CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_uuids_prop, 1),
  640. ),
  641. TEST_CASE_BREDRLE("Bluetooth Device Get COD - Success",
  642. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  643. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  644. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  645. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  646. BT_DISCOVERY_STARTED),
  647. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  648. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  649. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  650. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  651. BT_DISCOVERY_STOPPED),
  652. ACTION_SUCCESS(bt_get_device_prop_action,
  653. &prop_emu_remote_ble_cod_req),
  654. CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_cod_prop, 1),
  655. ),
  656. TEST_CASE_BREDRLE("Bluetooth Device Get TOD - Success",
  657. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  658. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  659. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  660. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  661. BT_DISCOVERY_STARTED),
  662. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  663. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  664. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  665. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  666. BT_DISCOVERY_STOPPED),
  667. ACTION_SUCCESS(bt_get_device_prop_action,
  668. &prop_emu_remote_ble_tod_req),
  669. CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_tod_prop, 1),
  670. ),
  671. TEST_CASE_BREDRLE("Bluetooth Device Get RSSI - Success",
  672. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  673. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  674. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  675. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  676. BT_DISCOVERY_STARTED),
  677. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  678. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  679. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  680. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  681. BT_DISCOVERY_STOPPED),
  682. ACTION_SUCCESS(bt_get_device_prop_action,
  683. &prop_emu_remote_ble_rssi_req),
  684. CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_rssi_prop, 1),
  685. ),
  686. TEST_CASE_BREDRLE("Bluetooth Device Get TIMESTAMP - Success",
  687. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  688. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  689. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  690. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  691. BT_DISCOVERY_STARTED),
  692. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  693. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  694. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  695. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  696. BT_DISCOVERY_STOPPED),
  697. ACTION_SUCCESS(bt_get_device_prop_action,
  698. &prop_emu_remote_ble_timestamp_req),
  699. CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_timestamp_prop, 1),
  700. ),
  701. TEST_CASE_BREDRLE("Bluetooth Device Get BDADDR - Fail",
  702. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  703. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  704. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  705. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  706. BT_DISCOVERY_STARTED),
  707. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  708. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  709. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  710. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  711. BT_DISCOVERY_STOPPED),
  712. ACTION_FAIL(bt_get_device_prop_action,
  713. &prop_emu_remote_ble_bdaddr_req),
  714. ),
  715. TEST_CASE_BREDRLE("Bluetooth Device Get SCAN_MODE - Fail",
  716. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  717. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  718. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  719. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  720. BT_DISCOVERY_STARTED),
  721. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  722. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  723. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  724. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  725. BT_DISCOVERY_STOPPED),
  726. ACTION_FAIL(bt_get_device_prop_action,
  727. &prop_emu_remote_ble_scan_mode_req),
  728. ),
  729. TEST_CASE_BREDRLE("Bluetooth Device Get BONDED_DEVICES - Fail",
  730. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  731. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  732. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  733. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  734. BT_DISCOVERY_STARTED),
  735. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  736. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  737. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  738. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  739. BT_DISCOVERY_STOPPED),
  740. ACTION_FAIL(bt_get_device_prop_action,
  741. &prop_emu_remote_ble_bondeddev_req),
  742. ),
  743. TEST_CASE_BREDRLE("Bluetooth Device Get DISCOVERY_TIMEOUT - Fail",
  744. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  745. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  746. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  747. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  748. BT_DISCOVERY_STARTED),
  749. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  750. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  751. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  752. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  753. BT_DISCOVERY_STOPPED),
  754. ACTION_FAIL(bt_get_device_prop_action,
  755. &prop_emu_remote_ble_disctimeout_req),
  756. ),
  757. TEST_CASE_BREDRLE("Bluetooth Device Get VERSION_INFO - Fail",
  758. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  759. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  760. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  761. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  762. BT_DISCOVERY_STARTED),
  763. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  764. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  765. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  766. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  767. BT_DISCOVERY_STOPPED),
  768. ACTION_FAIL(bt_get_device_prop_action,
  769. &prop_emu_remote_ble_verinfo_req),
  770. ),
  771. TEST_CASE_BREDRLE("Bluetooth Device Get FRIENDLY_NAME - Fail",
  772. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  773. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  774. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  775. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  776. BT_DISCOVERY_STARTED),
  777. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  778. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  779. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  780. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  781. BT_DISCOVERY_STOPPED),
  782. ACTION_FAIL(bt_get_device_prop_action,
  783. &prop_emu_remote_ble_fname_req),
  784. ),
  785. TEST_CASE_BREDRLE("Bluetooth Device Set FRIENDLY_NAME - Success",
  786. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  787. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  788. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  789. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  790. BT_DISCOVERY_STARTED),
  791. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  792. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  793. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  794. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  795. BT_DISCOVERY_STOPPED),
  796. ACTION_SUCCESS(bt_set_device_prop_action,
  797. &prop_emu_remote_ble_fname_req),
  798. ACTION_SUCCESS(bt_get_device_prop_action,
  799. &prop_emu_remote_ble_fname_req),
  800. CALLBACK_DEVICE_PROPS(&prop_emu_remote_ble_fname_prop, 1),
  801. ),
  802. TEST_CASE_BREDRLE("Bluetooth Device Set BDNAME - Fail",
  803. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  804. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  805. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  806. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  807. BT_DISCOVERY_STARTED),
  808. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  809. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  810. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  811. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  812. BT_DISCOVERY_STOPPED),
  813. ACTION_FAIL(bt_set_device_prop_action,
  814. &prop_test_remote_ble_bdname_req),
  815. ),
  816. TEST_CASE_BREDRLE("Bluetooth Device Set UUIDS - Fail",
  817. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  818. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  819. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  820. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  821. BT_DISCOVERY_STARTED),
  822. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  823. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  824. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  825. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  826. BT_DISCOVERY_STOPPED),
  827. ACTION_FAIL(bt_set_device_prop_action,
  828. &prop_test_remote_ble_uuids_req),
  829. ),
  830. TEST_CASE_BREDRLE("Bluetooth Device Set COD - Fail",
  831. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  832. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  833. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  834. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  835. BT_DISCOVERY_STARTED),
  836. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  837. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  838. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  839. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  840. BT_DISCOVERY_STOPPED),
  841. ACTION_FAIL(bt_set_device_prop_action,
  842. &prop_test_remote_ble_cod_req),
  843. ),
  844. TEST_CASE_BREDRLE("Bluetooth Device Set TOD - Fail",
  845. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  846. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  847. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  848. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  849. BT_DISCOVERY_STARTED),
  850. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  851. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  852. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  853. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  854. BT_DISCOVERY_STOPPED),
  855. ACTION_FAIL(bt_set_device_prop_action,
  856. &prop_test_remote_ble_tod_req),
  857. ),
  858. TEST_CASE_BREDRLE("Bluetooth Device Set RSSI - Fail",
  859. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  860. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  861. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  862. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  863. BT_DISCOVERY_STARTED),
  864. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  865. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  866. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  867. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  868. BT_DISCOVERY_STOPPED),
  869. ACTION_FAIL(bt_set_device_prop_action,
  870. &prop_test_remote_ble_rssi_req),
  871. ),
  872. TEST_CASE_BREDRLE("Bluetooth Device Set TIMESTAMP - Fail",
  873. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  874. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  875. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  876. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  877. BT_DISCOVERY_STARTED),
  878. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  879. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  880. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  881. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  882. BT_DISCOVERY_STOPPED),
  883. ACTION_FAIL(bt_set_device_prop_action,
  884. &prop_test_remote_ble_timestamp_req),
  885. ),
  886. TEST_CASE_BREDRLE("Bluetooth Device Set BDADDR - Fail",
  887. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  888. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  889. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  890. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  891. BT_DISCOVERY_STARTED),
  892. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  893. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  894. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  895. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  896. BT_DISCOVERY_STOPPED),
  897. ACTION_FAIL(bt_set_device_prop_action,
  898. &prop_test_remote_ble_bdaddr_req),
  899. ),
  900. TEST_CASE_BREDRLE("Bluetooth Device Set SERVICE_RECORD - Fail",
  901. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  902. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  903. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  904. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  905. BT_DISCOVERY_STARTED),
  906. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  907. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  908. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  909. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  910. BT_DISCOVERY_STOPPED),
  911. ACTION_FAIL(bt_set_device_prop_action,
  912. &prop_test_remote_ble_srvc_record_req),
  913. ),
  914. TEST_CASE_BREDRLE("Bluetooth Device Set SCAN_MODE - Fail",
  915. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  916. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  917. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  918. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  919. BT_DISCOVERY_STARTED),
  920. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  921. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  922. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  923. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  924. BT_DISCOVERY_STOPPED),
  925. ACTION_FAIL(bt_set_device_prop_action,
  926. &prop_test_remote_ble_scanmode_req),
  927. ),
  928. TEST_CASE_BREDRLE("Bluetooth Device Set BONDED_DEVICES - Fail",
  929. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  930. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  931. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  932. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  933. BT_DISCOVERY_STARTED),
  934. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  935. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  936. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  937. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  938. BT_DISCOVERY_STOPPED),
  939. ACTION_FAIL(bt_set_device_prop_action,
  940. &prop_test_ble_bonded_dev_req),
  941. ),
  942. TEST_CASE_BREDRLE("Bluetooth Device Set DISCOVERY_TIMEOUT - Fail",
  943. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  944. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  945. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  946. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  947. BT_DISCOVERY_STARTED),
  948. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  949. CALLBACK_DEVICE_FOUND(prop_emu_remote_any_default_set, 1),
  950. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  951. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  952. BT_DISCOVERY_STOPPED),
  953. ACTION_FAIL(bt_set_device_prop_action,
  954. &prop_test_remote_ble_disc_timeout_req),
  955. ),
  956. TEST_CASE_BREDR("Bluetooth Create Bond PIN - Success",
  957. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  958. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  959. ACTION_SUCCESS(emu_set_pin_code_action, &emu_pin_set_req),
  960. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  961. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  962. BT_DISCOVERY_STARTED),
  963. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  964. CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3),
  965. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  966. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  967. BT_DISCOVERY_STOPPED),
  968. ACTION_SUCCESS(bt_create_bond_action,
  969. &prop_test_remote_ble_bdaddr_req),
  970. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  971. &prop_emu_remote_bdadr, 1),
  972. CALLBACK_PROPS(CB_BT_PIN_REQUEST, prop_emu_remotes_pin_req_set,
  973. 2),
  974. ACTION_SUCCESS(bt_pin_reply_accept_action,
  975. &emu_pin_set_req),
  976. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED,
  977. &prop_emu_remote_bdadr, 1),
  978. ),
  979. TEST_CASE_BREDR("Bluetooth Create Bond PIN - Bad PIN",
  980. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  981. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  982. ACTION_SUCCESS(emu_set_pin_code_action, &emu_pin_set_req),
  983. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  984. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  985. BT_DISCOVERY_STARTED),
  986. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  987. CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3),
  988. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  989. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  990. BT_DISCOVERY_STOPPED),
  991. ACTION_SUCCESS(bt_create_bond_action,
  992. &prop_test_remote_ble_bdaddr_req),
  993. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  994. &prop_emu_remote_bdadr, 1),
  995. CALLBACK_PROPS(CB_BT_PIN_REQUEST, prop_emu_remotes_pin_req_set,
  996. 2),
  997. ACTION_SUCCESS(bt_pin_reply_accept_action,
  998. &emu_pin_set_invalid_req),
  999. CALLBACK_BOND_STATE_FAILED(BT_BOND_STATE_NONE,
  1000. &prop_emu_remote_bdadr, 1,
  1001. BT_STATUS_AUTH_FAILURE),
  1002. ),
  1003. TEST_CASE_BREDR("Bluetooth Create Bond SSP -Success",
  1004. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  1005. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  1006. ACTION_SUCCESS(emu_set_ssp_mode_action, NULL),
  1007. ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap),
  1008. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  1009. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  1010. BT_DISCOVERY_STARTED),
  1011. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  1012. CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3),
  1013. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  1014. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  1015. BT_DISCOVERY_STOPPED),
  1016. ACTION_SUCCESS(bt_create_bond_action,
  1017. &prop_test_remote_ble_bdaddr_req),
  1018. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1019. &prop_emu_remote_bdadr, 1),
  1020. CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION,
  1021. prop_emu_remotes_pin_req_set, 2),
  1022. ACTION_SUCCESS(bt_ssp_reply_accept_action,
  1023. &ssp_confirm_accept_reply),
  1024. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED,
  1025. &prop_emu_remote_bdadr, 1),
  1026. ),
  1027. TEST_CASE_BREDR("Bluetooth Create Bond SSP - Negative reply",
  1028. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  1029. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  1030. ACTION_SUCCESS(emu_set_ssp_mode_action, NULL),
  1031. ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap),
  1032. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  1033. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  1034. BT_DISCOVERY_STARTED),
  1035. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  1036. CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3),
  1037. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  1038. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  1039. BT_DISCOVERY_STOPPED),
  1040. ACTION_SUCCESS(bt_create_bond_action,
  1041. &prop_test_remote_ble_bdaddr_req),
  1042. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1043. &prop_emu_remote_bdadr, 1),
  1044. CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION,
  1045. prop_emu_remotes_pin_req_set, 2),
  1046. ACTION_SUCCESS(bt_ssp_reply_accept_action,
  1047. &ssp_confirm_reject_reply),
  1048. CALLBACK_BOND_STATE_FAILED(BT_BOND_STATE_NONE,
  1049. &prop_emu_remote_bdadr, 1,
  1050. BT_STATUS_AUTH_FAILURE),
  1051. ),
  1052. TEST_CASE_BREDR("Bluetooth Create Bond - No Discovery",
  1053. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  1054. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  1055. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  1056. ACTION_SUCCESS(emu_set_ssp_mode_action, NULL),
  1057. ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap),
  1058. ACTION_SUCCESS(bt_create_bond_action,
  1059. &prop_test_remote_ble_bdaddr_req),
  1060. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1061. &prop_emu_remote_bdadr, 1),
  1062. CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION,
  1063. prop_emu_remotes_pin_req_set, 2),
  1064. ACTION_SUCCESS(bt_ssp_reply_accept_action,
  1065. &ssp_confirm_accept_reply),
  1066. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED,
  1067. &prop_emu_remote_bdadr, 1),
  1068. ACTION_SUCCESS(bluetooth_disable_action, NULL),
  1069. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF),
  1070. ),
  1071. TEST_CASE_BREDR("Bluetooth Create Bond - Bad Address",
  1072. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  1073. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  1074. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  1075. ACTION_SUCCESS(emu_set_ssp_mode_action, NULL),
  1076. ACTION_SUCCESS(bt_create_bond_action, &prop_test_bdaddr_req),
  1077. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1078. &prop_test_bdaddr, 1),
  1079. CALLBACK_BOND_STATE_FAILED(BT_BOND_STATE_NONE,
  1080. &prop_test_bdaddr, 1,
  1081. BT_STATUS_FAIL),
  1082. ACTION_SUCCESS(bluetooth_disable_action, NULL),
  1083. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF),
  1084. ),
  1085. TEST_CASE_BREDR("Bluetooth Cancel Bonding - Success",
  1086. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  1087. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  1088. ACTION_SUCCESS(emu_set_ssp_mode_action, NULL),
  1089. ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap),
  1090. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  1091. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  1092. BT_DISCOVERY_STARTED),
  1093. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  1094. CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3),
  1095. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  1096. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  1097. BT_DISCOVERY_STOPPED),
  1098. ACTION_SUCCESS(bt_create_bond_action,
  1099. &prop_test_remote_ble_bdaddr_req),
  1100. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1101. &prop_emu_remote_bdadr, 1),
  1102. CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION,
  1103. prop_emu_remotes_pin_req_set, 2),
  1104. ACTION_SUCCESS(bt_cancel_bond_action, &emu_remote_bdaddr_val),
  1105. CALLBACK_BOND_STATE_FAILED(BT_BOND_STATE_NONE,
  1106. &prop_emu_remote_bdadr, 1,
  1107. BT_STATUS_FAIL),
  1108. ACTION_SUCCESS(bluetooth_disable_action, NULL),
  1109. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF),
  1110. ),
  1111. TEST_CASE_BREDR("Bluetooth Remove Bond - Success",
  1112. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  1113. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  1114. ACTION_SUCCESS(emu_set_ssp_mode_action, NULL),
  1115. ACTION_SUCCESS(emu_set_io_cap, &display_yes_no_io_cap),
  1116. ACTION_SUCCESS(bt_start_discovery_action, NULL),
  1117. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  1118. BT_DISCOVERY_STARTED),
  1119. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  1120. CALLBACK_DEVICE_FOUND(prop_emu_remote_bredr_default_set, 3),
  1121. ACTION_SUCCESS(bt_cancel_discovery_action, NULL),
  1122. CALLBACK_STATE(CB_BT_DISCOVERY_STATE_CHANGED,
  1123. BT_DISCOVERY_STOPPED),
  1124. ACTION_SUCCESS(bt_create_bond_action,
  1125. &prop_test_remote_ble_bdaddr_req),
  1126. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1127. &prop_emu_remote_bdadr, 1),
  1128. CALLBACK_SSP_REQ(BT_SSP_VARIANT_PASSKEY_CONFIRMATION,
  1129. prop_emu_remotes_pin_req_set, 2),
  1130. ACTION_SUCCESS(bt_ssp_reply_accept_action,
  1131. &ssp_confirm_accept_reply),
  1132. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED,
  1133. &prop_emu_remote_bdadr, 1),
  1134. ACTION_SUCCESS(bt_remove_bond_action, &emu_remote_bdaddr_val),
  1135. CALLBACK_BOND_STATE(BT_BOND_STATE_NONE,
  1136. &prop_emu_remote_bdadr, 1),
  1137. ACTION_SUCCESS(bluetooth_disable_action, NULL),
  1138. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF),
  1139. ),
  1140. TEST_CASE_BREDR("Bluetooth Accept Bond - Just Works - Success",
  1141. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  1142. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  1143. ACTION_SUCCESS(bt_set_property_action,
  1144. &prop_test_scanmode_conn_discov),
  1145. CALLBACK_ADAPTER_PROPS(&prop_test_scanmode_conn_discov, 1),
  1146. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  1147. ACTION_SUCCESS(emu_set_ssp_mode_action, NULL),
  1148. ACTION_SUCCESS(emu_set_io_cap, &no_input_no_output_io_cap),
  1149. ACTION_SUCCESS(emu_set_connect_cb_action, conn_cb),
  1150. ACTION_SUCCESS(emu_remote_connect_hci_action, NULL),
  1151. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1152. &prop_emu_remote_bdadr, 1),
  1153. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED,
  1154. &prop_emu_remote_bdadr, 1),
  1155. ACTION_SUCCESS(bt_remove_bond_action, &emu_remote_bdaddr_val),
  1156. CALLBACK_BOND_STATE(BT_BOND_STATE_NONE,
  1157. &prop_emu_remote_bdadr, 1),
  1158. ACTION_SUCCESS(bluetooth_disable_action, NULL),
  1159. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF),
  1160. ),
  1161. TEST_CASE_BREDR("Bluetooth Accept Bond - No Bond - Success",
  1162. ACTION_SUCCESS(bluetooth_enable_action, NULL),
  1163. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_ON),
  1164. ACTION_SUCCESS(bt_set_property_action,
  1165. &prop_test_scanmode_conn_discov),
  1166. CALLBACK_ADAPTER_PROPS(&prop_test_scanmode_conn_discov, 1),
  1167. ACTION_SUCCESS(emu_setup_powered_remote_action, NULL),
  1168. ACTION_SUCCESS(emu_set_ssp_mode_action, NULL),
  1169. ACTION_SUCCESS(emu_set_io_cap, &no_input_no_output_io_cap),
  1170. ACTION_SUCCESS(emu_set_connect_cb_action, conn_cb),
  1171. ACTION_SUCCESS(emu_remote_connect_hci_action, NULL),
  1172. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1173. &prop_emu_remote_bdadr, 1),
  1174. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDED,
  1175. &prop_emu_remote_bdadr, 1),
  1176. ACTION_SUCCESS(emu_remote_disconnect_hci_action,
  1177. &test_conn_handle),
  1178. ACTION_SUCCESS(bluetooth_disable_action, NULL),
  1179. CALLBACK_BOND_STATE(BT_BOND_STATE_BONDING,
  1180. &prop_emu_remote_bdadr, 1),
  1181. CALLBACK_BOND_STATE(BT_BOND_STATE_NONE,
  1182. &prop_emu_remote_bdadr, 1),
  1183. CALLBACK_STATE(CB_BT_ADAPTER_STATE_CHANGED, BT_STATE_OFF),
  1184. ),
  1185. };
  1186. struct queue *get_bluetooth_tests(void)
  1187. {
  1188. uint16_t i = 0;
  1189. list = queue_new();
  1190. for (; i < sizeof(test_cases) / sizeof(test_cases[0]); ++i)
  1191. queue_push_tail(list, &test_cases[i]);
  1192. return list;
  1193. }
  1194. void remove_bluetooth_tests(void)
  1195. {
  1196. queue_destroy(list, NULL);
  1197. }