mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-27 06:04:32 +08:00
test-eir: Run tests using bt_ad
This enables the same tests done with eir_data using bt_ad.
This commit is contained in:
parent
bc2ab4ba3c
commit
b8f916b7ee
@ -21,6 +21,7 @@
|
|||||||
#include "lib/sdp.h"
|
#include "lib/sdp.h"
|
||||||
#include "src/shared/tester.h"
|
#include "src/shared/tester.h"
|
||||||
#include "src/shared/util.h"
|
#include "src/shared/util.h"
|
||||||
|
#include "src/shared/ad.h"
|
||||||
#include "src/eir.h"
|
#include "src/eir.h"
|
||||||
|
|
||||||
struct test_data {
|
struct test_data {
|
||||||
@ -539,6 +540,54 @@ static void print_debug(const char *str, void *user_data)
|
|||||||
tester_debug("%s%s", prefix, str);
|
tester_debug("%s%s", prefix, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_ad(const struct test_data *test, struct eir_data *eir)
|
||||||
|
{
|
||||||
|
struct bt_ad *ad;
|
||||||
|
GSList *list;
|
||||||
|
|
||||||
|
ad = bt_ad_new_with_data(test->eir_size, test->eir_data);
|
||||||
|
g_assert(ad);
|
||||||
|
|
||||||
|
g_assert_cmpint(bt_ad_get_flags(ad), ==, test->flags);
|
||||||
|
g_assert_cmpstr(bt_ad_get_name(ad), ==, test->name);
|
||||||
|
g_assert_cmpint(bt_ad_get_tx_power(ad), ==, test->tx_power);
|
||||||
|
|
||||||
|
if (test->uuid) {
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; test->uuid[i]; i++) {
|
||||||
|
bt_uuid_t uuid;
|
||||||
|
|
||||||
|
bt_string_to_uuid(&uuid, test->uuid[i]);
|
||||||
|
g_assert(bt_ad_has_service_uuid(ad, &uuid));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (list = eir->msd_list; list; list = list->next) {
|
||||||
|
struct eir_msd *msd = list->data;
|
||||||
|
struct bt_ad_manufacturer_data adm;
|
||||||
|
|
||||||
|
adm.manufacturer_id = msd->company;
|
||||||
|
adm.data = msd->data;
|
||||||
|
adm.len = msd->data_len;
|
||||||
|
|
||||||
|
g_assert(bt_ad_has_manufacturer_data(ad, &adm));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (list = eir->sd_list; list; list = list->next) {
|
||||||
|
struct eir_sd *sd = list->data;
|
||||||
|
struct bt_ad_service_data ads;
|
||||||
|
|
||||||
|
bt_string_to_uuid(&ads.uuid, sd->uuid);
|
||||||
|
ads.data = sd->data;
|
||||||
|
ads.len = sd->data_len;
|
||||||
|
|
||||||
|
g_assert(bt_ad_has_service_data(ad, &ads));
|
||||||
|
}
|
||||||
|
|
||||||
|
bt_ad_unref(ad);
|
||||||
|
}
|
||||||
|
|
||||||
static void test_parsing(gconstpointer data)
|
static void test_parsing(gconstpointer data)
|
||||||
{
|
{
|
||||||
const struct test_data *test = data;
|
const struct test_data *test = data;
|
||||||
@ -599,6 +648,8 @@ static void test_parsing(gconstpointer data)
|
|||||||
"Service Data:");
|
"Service Data:");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test_ad(data, &eir);
|
||||||
|
|
||||||
eir_data_free(&eir);
|
eir_data_free(&eir);
|
||||||
|
|
||||||
tester_test_passed();
|
tester_test_passed();
|
||||||
|
Loading…
Reference in New Issue
Block a user