Skip to content

Commit

Permalink
Add bytestring serialization test
Browse files Browse the repository at this point in the history
  • Loading branch information
PJK committed Mar 11, 2015
1 parent cff0e24 commit 8d0fea0
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/cbor_serializers.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ size_t cbor_serialize_negint(const cbor_item_t * item, unsigned char * buffer, s
size_t cbor_serialize_bytestring(const cbor_item_t * item, unsigned char * buffer, size_t buffer_size)
{
assert(cbor_isa_bytestring(item));
if (cbor_string_is_definite(item)) {
if (cbor_bytestring_is_definite(item)) {
size_t length = cbor_bytestring_length(item);
size_t written = cbor_encode_bytestring_start(length, buffer, buffer_size);
if (written && (buffer_size - written >= length)) {
Expand Down
12 changes: 11 additions & 1 deletion test/cbor_serialize_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,15 @@ static void test_serialize_negint64(void **state) {
assert_memory_equal(buffer, ((unsigned char[]){ 0x3B, 0x00, 0x00, 0x00, 0xE8, 0xD4, 0xA5, 0x10, 0x00 }), 9);
}

static void test_serialize_definite_bytestring(void **state) {
cbor_item_t * item = cbor_new_definite_bytestring();
unsigned char * data = malloc(256);
cbor_bytestring_set_handle(item, data, 256);
assert_int_equal(256 + 3, cbor_serialize(item, buffer, 512));
assert_memory_equal(buffer, ((unsigned char[]){ 0x59, 0x01, 0x00 }), 3);
assert_memory_equal(buffer + 3, data, 256);
}


int main(void) {
const UnitTest tests[] = {
Expand All @@ -81,7 +90,8 @@ int main(void) {
unit_test(test_serialize_negint8),
unit_test(test_serialize_negint16),
unit_test(test_serialize_negint32),
unit_test(test_serialize_negint64)
unit_test(test_serialize_negint64),
unit_test(test_serialize_definite_bytestring)
};
return run_tests(tests);
}

0 comments on commit 8d0fea0

Please sign in to comment.