1290001Sglebius#include "config.h" 2290001Sglebius 3290001Sglebius#include "ntp_stdlib.h" 4290001Sglebius#include "ntp_calendar.h" 5290001Sglebius#include "ntp_fp.h" 6290001Sglebius 7290001Sglebius#include "unity.h" 8290001Sglebius 9290001Sglebiusvoid test_SingleDigit(void); 10290001Sglebiusvoid test_MultipleDigits(void); 11290001Sglebiusvoid test_MaxUnsigned(void); 12290001Sglebiusvoid test_Overflow(void); 13290001Sglebiusvoid test_IllegalChar(void); 14290001Sglebius 15290001Sglebius 16290001Sglebiusvoid test_SingleDigit(void) { 17290001Sglebius const char *str = "a"; // 10 decimal 18290001Sglebius u_long actual; 19290001Sglebius 20290001Sglebius TEST_ASSERT_TRUE(hextoint(str, &actual)); 21290001Sglebius TEST_ASSERT_EQUAL(10, actual); 22290001Sglebius} 23290001Sglebius 24290001Sglebiusvoid test_MultipleDigits(void) { 25290001Sglebius const char *str = "8F3"; // 2291 decimal 26290001Sglebius u_long actual; 27290001Sglebius 28290001Sglebius TEST_ASSERT_TRUE(hextoint(str, &actual)); 29290001Sglebius TEST_ASSERT_EQUAL(2291, actual); 30290001Sglebius} 31290001Sglebius 32290001Sglebiusvoid test_MaxUnsigned(void) { 33290001Sglebius const char *str = "ffffffff"; // 4294967295 decimal 34290001Sglebius u_long actual; 35290001Sglebius 36290001Sglebius TEST_ASSERT_TRUE(hextoint(str, &actual)); 37290001Sglebius TEST_ASSERT_EQUAL(4294967295UL, actual); 38290001Sglebius} 39290001Sglebius 40290001Sglebiusvoid test_Overflow(void) { 41290001Sglebius const char *str = "100000000"; // Overflow by 1 42290001Sglebius u_long actual; 43290001Sglebius 44290001Sglebius TEST_ASSERT_FALSE(hextoint(str, &actual)); 45290001Sglebius} 46290001Sglebius 47290001Sglebiusvoid test_IllegalChar(void) { 48290001Sglebius const char *str = "5gb"; // Illegal character g 49290001Sglebius u_long actual; 50290001Sglebius 51290001Sglebius TEST_ASSERT_FALSE(hextoint(str, &actual)); 52290001Sglebius} 53290001Sglebius 54