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 "stream_expectations.h" 10 11 void assert_uint8(cbor_item_t* item, uint8_t num) { 12 assert_true(cbor_isa_uint(item)); 13 assert_true(cbor_int_get_width(item) == CBOR_INT_8); 14 assert_true(cbor_get_uint8(item) == num); 15 } 16 17 void assert_uint16(cbor_item_t* item, uint16_t num) { 18 assert_true(cbor_isa_uint(item)); 19 assert_true(cbor_int_get_width(item) == CBOR_INT_16); 20 assert_true(cbor_get_uint16(item) == num); 21 } 22 23 void assert_uint32(cbor_item_t* item, uint32_t num) { 24 assert_true(cbor_isa_uint(item)); 25 assert_true(cbor_int_get_width(item) == CBOR_INT_32); 26 assert_true(cbor_get_uint32(item) == num); 27 } 28 29 void assert_uint64(cbor_item_t* item, uint64_t num) { 30 assert_true(cbor_isa_uint(item)); 31 assert_true(cbor_int_get_width(item) == CBOR_INT_64); 32 assert_true(cbor_get_uint64(item) == num); 33 } 34 35 void assert_decoder_result(size_t read, enum cbor_decoder_status status, 36 struct cbor_decoder_result result) { 37 assert_true(read == result.read); 38 assert_true(status == result.status); 39 assert_true(0 == result.required); 40 } 41 42 void assert_decoder_result_nedata(size_t required, 43 struct cbor_decoder_result result) { 44 assert_true(0 == result.read); 45 assert_true(CBOR_DECODER_NEDATA == result.status); 46 assert_int_equal((int)required, (int)result.required); 47 } 48 49 void assert_minimum_input_size(size_t expected, cbor_data data) { 50 for (size_t available = 1; available < expected; available++) { 51 assert_decoder_result_nedata(expected, decode(data, 1)); 52 } 53 } 54