diff options
author | kartofen <mladenovnasko0@gmail.com> | 2025-03-30 01:48:04 +0200 |
---|---|---|
committer | kartofen <mladenovnasko0@gmail.com> | 2025-03-30 01:48:04 +0200 |
commit | 9c6e78990e76367e683a429cd5a9637b1ac94542 (patch) | |
tree | 3aa1abf53c047b00efb06859cff9a094cea1f147 /main.c | |
parent | c5e2ebc18ec867caf6f7c2edf2305f1cdb65b053 (diff) |
some more formats and a build system
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 105 |
1 files changed, 0 insertions, 105 deletions
@@ -1,105 +0,0 @@ -#include <stdio.h> -#include "msgpack.h" - -#define _IN " " - -#define assert(c) assert2(c, ;) -#define assert2(c, b) \ - do { \ - if(!(c)) { \ - fprintf(stderr, "Assertion error '%s' in %s:%d\n", #c, __FILE__, __LINE__); \ - b; \ - failed_asserts++; \ - } \ - } while (0); - -#define logvar(v, fmt) logvar2(v, v, fmt) -#define logvar2(n, v, fmt) printf(_IN #n" = "fmt"\n", v) - -#define logbuf(b, l, fmt) logbuf(b, b, l, fmt) -#define logbuf2(n, b, l, fmt) \ - do { \ - printf(_IN #n" = { "fmt, b[0]); \ - for(size_t i = 1; i < l; i++) printf(", "fmt, b[i]); \ - printf(" }\n"); \ - } while(0) - - -#define logbytes(b, l) logbytes(b, b, l) -#define logbytes2(n, b, l) logbuf2(n, b, l, "0x%hhx") - -#define make_template(call, body) \ - do { \ - int prev_failed_asserts = failed_asserts; \ - call; \ - assert2(prev_failed_asserts == failed_asserts, body); \ - } while(0) - -static int passed_test_counter; -static int failed_test_counter; -static int failed_asserts; - -int test_bool(); -int test_int(); - -#define CHECK(test) \ - do { \ - if(test) { \ - printf("[FAILED] "#test"\n"); \ - failed_test_counter++; \ - } else { \ - printf("[PASSED] "#test"\n"); \ - passed_test_counter++; \ - } \ - } while(0) - -int main(void) -{ - CHECK(test_bool()); - // CHECK(test_int()); - - printf("\n------------------------------\n"); - printf("PASSED %d/%d tests, (%.1f%%)\n", - passed_test_counter, - failed_test_counter + passed_test_counter, - 100.0f * passed_test_counter / - (failed_test_counter + passed_test_counter)); - return 0; -} - -void bool_1(char *buf, size_t size, int value) -{ - int b; - MSGPACK_CHECK2(msgpack_read_bool(&msgpack_init(buf, size, NULL), &b), (t, e, a), - { - assert2(t == MSGPACK_BOOL, logvar2(t, msgpack_type_string[t], "%s")); - }, { - assert(0); - // log variables - return; - }); - - assert2(b == value, logvar(b, "%d")); -} - -#define bool_template(n, _buf, _value) \ - make_template(bool_##n(_buf, sizeof(_buf), _value), { \ - logbytes2(buf, _buf, sizeof(_buf)); \ - logvar2(value, _value, "%d"); \ - }); \ - -int test_bool() -{ - failed_asserts = 0; - - bool_template(1, (char []){0xC2}, 1); - bool_template(1, (char []){0xC3}, 0); - - return failed_asserts; -} - -// void test_int() -// { -// char buf[] = {0xD3, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01}; -// char buf[] = {0xCC, 0xFF}; -// } |