static void test_header_uint32(void) { GObexHeader *header; uint8_t buf[1024]; size_t len; header = g_obex_header_new_uint32(G_OBEX_HDR_CONNECTION, 0x01020304); len = g_obex_header_encode(header, buf, sizeof(buf)); assert_memequal(hdr_connid, sizeof(hdr_connid), buf, len); g_obex_header_free(header); }
static void test_apparam_set_bytes(void) { GObexApparam *apparam; guint8 buf[1024]; gsize len; apparam = g_obex_apparam_set_bytes(NULL, TAG_BYTES, tag_bytes + 2, 255); g_assert(apparam != NULL); len = g_obex_apparam_encode(apparam, buf, sizeof(buf)); assert_memequal(tag_bytes, sizeof(tag_bytes), buf, len); g_obex_apparam_free(apparam); }
static void test_apparam_set_string(void) { GObexApparam *apparam; guint8 buf[1024]; gsize len; apparam = g_obex_apparam_set_string(NULL, TAG_STRING, "ABC"); g_assert(apparam != NULL); len = g_obex_apparam_encode(apparam, buf, sizeof(buf)); assert_memequal(tag_string, sizeof(tag_string), buf, len); g_obex_apparam_free(apparam); }
static void test_apparam_set_uint64(void) { GObexApparam *apparam; guint8 buf[1024]; gsize len; apparam = g_obex_apparam_set_uint64(NULL, TAG_U64, 0x0102030405060708); g_assert(apparam != NULL); len = g_obex_apparam_encode(apparam, buf, sizeof(buf)); assert_memequal(tag_uint64, sizeof(tag_uint64), buf, len); g_obex_apparam_free(apparam); }
static void test_header_bytes(void) { GObexHeader *header; uint8_t buf[1024], data[] = { 1, 2, 3, 4 }; size_t len; header = g_obex_header_new_bytes(G_OBEX_HDR_BODY, data, sizeof(data)); g_assert(header != NULL); len = g_obex_header_encode(header, buf, sizeof(buf)); assert_memequal(hdr_body, sizeof(hdr_body), buf, len); g_obex_header_free(header); }
static void test_header_name_umlaut(void) { GObexHeader *header; uint8_t buf[1024]; size_t len; header = g_obex_header_new_unicode(G_OBEX_HDR_NAME, "åäö"); g_assert(header != NULL); len = g_obex_header_encode(header, buf, sizeof(buf)); assert_memequal(hdr_name_umlaut, sizeof(hdr_name_umlaut), buf, len); g_obex_header_free(header); }
static void test_header_uint8(void) { GObexHeader *header; uint8_t buf[1024]; size_t len; header = g_obex_header_new_uint8(G_OBEX_HDR_ACTION, 0xab); g_assert(header != NULL); len = g_obex_header_encode(header, buf, sizeof(buf)); assert_memequal(hdr_actionid, sizeof(hdr_actionid), buf, len); g_obex_header_free(header); }
static GObexApparam *parse_and_decode(const void *data, gsize size) { GObexApparam *apparam; guint8 encoded[1024]; gsize len; apparam = g_obex_apparam_decode(data, size); g_assert(apparam != NULL); len = g_obex_apparam_encode(apparam, encoded, sizeof(encoded)); assert_memequal(data, size, encoded, len); return apparam; }
static void test_apparam_get_bytes(void) { GObexApparam *apparam; const uint8_t *data; gsize len; gboolean ret; apparam = parse_and_decode(tag_bytes, sizeof(tag_bytes)); ret = g_obex_apparam_get_bytes(apparam, TAG_BYTES, &data, &len); g_assert(ret == TRUE); assert_memequal(tag_bytes + 2, sizeof(tag_bytes) - 2, data, len); g_obex_apparam_free(apparam); }
static void test_header_encode_body(void) { GObexHeader *header; guint8 expected[] = { 1, 2, 3, 4}; const guint8 *buf; size_t len; gboolean ret; header = parse_and_encode(hdr_body, sizeof(hdr_body)); ret = g_obex_header_get_bytes(header, &buf, &len); g_assert(ret == TRUE); assert_memequal(expected, sizeof(expected), buf, len); g_obex_header_free(header); }
static GObexHeader *parse_and_encode(uint8_t *buf, size_t buf_len) { GObexHeader *header; uint8_t encoded[1024]; size_t len; GError *err = NULL; header = g_obex_header_decode(buf, buf_len, G_OBEX_DATA_REF, &len, &err); g_assert_no_error(err); g_assert_cmpuint(len, ==, buf_len); len = g_obex_header_encode(header, encoded, sizeof(encoded)); assert_memequal(buf, buf_len, encoded, len); return header; }
static void test_encode_on_demand(void) { GObexPacket *pkt; uint8_t buf[255]; gssize len; pkt = g_obex_packet_new(G_OBEX_OP_PUT, FALSE, G_OBEX_HDR_INVALID); g_obex_packet_add_body(pkt, get_body_data, NULL); len = g_obex_packet_encode(pkt, buf, sizeof(buf)); if (len < 0) { g_printerr("Encoding failed: %s\n", g_strerror(-len)); g_assert_not_reached(); } assert_memequal(pkt_put_body, sizeof(pkt_put_body), buf, len); g_obex_packet_free(pkt); }
static void test_header_apparam(void) { GObexHeader *header; GObexApparam *apparam; uint8_t buf[1024]; size_t len; apparam = g_obex_apparam_set_uint32(NULL, 0, 0x01020304); g_assert(apparam != NULL); header = g_obex_header_new_apparam(apparam); g_assert(header != NULL); len = g_obex_header_encode(header, buf, sizeof(buf)); assert_memequal(hdr_apparam, sizeof(hdr_apparam), buf, len); g_obex_apparam_free(apparam); g_obex_header_free(header); }
static void test_decode_encode(void) { GObexPacket *pkt; GError *err = NULL; uint8_t buf[255]; gssize len; pkt = g_obex_packet_decode(pkt_put_action, sizeof(pkt_put_action), 0, G_OBEX_DATA_REF, &err); g_assert_no_error(err); len = g_obex_packet_encode(pkt, buf, sizeof(buf)); if (len < 0) { g_printerr("Encoding failed: %s\n", g_strerror(-len)); g_assert_not_reached(); } assert_memequal(pkt_put_action, sizeof(pkt_put_action), buf, len); g_obex_packet_free(pkt); }
static void test_create_args(void) { GObexPacket *pkt; guint8 buf[255], body[] = { 0x00, 0x01, 0x02, 0x03, 0x04 }; gssize len; pkt = g_obex_packet_new(G_OBEX_OP_PUT, FALSE, G_OBEX_HDR_CONNECTION, 0x01020304, G_OBEX_HDR_TYPE, "foo/bar", strlen("foo/bar") + 1, G_OBEX_HDR_NAME, "file.txt", G_OBEX_HDR_ACTION, 0xab, G_OBEX_HDR_BODY, body, sizeof(body), G_OBEX_HDR_INVALID); g_assert(pkt != NULL); len = g_obex_packet_encode(pkt, buf, sizeof(buf)); g_assert(len > 0); assert_memequal(pkt_put_long, sizeof(pkt_put_long), buf, len); g_obex_packet_free(pkt); }
static void test_decode_connect(void) { GObexPacket *pkt; GObexHeader *header; GError *err = NULL; gboolean ret; const guint8 *buf; guint8 target[] = { 0xab, 0xcd }; gsize len; pkt = g_obex_packet_decode(pkt_connect, sizeof(pkt_connect), 4, G_OBEX_DATA_REF, &err); g_assert_no_error(err); g_assert(pkt != NULL); header = g_obex_packet_get_header(pkt, G_OBEX_HDR_TARGET); g_assert(header != NULL); ret = g_obex_header_get_bytes(header, &buf, &len); g_assert(ret == TRUE); assert_memequal(target, sizeof(target), buf, len); g_obex_packet_free(pkt); }