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