xref: /freebsd/contrib/libcbor/test/assertions.c (revision 81ad6265)
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