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