1 /*
2  * Copyright (c) 2014-2020 Pavel Kalvoda <[email protected]>
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 
assert_uint8(cbor_item_t * item,uint8_t num)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 
assert_uint16(cbor_item_t * item,uint16_t num)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 
assert_uint32(cbor_item_t * item,uint32_t num)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 
assert_uint64(cbor_item_t * item,uint64_t num)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 
assert_decoder_result(size_t read,enum cbor_decoder_status status,struct cbor_decoder_result result)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 
assert_decoder_result_nedata(size_t required,struct cbor_decoder_result result)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 
assert_minimum_input_size(size_t expected,cbor_data data)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