1/* $NetBSD: hextoint.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 "ntp_calendar.h" 7#include "ntp_fp.h" 8 9#include "unity.h" 10 11void test_SingleDigit(void); 12void test_MultipleDigits(void); 13void test_MaxUnsigned(void); 14void test_Overflow(void); 15void test_IllegalChar(void); 16 17 18void test_SingleDigit(void) { 19 const char *str = "a"; // 10 decimal 20 u_long actual; 21 22 TEST_ASSERT_TRUE(hextoint(str, &actual)); 23 TEST_ASSERT_EQUAL(10, actual); 24} 25 26void test_MultipleDigits(void) { 27 const char *str = "8F3"; // 2291 decimal 28 u_long actual; 29 30 TEST_ASSERT_TRUE(hextoint(str, &actual)); 31 TEST_ASSERT_EQUAL(2291, actual); 32} 33 34void test_MaxUnsigned(void) { 35 const char *str = "ffffffff"; // 4294967295 decimal 36 u_long actual; 37 38 TEST_ASSERT_TRUE(hextoint(str, &actual)); 39 TEST_ASSERT_EQUAL(4294967295UL, actual); 40} 41 42void test_Overflow(void) { 43 const char *str = "100000000"; // Overflow by 1 44 u_long actual; 45 46 TEST_ASSERT_FALSE(hextoint(str, &actual)); 47} 48 49void test_IllegalChar(void) { 50 const char *str = "5gb"; // Illegal character g 51 u_long actual; 52 53 TEST_ASSERT_FALSE(hextoint(str, &actual)); 54} 55 56