Path: blob/main/contrib/libcbor/test/uint_encoders_test.c
39536 views
/*1* Copyright (c) 2014-2020 Pavel Kalvoda <[email protected]>2*3* libcbor is free software; you can redistribute it and/or modify4* it under the terms of the MIT license. See LICENSE for details.5*/67#include "assertions.h"8#include "cbor.h"910unsigned char buffer[512];1112static void test_embedded_uint8(void **_CBOR_UNUSED(_state)) {13assert_size_equal(1, cbor_encode_uint8(14, buffer, 512));14assert_memory_equal(buffer, (unsigned char[]){0x0E}, 1);15}1617static void test_uint8(void **_CBOR_UNUSED(_state)) {18assert_size_equal(0, cbor_encode_uint8(180, buffer, 1));19assert_size_equal(2, cbor_encode_uint8(255, buffer, 512));20assert_memory_equal(buffer, ((unsigned char[]){0x18, 0xFF}), 2);21}2223static void test_uint16(void **_CBOR_UNUSED(_state)) {24assert_size_equal(0, cbor_encode_uint16(1000, buffer, 2));25assert_size_equal(3, cbor_encode_uint16(1000, buffer, 512));26assert_memory_equal(buffer, ((unsigned char[]){0x19, 0x03, 0xE8}), 3);27}2829static void test_uint32(void **_CBOR_UNUSED(_state)) {30assert_size_equal(0, cbor_encode_uint32(1000000, buffer, 4));31assert_size_equal(5, cbor_encode_uint32(1000000, buffer, 512));32assert_memory_equal(buffer, ((unsigned char[]){0x1A, 0x00, 0x0F, 0x42, 0x40}),335);34}3536static void test_uint64(void **_CBOR_UNUSED(_state)) {37assert_size_equal(0, cbor_encode_uint64(18446744073709551615ULL, buffer, 8));38assert_size_equal(9,39cbor_encode_uint64(18446744073709551615ULL, buffer, 512));40assert_memory_equal(41buffer,42((unsigned char[]){0x1B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}),439);44}4546static void test_unspecified(void **_CBOR_UNUSED(_state)) {47assert_size_equal(9, cbor_encode_uint(18446744073709551615ULL, buffer, 512));48assert_memory_equal(49buffer,50((unsigned char[]){0x1B, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}),519);52assert_size_equal(5, cbor_encode_uint(1000000, buffer, 512));53assert_memory_equal(buffer, ((unsigned char[]){0x1A, 0x00, 0x0F, 0x42, 0x40}),545);55assert_size_equal(3, cbor_encode_uint(1000, buffer, 512));56assert_memory_equal(buffer, ((unsigned char[]){0x19, 0x03, 0xE8}), 3);57assert_size_equal(2, cbor_encode_uint(255, buffer, 512));58assert_memory_equal(buffer, ((unsigned char[]){0x18, 0xFF}), 2);59}6061int main(void) {62const struct CMUnitTest tests[] = {cmocka_unit_test(test_embedded_uint8),63cmocka_unit_test(test_uint8),64cmocka_unit_test(test_uint16),65cmocka_unit_test(test_uint32),66cmocka_unit_test(test_uint64),67cmocka_unit_test(test_unspecified)};68return cmocka_run_group_tests(tests, NULL, NULL);69}707172