diff --git a/unit/test-gattrib.c b/unit/test-gattrib.c
index 5ee8953..1e106be 100644
--- a/unit/test-gattrib.c
+++ b/unit/test-gattrib.c
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,
{ },
};
struct test_pdu followed_ind_pdus[] = { PDU_IND_DATA, { } };
+ struct test_pdu *current_pdu;
/*
* Without registering anything, should be able to ignore everything but
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");
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");
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");
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)