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 #include "cbor.h" 10 11 unsigned char buffer[512]; 12 13 static void test_embedded_string_start(void **_CBOR_UNUSED(_state)) { 14 assert_size_equal(1, cbor_encode_string_start(1, buffer, 512)); 15 assert_memory_equal(buffer, ((unsigned char[]){0x61}), 1); 16 } 17 18 static void test_string_start(void **_CBOR_UNUSED(_state)) { 19 assert_size_equal(5, cbor_encode_string_start(1000000, buffer, 512)); 20 assert_memory_equal(buffer, ((unsigned char[]){0x7A, 0x00, 0x0F, 0x42, 0x40}), 21 5); 22 } 23 24 static void test_indef_string_start(void **_CBOR_UNUSED(_state)) { 25 assert_size_equal(1, cbor_encode_indef_string_start(buffer, 512)); 26 assert_size_equal(0, cbor_encode_indef_string_start(buffer, 0)); 27 assert_memory_equal(buffer, ((unsigned char[]){0x7F}), 1); 28 } 29 30 int main(void) { 31 const struct CMUnitTest tests[] = { 32 cmocka_unit_test(test_embedded_string_start), 33 cmocka_unit_test(test_string_start), 34 cmocka_unit_test(test_indef_string_start)}; 35 return cmocka_run_group_tests(tests, NULL, NULL); 36 } 37