]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/ntp/tests/libntp/tsafememcmp.c
Fix ntp multiple vulnerabilities.
[FreeBSD/releng/10.2.git] / contrib / ntp / tests / libntp / tsafememcmp.c
1 #include "config.h"
2
3 #include "ntp_stdlib.h"
4 #include "isc/string.h"
5
6 #include "unity.h"
7
8 /* Basisc test for timingsafe_memcmp() */
9
10 void test_Empty(void);
11 void test_Equal(void);
12 void test_FirstByte(void);
13 void test_LastByte(void);
14 void test_MiddleByte(void);
15 void test_MiddleByteUpLo(void);
16
17 void test_Empty(void)
18 {
19         static const char dummy[1];
20         TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(NULL , NULL , 0));
21         TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(dummy, dummy, 0));
22 }
23
24 void test_Equal(void)
25 {
26         static const char dummy[2][4] = {
27                 "blob", "blob"
28         };
29         TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(dummy[0],
30                                               dummy[1],
31                                               sizeof(dummy[0])));
32 }
33
34 void test_FirstByte(void)
35 {
36         static const char dummy[2][4] = {
37                 "Blob", "Clob"
38         };
39         TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
40                                                dummy[1],
41                                                sizeof(dummy[0])));
42         TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
43                                                dummy[0],
44                                                sizeof(dummy[0])));
45 }
46
47 void test_LastByte(void)
48 {
49         static const char dummy[2][4] = {
50                 "Blob", "Bloc"
51         };
52         TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
53                                                dummy[1],
54                                                sizeof(dummy[0])));
55         TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
56                                                dummy[0],
57                                                sizeof(dummy[0])));
58 }
59
60 void test_MiddleByte(void)
61 {
62         static const char dummy[2][4] = {
63                 "Blob", "Blpb"
64         };
65         TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
66                                                dummy[1],
67                                                sizeof(dummy[0])));
68         TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
69                                                dummy[0],
70                                                sizeof(dummy[0])));
71 }
72
73 void test_MiddleByteUpLo(void)
74 {
75         static const char dummy[2][4] = {
76                 "Blob", "Blpa"
77         };
78         TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
79                                                dummy[1],
80                                                sizeof(dummy[0])));
81         TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
82                                                dummy[0],
83                                                sizeof(dummy[0])));
84 }
85