diff options
author | Johan Hedberg <johan.hedberg@intel.com> | 2011-07-05 12:33:57 +0300 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-12-04 22:21:59 +0100 |
commit | 714abdfc725dfb94e049e25674437541b9770c98 (patch) | |
tree | 39baba110d8de090a76dcf997b8b1eb36a246c19 /unit/test-gobex-header.c | |
parent | 2e49852cceb9fa6e1f72f01f488184635a940564 (diff) | |
download | bluez-714abdfc725dfb94e049e25674437541b9770c98.tar.gz |
gobex: Make on-demand header callbacks able to fail cleanly
Diffstat (limited to 'unit/test-gobex-header.c')
-rw-r--r-- | unit/test-gobex-header.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/unit/test-gobex-header.c b/unit/test-gobex-header.c index 61536e268..bf69abb48 100644 --- a/unit/test-gobex-header.c +++ b/unit/test-gobex-header.c @@ -130,7 +130,7 @@ static void test_header_uint32(void) g_obex_header_free(header); } -static guint16 get_body_data(GObexHeader *header, void *buf, gsize len, +static gssize get_body_data(GObexHeader *header, void *buf, gsize len, gpointer user_data) { uint8_t body_data[] = { 1, 2, 3, 4 }; @@ -156,6 +156,27 @@ static void test_header_on_demand(void) g_obex_header_free(header); } +static gssize get_body_data_fail(GObexHeader *header, void *buf, gsize len, + gpointer user_data) +{ + return -1; +} + +static void test_header_on_demand_fail(void) +{ + GObexHeader *header; + uint8_t buf[1024]; + gssize len; + + header = g_obex_header_new_on_demand(G_OBEX_HDR_ID_BODY, + get_body_data_fail, NULL); + + len = g_obex_header_encode(header, buf, sizeof(buf)); + g_assert_cmpint(len, ==, -1); + + g_obex_header_free(header); +} + static GObexHeader *parse_and_encode(uint8_t *buf, size_t buf_len) { GObexHeader *header; @@ -485,6 +506,8 @@ int main(int argc, char *argv[]) g_test_add_func("/gobex/test_header_uint32", test_header_uint32); g_test_add_func("/gobex/test_header_on_demand", test_header_on_demand); + g_test_add_func("/gobex/test_header_on_demand_fail", + test_header_on_demand_fail); g_test_run(); |