1/* 2 * Copyright (c) 2014-2020 Pavel Kalvoda <me@pavelkalvoda.com> 3 * 4 * libcbor is free software; you can redistribute it and/or modify 5 * it under the terms of the MIT license. See LICENSE for details. 6 */ 7 8#include "assertions.h" 9 10#include "cbor.h" 11 12unsigned char buffer[512]; 13 14static void test_embedded_bytestring_start(void **_CBOR_UNUSED(_state)) { 15 assert_size_equal(1, cbor_encode_bytestring_start(1, buffer, 512)); 16 assert_memory_equal(buffer, ((unsigned char[]){0x41}), 1); 17} 18 19static void test_bytestring_start(void **_CBOR_UNUSED(_state)) { 20 assert_size_equal(5, cbor_encode_bytestring_start(1000000, buffer, 512)); 21 assert_memory_equal(buffer, ((unsigned char[]){0x5A, 0x00, 0x0F, 0x42, 0x40}), 22 5); 23} 24 25static void test_indef_bytestring_start(void **_CBOR_UNUSED(_state)) { 26 assert_size_equal(0, cbor_encode_indef_bytestring_start(buffer, 0)); 27 assert_size_equal(1, cbor_encode_indef_bytestring_start(buffer, 512)); 28 assert_memory_equal(buffer, ((unsigned char[]){0x5F}), 1); 29} 30 31int main(void) { 32 const struct CMUnitTest tests[] = { 33 cmocka_unit_test(test_embedded_bytestring_start), 34 cmocka_unit_test(test_bytestring_start), 35 cmocka_unit_test(test_indef_bytestring_start)}; 36 return cmocka_run_group_tests(tests, NULL, NULL); 37} 38