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 12 void test_Empty(void); 13 void test_Equal(void); 14 void test_FirstByte(void); 15 void test_LastByte(void); 16 void test_MiddleByte(void); 17 void test_MiddleByteUpLo(void); 18 19 void 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 26 void 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 36 void 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 49 void 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 62 void 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 75 void 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