xref: /netbsd-src/external/bsd/ntp/dist/tests/libntp/tsafememcmp.c (revision cdfa2a7ef92791ba9db70a584a1d904730e6fb46)
1*cdfa2a7eSchristos /*	$NetBSD: tsafememcmp.c,v 1.2 2020/05/25 20:47:36 christos Exp $	*/
2067f5680Schristos 
3ae49d4a4Schristos #include "config.h"
4ae49d4a4Schristos 
5ae49d4a4Schristos #include "ntp_stdlib.h"
6ae49d4a4Schristos #include "isc/string.h"
7ae49d4a4Schristos 
8ae49d4a4Schristos #include "unity.h"
9ae49d4a4Schristos 
10ae49d4a4Schristos /* Basisc test for timingsafe_memcmp() */
11ae49d4a4Schristos 
12ae49d4a4Schristos void test_Empty(void);
13ae49d4a4Schristos void test_Equal(void);
14ae49d4a4Schristos void test_FirstByte(void);
15ae49d4a4Schristos void test_LastByte(void);
16ae49d4a4Schristos void test_MiddleByte(void);
17ae49d4a4Schristos void test_MiddleByteUpLo(void);
18ae49d4a4Schristos 
test_Empty(void)19ae49d4a4Schristos void test_Empty(void)
20ae49d4a4Schristos {
21ae49d4a4Schristos 	static const char dummy[1];
22ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(NULL , NULL , 0));
23ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(dummy, dummy, 0));
24ae49d4a4Schristos }
25ae49d4a4Schristos 
test_Equal(void)26ae49d4a4Schristos void test_Equal(void)
27ae49d4a4Schristos {
28ae49d4a4Schristos 	static const char dummy[2][4] = {
29ae49d4a4Schristos 		"blob", "blob"
30ae49d4a4Schristos 	};
31ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT(0, isc_tsmemcmp(dummy[0],
32ae49d4a4Schristos 					      dummy[1],
33ae49d4a4Schristos 					      sizeof(dummy[0])));
34ae49d4a4Schristos }
35ae49d4a4Schristos 
test_FirstByte(void)36ae49d4a4Schristos void test_FirstByte(void)
37ae49d4a4Schristos {
38ae49d4a4Schristos 	static const char dummy[2][4] = {
39ae49d4a4Schristos 		"Blob", "Clob"
40ae49d4a4Schristos 	};
41ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
42ae49d4a4Schristos 					       dummy[1],
43ae49d4a4Schristos 					       sizeof(dummy[0])));
44ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
45ae49d4a4Schristos 					       dummy[0],
46ae49d4a4Schristos 					       sizeof(dummy[0])));
47ae49d4a4Schristos }
48ae49d4a4Schristos 
test_LastByte(void)49ae49d4a4Schristos void test_LastByte(void)
50ae49d4a4Schristos {
51ae49d4a4Schristos 	static const char dummy[2][4] = {
52ae49d4a4Schristos 		"Blob", "Bloc"
53ae49d4a4Schristos 	};
54ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
55ae49d4a4Schristos 					       dummy[1],
56ae49d4a4Schristos 					       sizeof(dummy[0])));
57ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
58ae49d4a4Schristos 					       dummy[0],
59ae49d4a4Schristos 					       sizeof(dummy[0])));
60ae49d4a4Schristos }
61ae49d4a4Schristos 
test_MiddleByte(void)62ae49d4a4Schristos void test_MiddleByte(void)
63ae49d4a4Schristos {
64ae49d4a4Schristos 	static const char dummy[2][4] = {
65ae49d4a4Schristos 		"Blob", "Blpb"
66ae49d4a4Schristos 	};
67ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
68ae49d4a4Schristos 					       dummy[1],
69ae49d4a4Schristos 					       sizeof(dummy[0])));
70ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
71ae49d4a4Schristos 					       dummy[0],
72ae49d4a4Schristos 					       sizeof(dummy[0])));
73ae49d4a4Schristos }
74ae49d4a4Schristos 
test_MiddleByteUpLo(void)75ae49d4a4Schristos void test_MiddleByteUpLo(void)
76ae49d4a4Schristos {
77ae49d4a4Schristos 	static const char dummy[2][4] = {
78ae49d4a4Schristos 		"Blob", "Blpa"
79ae49d4a4Schristos 	};
80ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT(-1, isc_tsmemcmp(dummy[0],
81ae49d4a4Schristos 					       dummy[1],
82ae49d4a4Schristos 					       sizeof(dummy[0])));
83ae49d4a4Schristos 	TEST_ASSERT_EQUAL_INT( 1, isc_tsmemcmp(dummy[1],
84ae49d4a4Schristos 					       dummy[0],
85ae49d4a4Schristos 					       sizeof(dummy[0])));
86ae49d4a4Schristos }
87ae49d4a4Schristos 
88