summaryrefslogtreecommitdiff
path: root/unit/test-gattrib.c
diff options
context:
space:
mode:
authorMichael Janssen <jamuraa@chromium.org>2014-10-31 11:14:57 -0700
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2014-11-03 17:17:10 +0200
commit2373a2bd53452261eb2519555d5f25f29186bd53 (patch)
treef58d8d693b57ac6c33de7b0d33cf65b95343e02c /unit/test-gattrib.c
parentaa6c286ce155e7ef556d7c58c381357247678801 (diff)
downloadbluez-2373a2bd53452261eb2519555d5f25f29186bd53.tar.gz
unit/gattrib: Check expected PDUs were delivered
Check that the PDUs that we expect to receive when registering for events have been delivered.
Diffstat (limited to 'unit/test-gattrib.c')
-rw-r--r--unit/test-gattrib.c35
1 files changed, 28 insertions, 7 deletions
diff --git a/unit/test-gattrib.c b/unit/test-gattrib.c
index 5ee8953dc..1e106be4b 100644
--- a/unit/test-gattrib.c
+++ b/unit/test-gattrib.c
@@ -407,7 +407,7 @@ static void notify_canary_expect(const guint8 *pdu, guint16 len, gpointer data)
static void test_register(struct context *cxt, gconstpointer user_data)
{
guint reg_id;
- gboolean success;
+ gboolean canceled;
struct test_pdu pdus[] = {
/* Unmatched by any (GATTRIB_ALL_EVENTS) */
PDU_MTU_RESP,
@@ -437,6 +437,7 @@ static void test_register(struct context *cxt, gconstpointer user_data)
{ },
};
struct test_pdu followed_ind_pdus[] = { PDU_IND_DATA, { } };
+ struct test_pdu *current_pdu;
/*
* Without registering anything, should be able to ignore everything but
@@ -449,7 +450,12 @@ static void test_register(struct context *cxt, gconstpointer user_data)
send_test_pdus(cxt, pdus);
- g_attrib_unregister(cxt->att, reg_id);
+ canceled = g_attrib_unregister(cxt->att, reg_id);
+
+ g_assert(canceled);
+
+ for (current_pdu = pdus; current_pdu->valid; current_pdu++)
+ g_assert(current_pdu->received);
if (g_test_verbose())
g_print("ALL_REQS, ALL_HANDLES\r\n");
@@ -460,7 +466,12 @@ static void test_register(struct context *cxt, gconstpointer user_data)
send_test_pdus(cxt, pdus);
- g_attrib_unregister(cxt->att, reg_id);
+ canceled = g_attrib_unregister(cxt->att, reg_id);
+
+ g_assert(canceled);
+
+ for (current_pdu = req_pdus; current_pdu->valid; current_pdu++)
+ g_assert(current_pdu->received);
if (g_test_verbose())
g_print("IND, ALL_HANDLES\r\n");
@@ -471,7 +482,12 @@ static void test_register(struct context *cxt, gconstpointer user_data)
send_test_pdus(cxt, pdus);
- g_attrib_unregister(cxt->att, reg_id);
+ canceled = g_attrib_unregister(cxt->att, reg_id);
+
+ g_assert(canceled);
+
+ for (current_pdu = all_ind_pdus; current_pdu->valid; current_pdu++)
+ g_assert(current_pdu->received);
if (g_test_verbose())
g_print("IND, 0x0014\r\n");
@@ -482,11 +498,16 @@ static void test_register(struct context *cxt, gconstpointer user_data)
send_test_pdus(cxt, pdus);
- g_attrib_unregister(cxt->att, reg_id);
+ canceled = g_attrib_unregister(cxt->att, reg_id);
+
+ g_assert(canceled);
- success = g_attrib_unregister(cxt->att, reg_id);
+ for (current_pdu = followed_ind_pdus; current_pdu->valid; current_pdu++)
+ g_assert(current_pdu->received);
- g_assert(!success);
+ canceled = g_attrib_unregister(cxt->att, reg_id);
+
+ g_assert(!canceled);
}
static void test_buffers(struct context *cxt, gconstpointer unused)