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
10void test_Empty(void);
11void test_Equal(void);
12void test_FirstByte(void);
13void test_LastByte(void);
14void test_MiddleByte(void);
15void test_MiddleByteUpLo(void);
16
17void 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
24void 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
34void 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
47void 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
60void 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
73void 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
86