Coverage Report

Created: 2024-01-26 01:52

/work/auto_tests/version_test.c
Line
Count
Source
1
#include "../toxcore/tox.h"
2
#include "check_compat.h"
3
4
#define CHECK(major, minor, patch, expected)                            \
5
156
  do_check(TOX_VERSION_MAJOR, TOX_VERSION_MINOR, TOX_VERSION_PATCH,     \
6
156
           major, minor, patch,                                         \
7
156
           TOX_VERSION_IS_API_COMPATIBLE(major, minor, patch), expected)
8
9
static void do_check(int lib_major, int lib_minor, int lib_patch,
10
                     int cli_major, int cli_minor, int cli_patch,
11
                     bool actual, bool expected)
12
156
{
13
156
    ck_assert_msg(actual == expected,
14
156
                  "Client version %d.%d.%d is%s compatible with library version %d.%d.%d, but it should%s be\n",
15
156
                  cli_major, cli_minor, cli_patch, actual ? "" : " not",
16
156
                  lib_major, lib_minor, lib_patch, expected ? "" : " not");
17
156
}
18
19
#undef TOX_VERSION_MAJOR
20
#undef TOX_VERSION_MINOR
21
#undef TOX_VERSION_PATCH
22
23
int main(void)
24
4
{
25
60
#define TOX_VERSION_MAJOR 0
26
52
#define TOX_VERSION_MINOR 0
27
36
#define TOX_VERSION_PATCH 4
28
    // Tox versions from 0.0.* are only compatible with themselves.
29
4
    CHECK(0, 0, 0, false);
30
4
    CHECK(0, 0, 3, false);
31
4
    CHECK(0, 0, 4, true);
32
4
    CHECK(0, 0, 5, false);
33
4
    CHECK(1, 0, 4, false);
34
4
#undef TOX_VERSION_MAJOR
35
4
#undef TOX_VERSION_MINOR
36
4
#undef TOX_VERSION_PATCH
37
38
156
#define TOX_VERSION_MAJOR 0
39
116
#define TOX_VERSION_MINOR 1
40
52
#define TOX_VERSION_PATCH 4
41
    // Tox versions from 0.1.* are only compatible with themselves or 0.1.<*
42
4
    CHECK(0, 0, 0, false);
43
4
    CHECK(0, 0, 4, false);
44
4
    CHECK(0, 0, 5, false);
45
4
    CHECK(0, 1, 0, true);
46
4
    CHECK(0, 1, 4, true);
47
4
    CHECK(0, 1, 5, false);
48
4
    CHECK(0, 2, 0, false);
49
4
    CHECK(0, 2, 4, false);
50
4
    CHECK(0, 2, 5, false);
51
4
    CHECK(1, 0, 0, false);
52
4
    CHECK(1, 0, 4, false);
53
4
    CHECK(1, 0, 5, false);
54
4
    CHECK(1, 1, 4, false);
55
4
#undef TOX_VERSION_MAJOR
56
4
#undef TOX_VERSION_MINOR
57
4
#undef TOX_VERSION_PATCH
58
59
84
#define TOX_VERSION_MAJOR 1
60
32
#define TOX_VERSION_MINOR 0
61
32
#define TOX_VERSION_PATCH 4
62
    // Beyond 0.*.* Tox is comfortable with any lower version within their major
63
4
    CHECK(0, 0, 4, false);
64
4
    CHECK(1, 0, 0, true);
65
4
    CHECK(1, 0, 1, true);
66
4
    CHECK(1, 0, 4, true);
67
4
    CHECK(1, 0, 5, false);
68
4
    CHECK(1, 1, 0, false);
69
4
    CHECK(2, 0, 0, false);
70
4
    CHECK(2, 0, 4, false);
71
4
#undef TOX_VERSION_MAJOR
72
4
#undef TOX_VERSION_MINOR
73
4
#undef TOX_VERSION_PATCH
74
75
132
#define TOX_VERSION_MAJOR 1
76
52
#define TOX_VERSION_MINOR 1
77
52
#define TOX_VERSION_PATCH 4
78
4
    CHECK(0, 0, 4, false);
79
4
    CHECK(1, 0, 0, true);
80
4
    CHECK(1, 0, 4, true);
81
4
    CHECK(1, 0, 5, true);
82
4
    CHECK(1, 1, 0, true);
83
4
    CHECK(1, 1, 1, true);
84
4
    CHECK(1, 1, 4, true);
85
4
    CHECK(1, 1, 5, false);
86
4
    CHECK(1, 2, 0, false);
87
4
    CHECK(1, 2, 4, false);
88
4
    CHECK(1, 2, 5, false);
89
4
    CHECK(2, 0, 0, false);
90
4
    CHECK(2, 1, 4, false);
91
4
#undef TOX_VERSION_MAJOR
92
4
#undef TOX_VERSION_MINOR
93
4
#undef TOX_VERSION_PATCH
94
95
4
    return 0;
96
4
}