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