You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2016/09/22 02:12:27 UTC
[20/59] [abbrv] incubator-mynewt-core git commit: syscfg / sysinit
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/host/src/test/ble_gatts_reg_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatts_reg_test.c b/net/nimble/host/src/test/ble_gatts_reg_test.c
deleted file mode 100644
index ad5f18f..0000000
--- a/net/nimble/host/src/test/ble_gatts_reg_test.c
+++ /dev/null
@@ -1,718 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <string.h>
-#include <errno.h>
-#include "testutil/testutil.h"
-#include "nimble/ble.h"
-#include "host/ble_uuid.h"
-#include "host/ble_hs_test.h"
-#include "ble_hs_test_util.h"
-
-#define BLE_GATTS_REG_TEST_MAX_ENTRIES 256
-
-struct ble_gatts_reg_test_entry {
- uint8_t op;
- uint8_t uuid128[16];
- uint16_t handle;
- uint16_t val_handle; /* If a characteristic. */
-
- const struct ble_gatt_svc_def *svc;
- const struct ble_gatt_chr_def *chr;
- const struct ble_gatt_dsc_def *dsc;
-};
-
-static struct ble_gatts_reg_test_entry
-ble_gatts_reg_test_entries[BLE_GATTS_REG_TEST_MAX_ENTRIES];
-
-static int ble_gatts_reg_test_num_entries;
-
-static void
-ble_gatts_reg_test_init(void)
-{
- ble_hs_test_util_init();
- ble_gatts_reg_test_num_entries = 0;
-}
-
-static void
-ble_gatts_reg_test_misc_reg_cb(struct ble_gatt_register_ctxt *ctxt, void *arg)
-{
- struct ble_gatts_reg_test_entry *entry;
-
- TEST_ASSERT_FATAL(ble_gatts_reg_test_num_entries <
- BLE_GATTS_REG_TEST_MAX_ENTRIES);
-
- entry = ble_gatts_reg_test_entries + ble_gatts_reg_test_num_entries++;
- memset(entry, 0, sizeof *entry);
-
- entry->op = ctxt->op;
- switch (ctxt->op) {
- case BLE_GATT_REGISTER_OP_SVC:
- memcpy(entry->uuid128, ctxt->svc.svc_def->uuid128, 16);
- entry->handle = ctxt->svc.handle;
- entry->svc = ctxt->svc.svc_def;
- break;
-
- case BLE_GATT_REGISTER_OP_CHR:
- memcpy(entry->uuid128, ctxt->chr.chr_def->uuid128, 16);
- entry->handle = ctxt->chr.def_handle;
- entry->val_handle = ctxt->chr.val_handle;
- entry->svc = ctxt->chr.svc_def;
- entry->chr = ctxt->chr.chr_def;
- break;
-
- case BLE_GATT_REGISTER_OP_DSC:
- memcpy(entry->uuid128, ctxt->dsc.dsc_def->uuid128, 16);
- entry->handle = ctxt->dsc.handle;
- entry->svc = ctxt->dsc.svc_def;
- entry->chr = ctxt->dsc.chr_def;
- entry->dsc = ctxt->dsc.dsc_def;
- break;
-
- default:
- TEST_ASSERT(0);
- break;
- }
-}
-
-static void
-ble_gatts_reg_test_misc_lookup_good(struct ble_gatts_reg_test_entry *entry)
-{
- uint16_t chr_def_handle;
- uint16_t chr_val_handle;
- uint16_t svc_handle;
- uint16_t dsc_handle;
- int rc;
-
- switch (entry->op) {
- case BLE_GATT_REGISTER_OP_SVC:
- rc = ble_gatts_find_svc(entry->uuid128, &svc_handle);
- TEST_ASSERT_FATAL(rc == 0);
- TEST_ASSERT(svc_handle == entry->handle);
- break;
-
- case BLE_GATT_REGISTER_OP_CHR:
- rc = ble_gatts_find_chr(entry->svc->uuid128, entry->chr->uuid128,
- &chr_def_handle, &chr_val_handle);
- TEST_ASSERT_FATAL(rc == 0);
- TEST_ASSERT(chr_def_handle == entry->handle);
- TEST_ASSERT(chr_val_handle == entry->val_handle);
- break;
-
- case BLE_GATT_REGISTER_OP_DSC:
- rc = ble_gatts_find_dsc(entry->svc->uuid128, entry->chr->uuid128,
- entry->dsc->uuid128, &dsc_handle);
- break;
-
- default:
- TEST_ASSERT(0);
- break;
- }
-}
-
-static void
-ble_gatts_reg_test_misc_lookup_bad(struct ble_gatts_reg_test_entry *entry)
-{
- struct ble_gatts_reg_test_entry *cur;
- uint8_t wrong_uuid[16];
- int rc;
- int i;
-
- switch (entry->op) {
- case BLE_GATT_REGISTER_OP_SVC:
- /* Wrong service UUID. */
- memcpy(wrong_uuid, entry->svc->uuid128, 16);
- wrong_uuid[15]++;
- rc = ble_gatts_find_svc(wrong_uuid, NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
- break;
-
- case BLE_GATT_REGISTER_OP_CHR:
- /* Correct service UUID, wrong characteristic UUID. */
- memcpy(wrong_uuid, entry->chr->uuid128, 16);
- wrong_uuid[15]++;
- rc = ble_gatts_find_chr(entry->svc->uuid128, wrong_uuid, NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
-
- /* Incorrect service UUID, correct characteristic UUID. */
- memcpy(wrong_uuid, entry->svc->uuid128, 16);
- wrong_uuid[15]++;
- rc = ble_gatts_find_chr(wrong_uuid, entry->chr->uuid128, NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
-
- /* Existing (but wrong) service, correct characteristic UUID. */
- for (i = 0; i < ble_gatts_reg_test_num_entries; i++) {
- cur = ble_gatts_reg_test_entries + i;
- switch (cur->op) {
- case BLE_GATT_REGISTER_OP_SVC:
- if (cur->svc != entry->svc) {
- rc = ble_gatts_find_chr(cur->svc->uuid128,
- entry->chr->uuid128,
- NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
- }
- break;
-
- case BLE_GATT_REGISTER_OP_CHR:
- /* Characteristic that isn't in this service. */
- if (cur->svc != entry->svc) {
- rc = ble_gatts_find_chr(entry->svc->uuid128,
- cur->chr->uuid128,
- NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
- }
- break;
-
- case BLE_GATT_REGISTER_OP_DSC:
- /* Use descriptor UUID instead of characteristic UUID. */
- rc = ble_gatts_find_chr(entry->svc->uuid128,
- cur->dsc->uuid128,
- NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
- break;
-
- default:
- TEST_ASSERT(0);
- break;
- }
- }
- break;
-
- case BLE_GATT_REGISTER_OP_DSC:
- /* Correct svc/chr UUID, wrong dsc UUID. */
- memcpy(wrong_uuid, entry->dsc->uuid128, 16);
- wrong_uuid[15]++;
- rc = ble_gatts_find_dsc(entry->svc->uuid128, entry->chr->uuid128,
- wrong_uuid, NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
-
- /* Incorrect svc UUID, correct chr/dsc UUID. */
- memcpy(wrong_uuid, entry->svc->uuid128, 16);
- wrong_uuid[15]++;
- rc = ble_gatts_find_dsc(wrong_uuid, entry->chr->uuid128,
- entry->dsc->uuid128, NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
-
- for (i = 0; i < ble_gatts_reg_test_num_entries; i++) {
- cur = ble_gatts_reg_test_entries + i;
- switch (cur->op) {
- case BLE_GATT_REGISTER_OP_SVC:
- /* Existing (but wrong) svc, correct chr/dsc UUID. */
- if (cur->svc != entry->svc) {
- rc = ble_gatts_find_dsc(cur->svc->uuid128,
- entry->chr->uuid128,
- entry->dsc->uuid128,
- NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
- }
- break;
-
- case BLE_GATT_REGISTER_OP_CHR:
- /* Existing (but wrong) svc/chr, correct dsc UUID. */
- if (cur->chr != entry->chr) {
- rc = ble_gatts_find_dsc(cur->svc->uuid128,
- cur->chr->uuid128,
- entry->dsc->uuid128,
- NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
- }
- break;
-
- case BLE_GATT_REGISTER_OP_DSC:
- /* Descriptor that isn't in this characteristic. */
- if (cur->chr != entry->chr) {
- rc = ble_gatts_find_dsc(cur->svc->uuid128,
- cur->chr->uuid128,
- entry->dsc->uuid128,
- NULL);
- TEST_ASSERT(rc == BLE_HS_ENOENT);
- }
- break;
-
- default:
- TEST_ASSERT(0);
- break;
- }
- }
- break;
-
- default:
- TEST_ASSERT(0);
- break;
- }
-}
-
-static void
-ble_gatts_reg_test_misc_verify_entry(uint8_t op, const uint8_t *uuid128)
-{
- struct ble_gatts_reg_test_entry *entry;
- int i;
-
- for (i = 0; i < ble_gatts_reg_test_num_entries; i++) {
- entry = ble_gatts_reg_test_entries + i;
- if (entry->op == op && memcmp(entry->uuid128, uuid128, 16) == 0) {
- break;
- }
- }
- TEST_ASSERT_FATAL(entry != NULL);
-
- /* Verify that characteristic value handle was properly assigned at
- * registration.
- */
- if (op == BLE_GATT_REGISTER_OP_CHR) {
- TEST_ASSERT(*entry->chr->val_handle == entry->val_handle);
- }
-
- /* Verify that the entry can be looked up. */
- ble_gatts_reg_test_misc_lookup_good(entry);
-
- /* Verify that "barely incorrect" UUID information doesn't retrieve any
- * handles.
- */
- ble_gatts_reg_test_misc_lookup_bad(entry);
-}
-
-static int
-ble_gatts_reg_test_misc_dummy_access(uint16_t conn_handle,
- uint16_t attr_handle,
- struct ble_gatt_access_ctxt *ctxt,
- void *arg)
-{
- return 0;
-}
-
-TEST_CASE(ble_gatts_reg_test_svc_return)
-{
- int rc;
-
- /*** Missing UUID. */
- ble_gatts_reg_test_init();
- struct ble_gatt_svc_def svcs_no_uuid[] = { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- }, {
- 0
- } };
-
- rc = ble_gatts_register_svcs(svcs_no_uuid, NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_EINVAL);
-
- /*** Circular dependency. */
- ble_gatts_reg_test_init();
- struct ble_gatt_svc_def svcs_circ[] = { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .includes = (const struct ble_gatt_svc_def*[]) { svcs_circ + 1, NULL },
- }, {
- .type = BLE_GATT_SVC_TYPE_SECONDARY,
- .uuid128 = BLE_UUID16(0x1234),
- .includes = (const struct ble_gatt_svc_def*[]) { svcs_circ + 0, NULL },
- }, {
- 0
- } };
-
- rc = ble_gatts_register_svcs(svcs_circ, NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_EINVAL);
-
- /*** Success. */
- ble_gatts_reg_test_init();
- struct ble_gatt_svc_def svcs_good[] = { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .includes = (const struct ble_gatt_svc_def*[]) { svcs_good + 1, NULL },
- }, {
- .type = BLE_GATT_SVC_TYPE_SECONDARY,
- .uuid128 = BLE_UUID16(0x1234),
- }, {
- 0
- } };
-
- rc = ble_gatts_register_svcs(svcs_good, NULL, NULL);
- TEST_ASSERT(rc == 0);
-}
-
-TEST_CASE(ble_gatts_reg_test_chr_return)
-{
- int rc;
-
- /*** Missing callback. */
- ble_gatts_reg_test_init();
- struct ble_gatt_svc_def svcs_no_chr_cb[] = { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x1111),
- .flags = BLE_GATT_CHR_F_READ,
- }, {
- 0
- } },
- }, {
- 0
- } };
-
- rc = ble_gatts_register_svcs(svcs_no_chr_cb, NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_EINVAL);
-
- /*** Success. */
- ble_gatts_reg_test_init();
- struct ble_gatt_svc_def svcs_good[] = { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x1111),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- }, {
- 0
- } },
- }, {
- 0
- } };
-
- rc = ble_gatts_register_svcs(svcs_good, NULL, NULL);
- TEST_ASSERT(rc == 0);
-}
-
-TEST_CASE(ble_gatts_reg_test_dsc_return)
-{
- int rc;
-
- /*** Missing callback. */
- ble_gatts_reg_test_init();
- struct ble_gatt_svc_def svcs_no_dsc_cb[] = { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x1111),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .descriptors = (struct ble_gatt_dsc_def[]) { {
- .uuid128 = BLE_UUID16(0x8888),
- .att_flags = 5,
- }, {
- 0
- } },
- }, {
- 0
- } },
- }, {
- 0
- } };
-
- rc = ble_gatts_register_svcs(svcs_no_dsc_cb, NULL, NULL);
- TEST_ASSERT(rc == BLE_HS_EINVAL);
-
- /*** Success. */
- ble_gatts_reg_test_init();
- struct ble_gatt_svc_def svcs_good[] = { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x1111),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .descriptors = (struct ble_gatt_dsc_def[]) { {
- .uuid128 = BLE_UUID16(0x8888),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .att_flags = 5,
- }, {
- 0
- } },
- }, {
- 0
- } },
- }, {
- 0
- } };
-
- rc = ble_gatts_register_svcs(svcs_good, NULL, NULL);
- TEST_ASSERT(rc == 0);
-}
-
-static void
-ble_gatts_reg_test_misc_svcs(struct ble_gatt_svc_def *svcs)
-{
- const struct ble_gatt_svc_def *svc;
- const struct ble_gatt_chr_def *chr;
- const struct ble_gatt_dsc_def *dsc;
- int rc;
-
- ble_gatts_reg_test_init();
-
- /* Register all the attributes. */
- rc = ble_gatts_register_svcs(svcs, ble_gatts_reg_test_misc_reg_cb,
- NULL);
- TEST_ASSERT_FATAL(rc == 0);
-
- /* Verify that the appropriate callbacks were executed. */
- for (svc = svcs; svc->type != BLE_GATT_SVC_TYPE_END; svc++) {
- ble_gatts_reg_test_misc_verify_entry(BLE_GATT_REGISTER_OP_SVC,
- svc->uuid128);
-
- if (svc->characteristics != NULL) {
- for (chr = svc->characteristics; chr->uuid128 != NULL; chr++) {
- ble_gatts_reg_test_misc_verify_entry(BLE_GATT_REGISTER_OP_CHR,
- chr->uuid128);
-
- if (chr->descriptors != NULL) {
- for (dsc = chr->descriptors; dsc->uuid128 != NULL; dsc++) {
- ble_gatts_reg_test_misc_verify_entry(
- BLE_GATT_REGISTER_OP_DSC, dsc->uuid128);
- }
- }
- }
- }
- }
-}
-
-TEST_CASE(ble_gatts_reg_test_svc_cb)
-{
- /*** 1 primary. */
- ble_gatts_reg_test_misc_svcs((struct ble_gatt_svc_def[]) { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- }, {
- 0
- } });
-
- /*** 3 primary. */
- ble_gatts_reg_test_misc_svcs((struct ble_gatt_svc_def[]) { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- }, {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x2234),
- }, {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x3234),
- }, {
- 0
- } });
-
-
- /*** 1 primary, 1 secondary. */
- ble_gatts_reg_test_misc_svcs((struct ble_gatt_svc_def[]) { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- }, {
- .type = BLE_GATT_SVC_TYPE_SECONDARY,
- .uuid128 = BLE_UUID16(0x2222),
- }, {
- 0
- } });
-
- /*** 1 primary, 1 secondary, 1 include. */
- struct ble_gatt_svc_def svcs[] = {
- [0] = {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .includes = (const struct ble_gatt_svc_def*[]) { svcs + 1, NULL, },
- },
- [1] = {
- .type = BLE_GATT_SVC_TYPE_SECONDARY,
- .uuid128 = BLE_UUID16(0x2222),
- }, {
- 0
- }
- };
- ble_gatts_reg_test_misc_svcs(svcs);
-}
-
-TEST_CASE(ble_gatts_reg_test_chr_cb)
-{
- uint16_t val_handles[16];
-
- /*** 1 characteristic. */
- ble_gatts_reg_test_misc_svcs((struct ble_gatt_svc_def[]) { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x1111),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .val_handle = val_handles + 0,
- }, {
- 0
- } },
- }, {
- 0
- } });
-
- /*** 3 characteristics. */
- ble_gatts_reg_test_misc_svcs((struct ble_gatt_svc_def[]) { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x1111),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .val_handle = val_handles + 0,
- }, {
- .uuid128 = BLE_UUID16(0x2222),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_WRITE,
- .val_handle = val_handles + 1,
- }, {
- 0
- } },
- }, {
- .type = BLE_GATT_SVC_TYPE_SECONDARY,
- .uuid128 = BLE_UUID16(0x5678),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x3333),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .val_handle = val_handles + 2,
- }, {
- 0
- } },
- }, {
- 0
- } });
-}
-
-TEST_CASE(ble_gatts_reg_test_dsc_cb)
-{
- uint16_t val_handles[16];
-
- /*** 1 descriptor. */
- ble_gatts_reg_test_misc_svcs((struct ble_gatt_svc_def[]) { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x1111),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .val_handle = val_handles + 0,
- .descriptors = (struct ble_gatt_dsc_def[]) { {
- .uuid128 = BLE_UUID16(0x111a),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- 0
- } },
- }, {
- 0
- } },
- }, {
- 0
- } });
-
- /*** 5+ descriptors. */
- ble_gatts_reg_test_misc_svcs((struct ble_gatt_svc_def[]) { {
- .type = BLE_GATT_SVC_TYPE_PRIMARY,
- .uuid128 = BLE_UUID16(0x1234),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x1111),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .val_handle = val_handles + 0,
- .descriptors = (struct ble_gatt_dsc_def[]) { {
- .uuid128 = BLE_UUID16(0x111a),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- 0
- } },
- }, {
- .uuid128 = BLE_UUID16(0x2222),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_WRITE,
- .val_handle = val_handles + 1,
- }, {
- 0
- } },
- }, {
- .type = BLE_GATT_SVC_TYPE_SECONDARY,
- .uuid128 = BLE_UUID16(0x5678),
- .characteristics = (struct ble_gatt_chr_def[]) { {
- .uuid128 = BLE_UUID16(0x3333),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .val_handle = val_handles + 2,
- .descriptors = (struct ble_gatt_dsc_def[]) { {
- .uuid128 = BLE_UUID16(0x333a),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- .uuid128 = BLE_UUID16(0x333b),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- .uuid128 = BLE_UUID16(0x333c),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- .uuid128 = BLE_UUID16(0x333e),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- 0
- } },
- }, {
- .uuid128 = BLE_UUID16(0x4444),
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- .flags = BLE_GATT_CHR_F_READ,
- .val_handle = val_handles + 3,
- .descriptors = (struct ble_gatt_dsc_def[]) { {
- .uuid128 = BLE_UUID16(0x444a),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- .uuid128 = BLE_UUID16(0x444b),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- .uuid128 = BLE_UUID16(0x444c),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- .uuid128 = BLE_UUID16(0x444e),
- .att_flags = 5,
- .access_cb = ble_gatts_reg_test_misc_dummy_access,
- }, {
- 0
- } },
- }, {
- 0
- } },
- }, {
- 0
- } });
-}
-
-TEST_SUITE(ble_gatts_reg_suite)
-{
- tu_suite_set_post_test_cb(ble_hs_test_util_post_test, NULL);
-
- ble_gatts_reg_test_svc_return();
- ble_gatts_reg_test_chr_return();
- ble_gatts_reg_test_dsc_return();
-
- ble_gatts_reg_test_svc_cb();
- ble_gatts_reg_test_chr_cb();
- ble_gatts_reg_test_dsc_cb();
-}
-
-int
-ble_gatts_reg_test_all(void)
-{
- ble_gatts_reg_suite();
-
- return tu_any_failed;
-}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/host/src/test/ble_hs_adv_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_adv_test.c b/net/nimble/host/src/test/ble_hs_adv_test.c
deleted file mode 100644
index e99fd5b..0000000
--- a/net/nimble/host/src/test/ble_hs_adv_test.c
+++ /dev/null
@@ -1,1486 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <stddef.h>
-#include <errno.h>
-#include <string.h>
-#include "testutil/testutil.h"
-#include "nimble/hci_common.h"
-#include "host/ble_hs_adv.h"
-#include "host/ble_hs_test.h"
-#include "ble_hs_test_util.h"
-
-#define BLE_ADV_TEST_DATA_OFF 4
-
-static void
-ble_hs_adv_test_misc_verify_tx_adv_data_hdr(uint8_t *cmd, int data_len)
-{
- uint16_t opcode;
-
- opcode = le16toh(cmd + 0);
- TEST_ASSERT(BLE_HCI_OGF(opcode) == BLE_HCI_OGF_LE);
- TEST_ASSERT(BLE_HCI_OCF(opcode) == BLE_HCI_OCF_LE_SET_ADV_DATA);
-
- TEST_ASSERT(cmd[2] == BLE_HCI_SET_ADV_DATA_LEN);
- TEST_ASSERT(cmd[3] == data_len);
-}
-
-static void
-ble_hs_adv_test_misc_verify_tx_rsp_data_hdr(uint8_t *cmd, int data_len)
-{
- uint16_t opcode;
-
- opcode = le16toh(cmd + 0);
- TEST_ASSERT(BLE_HCI_OGF(opcode) == BLE_HCI_OGF_LE);
- TEST_ASSERT(BLE_HCI_OCF(opcode) == BLE_HCI_OCF_LE_SET_SCAN_RSP_DATA);
-
- TEST_ASSERT(cmd[2] == BLE_HCI_SET_SCAN_RSP_DATA_LEN);
- TEST_ASSERT(cmd[3] == data_len);
-}
-
-static void
-ble_hs_adv_test_misc_verify_tx_field(uint8_t *cmd, uint8_t type,
- uint8_t val_len, void *val)
-{
- TEST_ASSERT(cmd[0] == val_len + 1);
- TEST_ASSERT(cmd[1] == type);
- TEST_ASSERT(memcmp(cmd + 2, val, val_len) == 0);
-}
-
-struct ble_hs_adv_test_field {
- uint8_t type; /* 0 indicates end of array. */
- uint8_t *val;
- uint8_t val_len;
-};
-
-static int
-ble_hs_adv_test_misc_calc_data_len(struct ble_hs_adv_test_field *fields)
-{
- struct ble_hs_adv_test_field *field;
- int len;
-
- len = 0;
- if (fields != NULL) {
- for (field = fields; field->type != 0; field++) {
- len += 2 + field->val_len;
- }
- }
-
- return len;
-}
-
-static void
-ble_hs_adv_test_misc_verify_tx_fields(uint8_t *cmd,
- struct ble_hs_adv_test_field *fields)
-{
- struct ble_hs_adv_test_field *field;
-
- for (field = fields; field->type != 0; field++) {
- ble_hs_adv_test_misc_verify_tx_field(cmd, field->type, field->val_len,
- field->val);
- cmd += 2 + field->val_len;
- }
-}
-
-static void
-ble_hs_adv_test_misc_verify_tx_adv_data(struct ble_hs_adv_test_field *fields)
-{
- int data_len;
- uint8_t *cmd;
-
- cmd = ble_hs_test_util_get_last_hci_tx();
- TEST_ASSERT_FATAL(cmd != NULL);
-
- data_len = ble_hs_adv_test_misc_calc_data_len(fields);
- ble_hs_adv_test_misc_verify_tx_adv_data_hdr(cmd, data_len);
- if (fields != NULL) {
- ble_hs_adv_test_misc_verify_tx_fields(cmd + BLE_ADV_TEST_DATA_OFF,
- fields);
- }
-}
-
-static void
-ble_hs_adv_test_misc_verify_tx_rsp_data(struct ble_hs_adv_test_field *fields)
-{
- int data_len;
- uint8_t *cmd;
-
- cmd = ble_hs_test_util_get_last_hci_tx();
- TEST_ASSERT_FATAL(cmd != NULL);
-
- data_len = ble_hs_adv_test_misc_calc_data_len(fields);
- ble_hs_adv_test_misc_verify_tx_rsp_data_hdr(cmd, data_len);
- if (fields != NULL) {
- ble_hs_adv_test_misc_verify_tx_fields(cmd + BLE_ADV_TEST_DATA_OFF,
- fields);
- }
-}
-
-static void
-ble_hs_adv_test_misc_tx_and_verify_data(
- uint8_t disc_mode,
- struct ble_hs_adv_fields *adv_fields,
- struct ble_hs_adv_test_field *test_adv_fields,
- struct ble_hs_adv_fields *rsp_fields,
- struct ble_hs_adv_test_field *test_rsp_fields)
-{
- struct ble_gap_adv_params adv_params;
- int rc;
-
- ble_hs_test_util_init();
-
- adv_params = ble_hs_test_util_adv_params;
- adv_params.disc_mode = disc_mode;
-
- rc = ble_hs_test_util_adv_set_fields(adv_fields, 0);
- TEST_ASSERT_FATAL(rc == 0);
-
- rc = ble_gap_adv_rsp_set_fields(rsp_fields);
- TEST_ASSERT_FATAL(rc == 0);
-
- rc = ble_hs_test_util_adv_start(BLE_ADDR_TYPE_PUBLIC, 0, NULL, &adv_params,
- NULL, NULL, 0, 0);
- TEST_ASSERT_FATAL(rc == 0);
-
- /* Discard the adv-enable command. */
- ble_hs_test_util_get_last_hci_tx();
-
- ble_hs_adv_test_misc_verify_tx_rsp_data(test_rsp_fields);
- ble_hs_adv_test_misc_verify_tx_adv_data(test_adv_fields);
-
- /* Ensure the same data gets sent on repeated advertise procedures. */
- rc = ble_hs_test_util_adv_stop(0);
- TEST_ASSERT_FATAL(rc == 0);
-
- rc = ble_hs_test_util_adv_start(BLE_ADDR_TYPE_PUBLIC, 0, NULL, &adv_params,
- NULL, NULL, 0, 0);
- TEST_ASSERT_FATAL(rc == 0);
-
- /* Discard the adv-enable command. */
- ble_hs_test_util_get_last_hci_tx();
-
- ble_hs_adv_test_misc_verify_tx_rsp_data(test_rsp_fields);
- ble_hs_adv_test_misc_verify_tx_adv_data(test_adv_fields);
-}
-
-TEST_CASE(ble_hs_adv_test_case_flags)
-{
- struct ble_hs_adv_fields adv_fields;
- struct ble_hs_adv_fields rsp_fields;
-
- memset(&adv_fields, 0, sizeof adv_fields);
- memset(&rsp_fields, 0, sizeof rsp_fields);
-
- /* Default flags. */
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON,
- &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /* Flags |= limited discoverable. */
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_LTD, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]) {
- BLE_HS_ADV_F_DISC_LTD | BLE_HS_ADV_F_BREDR_UNSUP
- },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /* Flags = general discoverable. */
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_GEN, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]) {
- BLE_HS_ADV_F_DISC_GEN | BLE_HS_ADV_F_BREDR_UNSUP
- },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-}
-
-TEST_CASE(ble_hs_adv_test_case_user)
-{
- struct ble_hs_adv_fields adv_fields;
- struct ble_hs_adv_fields rsp_fields;
-
- memset(&rsp_fields, 0, sizeof rsp_fields);
-
- /*** Complete 16-bit service class UUIDs. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO;
- adv_fields.uuids16 = (uint16_t[]) { 0x0001, 0x1234, 0x54ab };
- adv_fields.num_uuids16 = 3;
- adv_fields.uuids16_is_complete = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_COMP_UUIDS16,
- .val = (uint8_t[]) { 0x01, 0x00, 0x34, 0x12, 0xab, 0x54 },
- .val_len = 6,
- },
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Incomplete 16-bit service class UUIDs. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.uuids16 = (uint16_t[]) { 0x0001, 0x1234, 0x54ab };
- adv_fields.num_uuids16 = 3;
- adv_fields.uuids16_is_complete = 0;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_INCOMP_UUIDS16,
- .val = (uint8_t[]) { 0x01, 0x00, 0x34, 0x12, 0xab, 0x54 },
- .val_len = 6,
- },
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Complete 32-bit service class UUIDs. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.uuids32 = (uint32_t[]) { 0x12345678, 0xabacadae };
- adv_fields.num_uuids32 = 2;
- adv_fields.uuids32_is_complete = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_COMP_UUIDS32,
- .val = (uint8_t[]) { 0x78,0x56,0x34,0x12,0xae,0xad,0xac,0xab },
- .val_len = 8,
- },
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Incomplete 32-bit service class UUIDs. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.uuids32 = (uint32_t[]) { 0x12345678, 0xabacadae };
- adv_fields.num_uuids32 = 2;
- adv_fields.uuids32_is_complete = 0;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_INCOMP_UUIDS32,
- .val = (uint8_t[]) { 0x78,0x56,0x34,0x12,0xae,0xad,0xac,0xab },
- .val_len = 8,
- },
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Complete 128-bit service class UUIDs. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.uuids128 = (uint8_t[]) {
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
- };
- adv_fields.num_uuids128 = 1;
- adv_fields.uuids128_is_complete = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_COMP_UUIDS128,
- .val = (uint8_t[]) {
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
- },
- .val_len = 16,
- },
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Incomplete 128-bit service class UUIDs. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.uuids128 = (uint8_t[]) {
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
- };
- adv_fields.num_uuids128 = 1;
- adv_fields.uuids128_is_complete = 0;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_INCOMP_UUIDS128,
- .val = (uint8_t[]) {
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
- },
- .val_len = 16,
- },
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Complete name. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.name = (uint8_t *)"myname";
- adv_fields.name_len = 6;
- adv_fields.name_is_complete = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_COMP_NAME,
- .val = (uint8_t*)"myname",
- .val_len = 6,
- },
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Incomplete name. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.name = (uint8_t *)"myname";
- adv_fields.name_len = 6;
- adv_fields.name_is_complete = 0;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_INCOMP_NAME,
- .val = (uint8_t*)"myname",
- .val_len = 6,
- },
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Class of device. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.device_class = (uint8_t[]){ 1,2,3 };
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_DEVICE_CLASS,
- .val = (uint8_t[]) { 1,2,3 },
- .val_len = BLE_HS_ADV_DEVICE_CLASS_LEN,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Slave interval range. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.slave_itvl_range = (uint8_t[]){ 1,2,3,4 };
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_SLAVE_ITVL_RANGE,
- .val = (uint8_t[]) { 1,2,3,4 },
- .val_len = BLE_HS_ADV_SLAVE_ITVL_RANGE_LEN,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x16 - Service data - 16-bit UUID. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.svc_data_uuid16 = (uint8_t[]){ 1,2,3,4 };
- adv_fields.svc_data_uuid16_len = 4;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_SVC_DATA_UUID16,
- .val = (uint8_t[]) { 1,2,3,4 },
- .val_len = 4,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x17 - Public target address. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.public_tgt_addr = (uint8_t[]){ 1,2,3,4,5,6, 6,5,4,3,2,1 };
- adv_fields.num_public_tgt_addrs = 2;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_PUBLIC_TGT_ADDR,
- .val = (uint8_t[]){ 1,2,3,4,5,6, 6,5,4,3,2,1 },
- .val_len = 2 * BLE_HS_ADV_PUBLIC_TGT_ADDR_ENTRY_LEN,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x19 - Appearance. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.appearance = 0x1234;
- adv_fields.appearance_is_present = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_APPEARANCE,
- .val = (uint8_t[]){ 0x34, 0x12 },
- .val_len = BLE_HS_ADV_APPEARANCE_LEN,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x1a - Advertising interval. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.adv_itvl = 0x1234;
- adv_fields.adv_itvl_is_present = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_ADV_ITVL,
- .val = (uint8_t[]){ 0x34, 0x12 },
- .val_len = BLE_HS_ADV_ADV_ITVL_LEN,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x1b - LE bluetooth device address. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.le_addr = (uint8_t[]){ 1,2,3,4,5,6,7 };
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_LE_ADDR,
- .val = (uint8_t[]) { 1,2,3,4,5,6,7 },
- .val_len = BLE_HS_ADV_LE_ADDR_LEN,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x1c - LE role. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.le_role = BLE_HS_ADV_LE_ROLE_BOTH_PERIPH_PREF;
- adv_fields.le_role_is_present = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_LE_ROLE,
- .val = (uint8_t[]) { BLE_HS_ADV_LE_ROLE_BOTH_PERIPH_PREF },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x20 - Service data - 32-bit UUID. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.svc_data_uuid32 = (uint8_t[]){ 1,2,3,4,5 };
- adv_fields.svc_data_uuid32_len = 5;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_SVC_DATA_UUID32,
- .val = (uint8_t[]) { 1,2,3,4,5 },
- .val_len = 5,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x21 - Service data - 128-bit UUID. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.svc_data_uuid128 =
- (uint8_t[]){ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 };
- adv_fields.svc_data_uuid128_len = 18;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_SVC_DATA_UUID128,
- .val = (uint8_t[]){ 1,2,3,4,5,6,7,8,9,10,
- 11,12,13,14,15,16,17,18 },
- .val_len = 18,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0x24 - URI. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.uri = (uint8_t[]){ 1,2,3,4 };
- adv_fields.uri_len = 4;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_URI,
- .val = (uint8_t[]) { 1,2,3,4 },
- .val_len = 4,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** 0xff - Manufacturer specific data. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
- adv_fields.mfg_data = (uint8_t[]){ 1,2,3,4 };
- adv_fields.mfg_data_len = 4;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_MFG_DATA,
- .val = (uint8_t[]) { 1,2,3,4 },
- .val_len = 4,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- }, &rsp_fields, NULL);
-}
-
-TEST_CASE(ble_hs_adv_test_case_user_rsp)
-{
- struct ble_hs_adv_fields rsp_fields;
- struct ble_hs_adv_fields adv_fields;
-
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.flags_is_present = 1;
- adv_fields.tx_pwr_lvl_is_present = 1;
-
- /*** Complete 16-bit service class UUIDs. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.uuids16 = (uint16_t[]) { 0x0001, 0x1234, 0x54ab };
- rsp_fields.num_uuids16 = 3;
- rsp_fields.uuids16_is_complete = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_COMP_UUIDS16,
- .val = (uint8_t[]) { 0x01, 0x00, 0x34, 0x12, 0xab, 0x54 },
- .val_len = 6,
- },
- { 0 },
- });
-
- /*** Incomplete 16-bit service class UUIDs. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.uuids16 = (uint16_t[]) { 0x0001, 0x1234, 0x54ab };
- rsp_fields.num_uuids16 = 3;
- rsp_fields.uuids16_is_complete = 0;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_INCOMP_UUIDS16,
- .val = (uint8_t[]) { 0x01, 0x00, 0x34, 0x12, 0xab, 0x54 },
- .val_len = 6,
- },
- { 0 },
- });
-
- /*** Complete 32-bit service class UUIDs. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.uuids32 = (uint32_t[]) { 0x12345678, 0xabacadae };
- rsp_fields.num_uuids32 = 2;
- rsp_fields.uuids32_is_complete = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_COMP_UUIDS32,
- .val = (uint8_t[]) { 0x78,0x56,0x34,0x12,0xae,0xad,0xac,0xab },
- .val_len = 8,
- },
- { 0 },
- });
-
- /*** Incomplete 32-bit service class UUIDs. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.uuids32 = (uint32_t[]) { 0x12345678, 0xabacadae };
- rsp_fields.num_uuids32 = 2;
- rsp_fields.uuids32_is_complete = 0;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_INCOMP_UUIDS32,
- .val = (uint8_t[]) { 0x78,0x56,0x34,0x12,0xae,0xad,0xac,0xab },
- .val_len = 8,
- },
- { 0 },
- });
-
- /*** Complete 128-bit service class UUIDs. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.uuids128 = (uint8_t[]) {
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
- };
- rsp_fields.num_uuids128 = 1;
- rsp_fields.uuids128_is_complete = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_COMP_UUIDS128,
- .val = (uint8_t[]) {
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
- },
- .val_len = 16,
- },
- { 0 },
- });
-
- /*** Incomplete 128-bit service class UUIDs. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.uuids128 = (uint8_t[]) {
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
- };
- rsp_fields.num_uuids128 = 1;
- rsp_fields.uuids128_is_complete = 0;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_INCOMP_UUIDS128,
- .val = (uint8_t[]) {
- 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
- 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff,
- },
- .val_len = 16,
- },
- { 0 },
- });
-
- /*** Complete name. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.name = (uint8_t *)"myname";
- rsp_fields.name_len = 6;
- rsp_fields.name_is_complete = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_COMP_NAME,
- .val = (uint8_t*)"myname",
- .val_len = 6,
- },
- { 0 },
- });
-
- /*** Incomplete name. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.name = (uint8_t *)"myname";
- rsp_fields.name_len = 6;
- rsp_fields.name_is_complete = 0;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_INCOMP_NAME,
- .val = (uint8_t*)"myname",
- .val_len = 6,
- },
- { 0 },
- });
-
- /*** Class of device. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.device_class = (uint8_t[]){ 1,2,3 };
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_DEVICE_CLASS,
- .val = (uint8_t[]) { 1,2,3 },
- .val_len = BLE_HS_ADV_DEVICE_CLASS_LEN,
- },
- { 0 },
- });
-
- /*** Slave interval range. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.slave_itvl_range = (uint8_t[]){ 1,2,3,4 };
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_SLAVE_ITVL_RANGE,
- .val = (uint8_t[]) { 1,2,3,4 },
- .val_len = BLE_HS_ADV_SLAVE_ITVL_RANGE_LEN,
- },
- { 0 },
- });
-
- /*** 0x16 - Service data - 16-bit UUID. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.svc_data_uuid16 = (uint8_t[]){ 1,2,3,4 };
- rsp_fields.svc_data_uuid16_len = 4;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_SVC_DATA_UUID16,
- .val = (uint8_t[]) { 1,2,3,4 },
- .val_len = 4,
- },
- { 0 },
- });
-
- /*** 0x17 - Public target address. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.public_tgt_addr = (uint8_t[]){ 1,2,3,4,5,6, 6,5,4,3,2,1 };
- rsp_fields.num_public_tgt_addrs = 2;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_PUBLIC_TGT_ADDR,
- .val = (uint8_t[]){ 1,2,3,4,5,6, 6,5,4,3,2,1 },
- .val_len = 2 * BLE_HS_ADV_PUBLIC_TGT_ADDR_ENTRY_LEN,
- },
- { 0 },
- });
-
- /*** 0x19 - Appearance. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.appearance = 0x1234;
- rsp_fields.appearance_is_present = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_APPEARANCE,
- .val = (uint8_t[]){ 0x34, 0x12 },
- .val_len = BLE_HS_ADV_APPEARANCE_LEN,
- },
- { 0 },
- });
-
- /*** 0x1a - Advertising interval. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.adv_itvl = 0x1234;
- rsp_fields.adv_itvl_is_present = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_ADV_ITVL,
- .val = (uint8_t[]){ 0x34, 0x12 },
- .val_len = BLE_HS_ADV_ADV_ITVL_LEN,
- },
- { 0 },
- });
-
- /*** 0x1b - LE bluetooth device address. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.le_addr = (uint8_t[]){ 1,2,3,4,5,6,7 };
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_LE_ADDR,
- .val = (uint8_t[]) { 1,2,3,4,5,6,7 },
- .val_len = BLE_HS_ADV_LE_ADDR_LEN,
- },
- { 0 },
- });
-
- /*** 0x1c - LE role. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.le_role = BLE_HS_ADV_LE_ROLE_BOTH_PERIPH_PREF;
- rsp_fields.le_role_is_present = 1;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_LE_ROLE,
- .val = (uint8_t[]) { BLE_HS_ADV_LE_ROLE_BOTH_PERIPH_PREF },
- .val_len = 1,
- },
- { 0 },
- });
-
- /*** 0x20 - Service data - 32-bit UUID. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.svc_data_uuid32 = (uint8_t[]){ 1,2,3,4,5 };
- rsp_fields.svc_data_uuid32_len = 5;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_SVC_DATA_UUID32,
- .val = (uint8_t[]) { 1,2,3,4,5 },
- .val_len = 5,
- },
- { 0 },
- });
-
- /*** 0x21 - Service data - 128-bit UUID. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.svc_data_uuid128 =
- (uint8_t[]){ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 };
- rsp_fields.svc_data_uuid128_len = 18;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_SVC_DATA_UUID128,
- .val = (uint8_t[]){ 1,2,3,4,5,6,7,8,9,10,
- 11,12,13,14,15,16,17,18 },
- .val_len = 18,
- },
- { 0 },
- });
-
- /*** 0x24 - URI. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.uri = (uint8_t[]){ 1,2,3,4 };
- rsp_fields.uri_len = 4;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_URI,
- .val = (uint8_t[]) { 1,2,3,4 },
- .val_len = 4,
- },
- { 0 },
- });
-
- /*** 0xff - Manufacturer specific data. */
- memset(&rsp_fields, 0, sizeof rsp_fields);
- rsp_fields.mfg_data = (uint8_t[]){ 1,2,3,4 };
- rsp_fields.mfg_data_len = 4;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_TX_PWR_LVL,
- .val = (uint8_t[]){ 0 },
- .val_len = 1,
- },
- {
- .type = BLE_HS_ADV_TYPE_FLAGS,
- .val = (uint8_t[]){ BLE_HS_ADV_F_BREDR_UNSUP },
- .val_len = 1,
- },
- { 0 },
- },
- &rsp_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_MFG_DATA,
- .val = (uint8_t[]) { 1,2,3,4 },
- .val_len = 4,
- },
- { 0 },
- });
-}
-
-TEST_CASE(ble_hs_adv_test_case_user_full_payload)
-{
- /* Intentionally allocate an extra byte. */
- static const uint8_t mfg_data[30] = {
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
- 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
- 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
- 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e,
- };
-
- struct ble_hs_adv_fields adv_fields;
- struct ble_hs_adv_fields rsp_fields;
- int rc;
-
- ble_hs_test_util_init();
-
- memset(&rsp_fields, 0, sizeof rsp_fields);
-
- /***
- * An advertisement should allow 31 bytes of user data. Each field has a
- * two-byte header, leaving 29 bytes of payload.
- */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.mfg_data = (void *)mfg_data;
- adv_fields.mfg_data_len = 29;
-
- ble_hs_adv_test_misc_tx_and_verify_data(BLE_GAP_DISC_MODE_NON, &adv_fields,
- (struct ble_hs_adv_test_field[]) {
- {
- .type = BLE_HS_ADV_TYPE_MFG_DATA,
- .val = (void *)mfg_data,
- .val_len = 29,
- },
- { 0 },
- }, &rsp_fields, NULL);
-
- /*** Fail with 30 bytes. */
- rc = ble_hs_test_util_adv_stop(0);
- TEST_ASSERT_FATAL(rc == 0);
-
- adv_fields.mfg_data_len = 30;
- rc = ble_gap_adv_set_fields(&adv_fields);
- TEST_ASSERT(rc == BLE_HS_EMSGSIZE);
-}
-
-TEST_SUITE(ble_hs_adv_test_suite)
-{
- tu_suite_set_post_test_cb(ble_hs_test_util_post_test, NULL);
-
- ble_hs_adv_test_case_flags();
- ble_hs_adv_test_case_user();
- ble_hs_adv_test_case_user_rsp();
- ble_hs_adv_test_case_user_full_payload();
-}
-
-int
-ble_hs_adv_test_all(void)
-{
- ble_hs_adv_test_suite();
-
- return tu_any_failed;
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/host/src/test/ble_hs_conn_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_conn_test.c b/net/nimble/host/src/test/ble_hs_conn_test.c
deleted file mode 100644
index c957446..0000000
--- a/net/nimble/host/src/test/ble_hs_conn_test.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <stddef.h>
-#include <errno.h>
-#include <string.h>
-#include "testutil/testutil.h"
-#include "nimble/hci_common.h"
-#include "host/ble_hs_adv.h"
-#include "host/ble_hs_test.h"
-#include "ble_hs_test_util.h"
-
-static int
-ble_hs_conn_test_util_any()
-{
- struct ble_hs_conn *conn;
-
- ble_hs_lock();
- conn = ble_hs_conn_first();
- ble_hs_unlock();
-
- return conn != NULL;
-}
-
-TEST_CASE(ble_hs_conn_test_direct_connect_success)
-{
- struct hci_le_conn_complete evt;
- struct ble_l2cap_chan *chan;
- struct ble_hs_conn *conn;
- uint8_t addr[6] = { 1, 2, 3, 4, 5, 6 };
- int rc;
-
- ble_hs_test_util_init();
-
- /* Ensure no current or pending connections. */
- TEST_ASSERT(!ble_gap_master_in_progress());
- TEST_ASSERT(!ble_hs_conn_test_util_any());
-
- /* Initiate connection. */
- rc = ble_hs_test_util_connect(BLE_ADDR_TYPE_PUBLIC,
- BLE_ADDR_TYPE_PUBLIC,
- addr, 0, NULL, NULL, NULL, 0);
- TEST_ASSERT(rc == 0);
-
- TEST_ASSERT(ble_gap_master_in_progress());
-
- /* Receive successful connection complete event. */
- memset(&evt, 0, sizeof evt);
- evt.subevent_code = BLE_HCI_LE_SUBEV_CONN_COMPLETE;
- evt.status = BLE_ERR_SUCCESS;
- evt.connection_handle = 2;
- evt.role = BLE_HCI_LE_CONN_COMPLETE_ROLE_MASTER;
- memcpy(evt.peer_addr, addr, 6);
- rc = ble_gap_rx_conn_complete(&evt);
- TEST_ASSERT(rc == 0);
- TEST_ASSERT(!ble_gap_master_in_progress());
-
- ble_hs_lock();
-
- conn = ble_hs_conn_first();
- TEST_ASSERT_FATAL(conn != NULL);
- TEST_ASSERT(conn->bhc_handle == 2);
- TEST_ASSERT(memcmp(conn->bhc_peer_addr, addr, 6) == 0);
-
- chan = ble_hs_conn_chan_find(conn, BLE_L2CAP_CID_ATT);
- TEST_ASSERT_FATAL(chan != NULL);
- TEST_ASSERT(chan->blc_my_mtu == BLE_ATT_MTU_PREFERRED_DFLT);
- TEST_ASSERT(chan->blc_peer_mtu == 0);
- TEST_ASSERT(chan->blc_default_mtu == BLE_ATT_MTU_DFLT);
-
- ble_hs_unlock();
-}
-
-TEST_CASE(ble_hs_conn_test_direct_connectable_success)
-{
- struct hci_le_conn_complete evt;
- struct ble_gap_adv_params adv_params;
- struct ble_l2cap_chan *chan;
- struct ble_hs_conn *conn;
- uint8_t addr[6] = { 1, 2, 3, 4, 5, 6 };
- int rc;
-
- ble_hs_test_util_init();
-
- /* Ensure no current or pending connections. */
- TEST_ASSERT(!ble_gap_master_in_progress());
- TEST_ASSERT(!ble_gap_adv_active());
- TEST_ASSERT(!ble_hs_conn_test_util_any());
-
- /* Initiate advertising. */
- adv_params = ble_hs_test_util_adv_params;
- adv_params.conn_mode = BLE_GAP_CONN_MODE_DIR;
- rc = ble_hs_test_util_adv_start(BLE_ADDR_TYPE_PUBLIC, BLE_ADDR_TYPE_PUBLIC,
- addr, &adv_params, NULL, NULL, 0, 0);
- TEST_ASSERT(rc == 0);
-
- TEST_ASSERT(!ble_gap_master_in_progress());
- TEST_ASSERT(ble_gap_adv_active());
-
- /* Receive successful connection complete event. */
- memset(&evt, 0, sizeof evt);
- evt.subevent_code = BLE_HCI_LE_SUBEV_CONN_COMPLETE;
- evt.status = BLE_ERR_SUCCESS;
- evt.connection_handle = 2;
- evt.role = BLE_HCI_LE_CONN_COMPLETE_ROLE_SLAVE;
- memcpy(evt.peer_addr, addr, 6);
- rc = ble_gap_rx_conn_complete(&evt);
- TEST_ASSERT(rc == 0);
- TEST_ASSERT(!ble_gap_master_in_progress());
- TEST_ASSERT(!ble_gap_adv_active());
-
- ble_hs_lock();
-
- conn = ble_hs_conn_first();
- TEST_ASSERT_FATAL(conn != NULL);
- TEST_ASSERT(conn->bhc_handle == 2);
- TEST_ASSERT(memcmp(conn->bhc_peer_addr, addr, 6) == 0);
-
- chan = ble_hs_conn_chan_find(conn, BLE_L2CAP_CID_ATT);
- TEST_ASSERT_FATAL(chan != NULL);
- TEST_ASSERT(chan->blc_my_mtu == BLE_ATT_MTU_PREFERRED_DFLT);
- TEST_ASSERT(chan->blc_peer_mtu == 0);
- TEST_ASSERT(chan->blc_default_mtu == BLE_ATT_MTU_DFLT);
-
- ble_hs_unlock();
-}
-
-TEST_CASE(ble_hs_conn_test_undirect_connectable_success)
-{
- struct ble_hs_adv_fields adv_fields;
- struct hci_le_conn_complete evt;
- struct ble_gap_adv_params adv_params;
- struct ble_l2cap_chan *chan;
- struct ble_hs_conn *conn;
- uint8_t addr[6] = { 1, 2, 3, 4, 5, 6 };
- int rc;
-
- ble_hs_test_util_init();
-
- /* Ensure no current or pending connections. */
- TEST_ASSERT(!ble_gap_master_in_progress());
- TEST_ASSERT(!ble_gap_adv_active());
- TEST_ASSERT(!ble_hs_conn_test_util_any());
-
- /* Initiate advertising. */
- memset(&adv_fields, 0, sizeof adv_fields);
- adv_fields.tx_pwr_lvl_is_present = 1;
- rc = ble_gap_adv_set_fields(&adv_fields);
- TEST_ASSERT_FATAL(rc == 0);
-
- adv_params = ble_hs_test_util_adv_params;
- adv_params.conn_mode = BLE_GAP_CONN_MODE_UND;
- rc = ble_hs_test_util_adv_start(BLE_ADDR_TYPE_PUBLIC, BLE_ADDR_TYPE_PUBLIC,
- addr, &adv_params, NULL, NULL, 0, 0);
- TEST_ASSERT(rc == 0);
-
- TEST_ASSERT(!ble_gap_master_in_progress());
- TEST_ASSERT(ble_gap_adv_active());
-
- /* Receive successful connection complete event. */
- memset(&evt, 0, sizeof evt);
- evt.subevent_code = BLE_HCI_LE_SUBEV_CONN_COMPLETE;
- evt.status = BLE_ERR_SUCCESS;
- evt.connection_handle = 2;
- evt.role = BLE_HCI_LE_CONN_COMPLETE_ROLE_SLAVE;
- memcpy(evt.peer_addr, addr, 6);
- rc = ble_gap_rx_conn_complete(&evt);
- TEST_ASSERT(rc == 0);
- TEST_ASSERT(!ble_gap_master_in_progress());
- TEST_ASSERT(!ble_gap_adv_active());
-
- ble_hs_lock();
-
- conn = ble_hs_conn_first();
- TEST_ASSERT_FATAL(conn != NULL);
- TEST_ASSERT(conn->bhc_handle == 2);
- TEST_ASSERT(memcmp(conn->bhc_peer_addr, addr, 6) == 0);
-
- chan = ble_hs_conn_chan_find(conn, BLE_L2CAP_CID_ATT);
- TEST_ASSERT_FATAL(chan != NULL);
- TEST_ASSERT(chan->blc_my_mtu == BLE_ATT_MTU_PREFERRED_DFLT);
- TEST_ASSERT(chan->blc_peer_mtu == 0);
- TEST_ASSERT(chan->blc_default_mtu == BLE_ATT_MTU_DFLT);
-
- ble_hs_unlock();
-}
-
-TEST_SUITE(conn_suite)
-{
- tu_suite_set_post_test_cb(ble_hs_test_util_post_test, NULL);
-
- ble_hs_conn_test_direct_connect_success();
- ble_hs_conn_test_direct_connectable_success();
- ble_hs_conn_test_undirect_connectable_success();
-}
-
-int
-ble_hs_conn_test_all(void)
-{
- conn_suite();
-
- return tu_any_failed;
-}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/host/src/test/ble_hs_hci_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_hci_test.c b/net/nimble/host/src/test/ble_hs_hci_test.c
deleted file mode 100644
index 21184b8..0000000
--- a/net/nimble/host/src/test/ble_hs_hci_test.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <stddef.h>
-#include <errno.h>
-#include <string.h>
-#include "nimble/hci_common.h"
-#include "nimble/ble_hci_trans.h"
-#include "host/ble_hs_test.h"
-#include "testutil/testutil.h"
-#include "ble_hs_test_util.h"
-
-TEST_CASE(ble_hs_hci_test_event_bad)
-{
- uint8_t *buf;
- int rc;
-
- /*** Invalid event code. */
- buf = ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_EVT_HI);
- TEST_ASSERT_FATAL(buf != NULL);
-
- buf[0] = 0xff;
- buf[1] = 0;
- rc = ble_hs_hci_evt_process(buf);
- TEST_ASSERT(rc == BLE_HS_ENOTSUP);
-}
-
-TEST_CASE(ble_hs_hci_test_rssi)
-{
- uint8_t params[BLE_HCI_READ_RSSI_ACK_PARAM_LEN];
- uint16_t opcode;
- int8_t rssi;
- int rc;
-
- opcode = ble_hs_hci_util_opcode_join(BLE_HCI_OGF_STATUS_PARAMS,
- BLE_HCI_OCF_RD_RSSI);
-
- /*** Success. */
- /* Connection handle. */
- htole16(params + 0, 1);
-
- /* RSSI. */
- params[2] = -8;
-
- ble_hs_test_util_set_ack_params(opcode, 0, params, sizeof params);
-
- rc = ble_hs_hci_util_read_rssi(1, &rssi);
- TEST_ASSERT_FATAL(rc == 0);
- TEST_ASSERT(rssi == -8);
-
- /*** Failure: incorrect connection handle. */
- htole16(params + 0, 99);
-
- ble_hs_test_util_set_ack_params(opcode, 0, params, sizeof params);
-
- rc = ble_hs_hci_util_read_rssi(1, &rssi);
- TEST_ASSERT(rc == BLE_HS_ECONTROLLER);
-
- /*** Failure: params too short. */
- ble_hs_test_util_set_ack_params(opcode, 0, params, sizeof params - 1);
- rc = ble_hs_hci_util_read_rssi(1, &rssi);
- TEST_ASSERT(rc == BLE_HS_ECONTROLLER);
-
- /*** Failure: params too long. */
- ble_hs_test_util_set_ack_params(opcode, 0, params, sizeof params + 1);
- rc = ble_hs_hci_util_read_rssi(1, &rssi);
- TEST_ASSERT(rc == BLE_HS_ECONTROLLER);
-}
-
-TEST_SUITE(ble_hs_hci_suite)
-{
- tu_suite_set_post_test_cb(ble_hs_test_util_post_test, NULL);
-
- ble_hs_hci_test_event_bad();
- ble_hs_hci_test_rssi();
-}
-
-int
-ble_hs_hci_test_all(void)
-{
- ble_hs_hci_suite();
- return tu_any_failed;
-}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/d98ddc1c/net/nimble/host/src/test/ble_hs_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_test.c b/net/nimble/host/src/test/ble_hs_test.c
deleted file mode 100644
index 3bc468e..0000000
--- a/net/nimble/host/src/test/ble_hs_test.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include "os/os.h"
-#include "nimble/hci_common.h"
-#include "host/ble_hs_test.h"
-#include "testutil/testutil.h"
-#include "ble_hs_test_util.h"
-
-#ifdef MYNEWT_SELFTEST
-
-int
-main(int argc, char **argv)
-{
- tu_config.tc_print_results = 1;
- tu_parse_args(argc, argv);
-
- tu_init();
-
- ble_att_clt_test_all();
- ble_att_svr_test_all();
- ble_gap_test_all();
- ble_gatt_conn_test_all();
- ble_gatt_disc_c_test_all();
- ble_gatt_disc_d_test_all();
- ble_gatt_disc_s_test_all();
- ble_gatt_find_s_test_all();
- ble_gatt_read_test_all();
- ble_gatt_write_test_all();
- ble_gatts_notify_test_all();
- ble_gatts_read_test_suite();
- ble_gatts_reg_test_all();
- ble_hs_hci_test_all();
- ble_hs_adv_test_all();
- ble_hs_conn_test_all();
- ble_l2cap_test_all();
- ble_os_test_all();
- ble_sm_test_all();
- ble_uuid_test_all();
-
- return tu_any_failed;
-}
-
-#endif