Skip to content

Commit

Permalink
Add tests for huge item sizes
Browse files Browse the repository at this point in the history
  • Loading branch information
PJK committed Dec 28, 2022
1 parent fad2443 commit 3e7fa52
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions test/cbor_serialize_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,30 @@ static void test_serialize_indefinite_bytestring(void **_CBOR_UNUSED(_state)) {
cbor_decref(&item);
}

static void test_serialize_4b_bytestring(void **_CBOR_UNUSED(_state)) {
cbor_item_t *item = cbor_new_definite_bytestring();

// Fake having a huge chunk of data
unsigned char *data = malloc(1);
cbor_bytestring_set_handle(item, data, UINT32_MAX);

assert_int_equal(cbor_serialize(item, buffer, 512), 0);
assert_int_equal(cbor_serialized_size(item), (uint64_t)UINT32_MAX + 5);
cbor_decref(&item);
}

static void test_serialize_8b_bytestring(void **_CBOR_UNUSED(_state)) {
cbor_item_t *item = cbor_new_definite_bytestring();

// Fake having a huge chunk of data
unsigned char *data = malloc(1);
cbor_bytestring_set_handle(item, data, (uint64_t)UINT32_MAX + 1);

assert_int_equal(cbor_serialize(item, buffer, 512), 0);
assert_int_equal(cbor_serialized_size(item), (uint64_t)UINT32_MAX + 1 + 9);
cbor_decref(&item);
}

static void test_serialize_definite_string(void **_CBOR_UNUSED(_state)) {
cbor_item_t *item = cbor_new_definite_string();
unsigned char *data = malloc(12);
Expand Down Expand Up @@ -361,6 +385,8 @@ int main(void) {
cmocka_unit_test(test_serialize_negint64),
cmocka_unit_test(test_serialize_definite_bytestring),
cmocka_unit_test(test_serialize_indefinite_bytestring),
cmocka_unit_test(test_serialize_4b_bytestring),
cmocka_unit_test(test_serialize_8b_bytestring),
cmocka_unit_test(test_serialize_definite_string),
cmocka_unit_test(test_serialize_indefinite_string),
cmocka_unit_test(test_serialize_definite_array),
Expand Down

0 comments on commit 3e7fa52

Please sign in to comment.