connection_t: split compression_level/log_level into two fields
[tinc] / test / unit / test_dropin.c
1 #include "unittest.h"
2
3 static const char buf[3];
4
5 static void test_min(void **state) {
6         (void)state;
7
8         assert_int_equal(-1, MIN(1, -1));
9         assert_int_equal(-2, MIN(1 + 2 * 3, 3 - 2 * 5 / 2));
10
11         assert_ptr_equal(buf[0], MIN(buf[1], buf[0]));
12 }
13
14 static void test_max(void **state) {
15         (void)state;
16
17         assert_int_equal(1, MAX(1, -1));
18         assert_int_equal(4, MAX(1 + 3 - 3 / 4 * 5, 10 / 5 + 2 - 2));
19
20         assert_ptr_equal(buf[1], MAX(buf[1], buf[0]));
21 }
22
23 static void test_clamp(void **state) {
24         (void)state;
25
26         assert_int_equal(10, CLAMP(INT_MAX, -10, 10));
27         assert_int_equal(-10, CLAMP(INT_MIN, -10, 10));
28         assert_int_equal(7, CLAMP(3 + 4, 6, 8));
29
30         assert_int_equal(5, CLAMP(-1000, 5, 5));
31         assert_int_equal(5, CLAMP(0,     5, 5));
32         assert_int_equal(5, CLAMP(1000,  5, 5));
33
34         assert_ptr_equal(buf[1], CLAMP(buf[2], buf[0], buf[1]));
35 }
36
37 int main(void) {
38         const struct CMUnitTest tests[] = {
39                 cmocka_unit_test(test_min),
40                 cmocka_unit_test(test_max),
41                 cmocka_unit_test(test_clamp),
42         };
43         return cmocka_run_group_tests(tests, NULL, NULL);
44 }