BadVPN – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | #include <string.h> |
2 | #include <stdint.h> |
||
3 | #include <stdio.h> |
||
4 | |||
5 | #include <misc/debug.h> |
||
6 | #include <misc/balloc.h> |
||
7 | |||
8 | #include <generated/bproto_bproto_test.h> |
||
9 | |||
10 | int main () |
||
11 | { |
||
12 | uint16_t a = 17501; |
||
13 | uint64_t c = 82688926; |
||
14 | uint16_t d1 = 1517; |
||
15 | uint16_t d2 = 1518; |
||
16 | uint8_t e = 72; |
||
17 | const char *f = "hello world"; |
||
18 | const char *g = "helo"; |
||
19 | |||
20 | // encode message |
||
21 | |||
22 | int len = msg1_SIZEa + msg1_SIZEc + msg1_SIZEd + msg1_SIZEd + msg1_SIZEe + msg1_SIZEf(strlen(f)) + msg1_SIZEg; |
||
23 | |||
24 | uint8_t *msg = (uint8_t *)BAlloc(len); |
||
25 | ASSERT_FORCE(msg) |
||
26 | msg1Writer writer; |
||
27 | msg1Writer_Init(&writer, msg); |
||
28 | msg1Writer_Adda(&writer, a); |
||
29 | msg1Writer_Addc(&writer, c); |
||
30 | msg1Writer_Addd(&writer, d1); |
||
31 | msg1Writer_Addd(&writer, d2); |
||
32 | msg1Writer_Adde(&writer, e); |
||
33 | uint8_t *f_dst = msg1Writer_Addf(&writer, strlen(f)); |
||
34 | memcpy(f_dst, f, strlen(f)); |
||
35 | uint8_t *g_dst = msg1Writer_Addg(&writer); |
||
36 | memcpy(g_dst, g, strlen(g)); |
||
37 | int len2 = msg1Writer_Finish(&writer); |
||
38 | ASSERT_EXECUTE(len2 == len) |
||
39 | |||
40 | // parse message |
||
41 | |||
42 | msg1Parser parser; |
||
43 | ASSERT_EXECUTE(msg1Parser_Init(&parser, msg, len)) |
||
44 | |||
45 | // check parse results |
||
46 | |||
47 | uint16_t p_a; |
||
48 | uint64_t p_c; |
||
49 | uint16_t p_d1; |
||
50 | uint16_t p_d2; |
||
51 | uint8_t p_e; |
||
52 | uint8_t *p_f; |
||
53 | int p_f_len; |
||
54 | uint8_t *p_g; |
||
55 | ASSERT_EXECUTE(msg1Parser_Geta(&parser, &p_a)) |
||
56 | ASSERT_EXECUTE(msg1Parser_Getc(&parser, &p_c)) |
||
57 | ASSERT_EXECUTE(msg1Parser_Getd(&parser, &p_d1)) |
||
58 | ASSERT_EXECUTE(msg1Parser_Getd(&parser, &p_d2)) |
||
59 | ASSERT_EXECUTE(msg1Parser_Gete(&parser, &p_e)) |
||
60 | ASSERT_EXECUTE(msg1Parser_Getf(&parser, &p_f, &p_f_len)) |
||
61 | ASSERT_EXECUTE(msg1Parser_Getg(&parser, &p_g)) |
||
62 | |||
63 | ASSERT(p_a == a) |
||
64 | ASSERT(p_c == c) |
||
65 | ASSERT(p_d1 == d1) |
||
66 | ASSERT(p_d2 == d2) |
||
67 | ASSERT(p_e == e) |
||
68 | ASSERT(p_f_len == strlen(f) && !memcmp(p_f, f, p_f_len)) |
||
69 | ASSERT(!memcmp(p_g, g, strlen(g))) |
||
70 | |||
71 | ASSERT(msg1Parser_GotEverything(&parser)) |
||
72 | |||
73 | BFree(msg); |
||
74 | |||
75 | return 0; |
||
76 | } |