xref: /netbsd-src/external/bsd/ntp/dist/tests/libntp/octtoint.c (revision cdfa2a7ef92791ba9db70a584a1d904730e6fb46)
1*cdfa2a7eSchristos /*	$NetBSD: octtoint.c,v 1.2 2020/05/25 20:47:36 christos Exp $	*/
2067f5680Schristos 
3f17b710fSchristos #include "config.h"
4f17b710fSchristos 
5f17b710fSchristos #include "ntp_stdlib.h"
6f17b710fSchristos 
7f17b710fSchristos #include "unity.h"
8f17b710fSchristos 
9a6f3f22fSchristos 
10a6f3f22fSchristos void test_SingleDigit(void);
11a6f3f22fSchristos void test_MultipleDigits(void);
12a6f3f22fSchristos void test_Zero(void);
13a6f3f22fSchristos void test_MaximumUnsigned32bit(void);
14a6f3f22fSchristos void test_Overflow(void);
15a6f3f22fSchristos void test_IllegalCharacter(void);
16a6f3f22fSchristos void test_IllegalDigit(void);
17a6f3f22fSchristos 
18a6f3f22fSchristos 
194c290c01Schristos void
test_SingleDigit(void)204c290c01Schristos test_SingleDigit(void)
214c290c01Schristos {
22f17b710fSchristos 	const char* str = "5";
23f17b710fSchristos 	u_long actual;
24f17b710fSchristos 
25f17b710fSchristos 	TEST_ASSERT_TRUE(octtoint(str, &actual));
26f17b710fSchristos 	TEST_ASSERT_EQUAL(5, actual);
274c290c01Schristos 
284c290c01Schristos 	return;
29f17b710fSchristos }
30f17b710fSchristos 
314c290c01Schristos void
test_MultipleDigits(void)324c290c01Schristos test_MultipleDigits(void)
334c290c01Schristos {
34f17b710fSchristos 	const char* str = "271";
35f17b710fSchristos 	u_long actual;
36f17b710fSchristos 
37f17b710fSchristos 	TEST_ASSERT_TRUE(octtoint(str, &actual));
38f17b710fSchristos 	TEST_ASSERT_EQUAL(185, actual);
39f17b710fSchristos 
404c290c01Schristos 	return;
41f17b710fSchristos }
42f17b710fSchristos 
434c290c01Schristos void
test_Zero(void)444c290c01Schristos test_Zero(void)
454c290c01Schristos {
46f17b710fSchristos 	const char* str = "0";
47f17b710fSchristos 	u_long actual;
48f17b710fSchristos 
49f17b710fSchristos 	TEST_ASSERT_TRUE(octtoint(str, &actual));
50f17b710fSchristos 	TEST_ASSERT_EQUAL(0, actual);
51f17b710fSchristos 
524c290c01Schristos 	return;
53f17b710fSchristos }
54f17b710fSchristos 
554c290c01Schristos void
test_MaximumUnsigned32bit(void)564c290c01Schristos test_MaximumUnsigned32bit(void)
574c290c01Schristos {
58f17b710fSchristos 	const char* str = "37777777777";
59f17b710fSchristos 	u_long actual;
60f17b710fSchristos 
61f17b710fSchristos 	TEST_ASSERT_TRUE(octtoint(str, &actual));
62f17b710fSchristos 	TEST_ASSERT_EQUAL(4294967295UL, actual);
63f17b710fSchristos 
644c290c01Schristos 	return;
65f17b710fSchristos }
66f17b710fSchristos 
674c290c01Schristos void
test_Overflow(void)684c290c01Schristos test_Overflow(void)
694c290c01Schristos {
70f17b710fSchristos 	const char* str = "40000000000";
71f17b710fSchristos 	u_long actual;
72f17b710fSchristos 
73f17b710fSchristos 	TEST_ASSERT_FALSE(octtoint(str, &actual));
74f17b710fSchristos 
754c290c01Schristos 	return;
76f17b710fSchristos }
77f17b710fSchristos 
784c290c01Schristos void
test_IllegalCharacter(void)794c290c01Schristos test_IllegalCharacter(void)
804c290c01Schristos {
81f17b710fSchristos 	const char* str = "5ac2";
82f17b710fSchristos 	u_long actual;
83f17b710fSchristos 
84f17b710fSchristos 	TEST_ASSERT_FALSE(octtoint(str, &actual));
85f17b710fSchristos 
864c290c01Schristos 	return;
87f17b710fSchristos }
88f17b710fSchristos 
894c290c01Schristos void
test_IllegalDigit(void)904c290c01Schristos test_IllegalDigit(void)
914c290c01Schristos {
92f17b710fSchristos 	const char* str = "5283";
93f17b710fSchristos 	u_long actual;
94f17b710fSchristos 
95f17b710fSchristos 	TEST_ASSERT_FALSE(octtoint(str, &actual));
96f17b710fSchristos 
974c290c01Schristos 	return;
98f17b710fSchristos }
99