1298770Sdelphij#include "config.h"
2298770Sdelphij
3298770Sdelphij#include "ntp_stdlib.h"
4298770Sdelphij#include "isc/string.h"
5298770Sdelphij
6298770Sdelphij#include "unity.h"
7298770Sdelphij
8298770Sdelphij/* Basisc test for timingsafe_memcmp() */
9298770Sdelphij
10298770Sdelphijvoid test_Empty(void);
11298770Sdelphijvoid test_Equal(void);
12298770Sdelphijvoid test_FirstByte(void);
13298770Sdelphijvoid test_LastByte(void);
14298770Sdelphijvoid test_MiddleByte(void);
15298770Sdelphijvoid test_MiddleByteUpLo(void);
16298770Sdelphij
17298770Sdelphijvoid test_Empty(void)
18298770Sdelphij{
19298770Sdelphij	static const char dummy[1];
20298770Sdelphij	TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(NULL , NULL , 0));
21298770Sdelphij	TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(dummy, dummy, 0));
22298770Sdelphij}
23298770Sdelphij
24298770Sdelphijvoid test_Equal(void)
25298770Sdelphij{
26298770Sdelphij	static const char dummy[2][4] = {
27298770Sdelphij		"blob", "blob"
28298770Sdelphij	};
29298770Sdelphij	TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(dummy[0],
30298770Sdelphij					      dummy[1],
31298770Sdelphij					      sizeof(dummy[0])));
32298770Sdelphij}
33298770Sdelphij
34298770Sdelphijvoid test_FirstByte(void)
35298770Sdelphij{
36298770Sdelphij	static const char dummy[2][4] = {
37298770Sdelphij		"Blob", "Clob"
38298770Sdelphij	};
39298770Sdelphij	TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
40298770Sdelphij					       dummy[1],
41298770Sdelphij					       sizeof(dummy[0])));
42298770Sdelphij	TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
43298770Sdelphij					       dummy[0],
44298770Sdelphij					       sizeof(dummy[0])));
45298770Sdelphij}
46298770Sdelphij
47298770Sdelphijvoid test_LastByte(void)
48298770Sdelphij{
49298770Sdelphij	static const char dummy[2][4] = {
50298770Sdelphij		"Blob", "Bloc"
51298770Sdelphij	};
52298770Sdelphij	TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
53298770Sdelphij					       dummy[1],
54298770Sdelphij					       sizeof(dummy[0])));
55298770Sdelphij	TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
56298770Sdelphij					       dummy[0],
57298770Sdelphij					       sizeof(dummy[0])));
58298770Sdelphij}
59298770Sdelphij
60298770Sdelphijvoid test_MiddleByte(void)
61298770Sdelphij{
62298770Sdelphij	static const char dummy[2][4] = {
63298770Sdelphij		"Blob", "Blpb"
64298770Sdelphij	};
65298770Sdelphij	TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
66298770Sdelphij					       dummy[1],
67298770Sdelphij					       sizeof(dummy[0])));
68298770Sdelphij	TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
69298770Sdelphij					       dummy[0],
70298770Sdelphij					       sizeof(dummy[0])));
71298770Sdelphij}
72298770Sdelphij
73298770Sdelphijvoid test_MiddleByteUpLo(void)
74298770Sdelphij{
75298770Sdelphij	static const char dummy[2][4] = {
76298770Sdelphij		"Blob", "Blpa"
77298770Sdelphij	};
78298770Sdelphij	TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
79298770Sdelphij					       dummy[1],
80298770Sdelphij					       sizeof(dummy[0])));
81298770Sdelphij	TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
82298770Sdelphij					       dummy[0],
83298770Sdelphij					       sizeof(dummy[0])));
84298770Sdelphij}
85298770Sdelphij
86