1284990Scy#include "config.h"
2284990Scy
3284990Scy#include "ntp_stdlib.h"
4284990Scy
5284990Scy#include "unity.h"
6284990Scy
7289999Sglebius
8289999Sglebiusvoid test_SingleDigit(void);
9289999Sglebiusvoid test_MultipleDigits(void);
10289999Sglebiusvoid test_Zero(void);
11289999Sglebiusvoid test_MaximumUnsigned32bit(void);
12289999Sglebiusvoid test_Overflow(void);
13289999Sglebiusvoid test_IllegalCharacter(void);
14289999Sglebiusvoid test_IllegalDigit(void);
15289999Sglebius
16289999Sglebius
17293893Sglebiusvoid
18293893Sglebiustest_SingleDigit(void)
19293893Sglebius{
20284990Scy	const char* str = "5";
21284990Scy	u_long actual;
22284990Scy
23293893Sglebius	TEST_ASSERT_TRUE(octtoint(str, &actual));
24284990Scy	TEST_ASSERT_EQUAL(5, actual);
25293893Sglebius
26293893Sglebius	return;
27284990Scy}
28284990Scy
29293893Sglebiusvoid
30293893Sglebiustest_MultipleDigits(void)
31293893Sglebius{
32284990Scy	const char* str = "271";
33284990Scy	u_long actual;
34284990Scy
35293893Sglebius	TEST_ASSERT_TRUE(octtoint(str, &actual));
36284990Scy	TEST_ASSERT_EQUAL(185, actual);
37284990Scy
38293893Sglebius	return;
39284990Scy}
40284990Scy
41293893Sglebiusvoid
42293893Sglebiustest_Zero(void)
43293893Sglebius{
44284990Scy	const char* str = "0";
45284990Scy	u_long actual;
46284990Scy
47293893Sglebius	TEST_ASSERT_TRUE(octtoint(str, &actual));
48284990Scy	TEST_ASSERT_EQUAL(0, actual);
49284990Scy
50293893Sglebius	return;
51284990Scy}
52284990Scy
53293893Sglebiusvoid
54293893Sglebiustest_MaximumUnsigned32bit(void)
55293893Sglebius{
56284990Scy	const char* str = "37777777777";
57284990Scy	u_long actual;
58284990Scy
59293893Sglebius	TEST_ASSERT_TRUE(octtoint(str, &actual));
60284990Scy	TEST_ASSERT_EQUAL(4294967295UL, actual);
61284990Scy
62293893Sglebius	return;
63284990Scy}
64284990Scy
65293893Sglebiusvoid
66293893Sglebiustest_Overflow(void)
67293893Sglebius{
68284990Scy	const char* str = "40000000000";
69284990Scy	u_long actual;
70284990Scy
71293893Sglebius	TEST_ASSERT_FALSE(octtoint(str, &actual));
72284990Scy
73293893Sglebius	return;
74284990Scy}
75284990Scy
76293893Sglebiusvoid
77293893Sglebiustest_IllegalCharacter(void)
78293893Sglebius{
79284990Scy	const char* str = "5ac2";
80284990Scy	u_long actual;
81284990Scy
82293893Sglebius	TEST_ASSERT_FALSE(octtoint(str, &actual));
83284990Scy
84293893Sglebius	return;
85284990Scy}
86284990Scy
87293893Sglebiusvoid
88293893Sglebiustest_IllegalDigit(void)
89293893Sglebius{
90284990Scy	const char* str = "5283";
91284990Scy	u_long actual;
92284990Scy
93293893Sglebius	TEST_ASSERT_FALSE(octtoint(str, &actual));
94284990Scy
95293893Sglebius	return;
96284990Scy}
97