xref: /freebsd/contrib/libcbor/test/assertions.h (revision 5d3e7166f6a0187fa3f8831b16a06bd9955c21ff)
1*5d3e7166SEd Maste // Headers needed by cmocka -- must be imported first
210ff414cSEd Maste #include <setjmp.h>
310ff414cSEd Maste #include <stdarg.h>
410ff414cSEd Maste #include <stddef.h>
5*5d3e7166SEd Maste #include <stdint.h>
610ff414cSEd Maste 
710ff414cSEd Maste #include <cmocka.h>
810ff414cSEd Maste 
910ff414cSEd Maste #include "cbor.h"
1010ff414cSEd Maste 
1110ff414cSEd Maste #ifndef ASSERTIONS_H_
1210ff414cSEd Maste #define ASSERTIONS_H_
1310ff414cSEd Maste 
1410ff414cSEd Maste void assert_uint8(cbor_item_t* item, uint8_t num);
1510ff414cSEd Maste void assert_uint16(cbor_item_t* item, uint16_t num);
1610ff414cSEd Maste void assert_uint32(cbor_item_t* item, uint32_t num);
1710ff414cSEd Maste void assert_uint64(cbor_item_t* item, uint64_t num);
1810ff414cSEd Maste 
19*5d3e7166SEd Maste // TODO: Fix "Yoda" parameter ordering of asserts
20*5d3e7166SEd Maste /** Verify the `actual_result.status` and `actual_result.status`. */
21*5d3e7166SEd Maste void assert_decoder_result(size_t expected_bytes_read,
22*5d3e7166SEd Maste                            enum cbor_decoder_status expected_status,
23*5d3e7166SEd Maste                            struct cbor_decoder_result actual_result);
2410ff414cSEd Maste 
2510ff414cSEd Maste /**
2610ff414cSEd Maste  * Assert that the result is set to CBOR_DECODER_NEDATA with the given
2710ff414cSEd Maste  * `cbor_decoder_result.required` value.
2810ff414cSEd Maste  */
29*5d3e7166SEd Maste void assert_decoder_result_nedata(size_t expected_bytes_required,
30*5d3e7166SEd Maste                                   struct cbor_decoder_result actual_result);
3110ff414cSEd Maste 
3210ff414cSEd Maste /**
3310ff414cSEd Maste  * Check that the streaming decoder returns a correct CBOR_DECODER_NEDATA
3410ff414cSEd Maste  * result for all inputs from data[0..1] through data[0..(expected-1)].
3510ff414cSEd Maste  */
3610ff414cSEd Maste void assert_minimum_input_size(size_t expected, cbor_data data);
3710ff414cSEd Maste 
38*5d3e7166SEd Maste /** Check the equality of two `size_t`s. */
39*5d3e7166SEd Maste void _assert_size_equal(size_t actual, size_t expected, const char* src_file,
40*5d3e7166SEd Maste                         int src_line);
41*5d3e7166SEd Maste #define assert_size_equal(actual, expected) \
42*5d3e7166SEd Maste   _assert_size_equal(actual, expected, __FILE__, __LINE__)
43*5d3e7166SEd Maste 
4410ff414cSEd Maste #endif
45