xref: /netbsd-src/external/bsd/ntp/dist/tests/libntp/atouint.c (revision cdfa2a7ef92791ba9db70a584a1d904730e6fb46)
1*cdfa2a7eSchristos /*	$NetBSD: atouint.c,v 1.2 2020/05/25 20:47:36 christos Exp $	*/
2067f5680Schristos 
3f17b710fSchristos #include "config.h"
4f17b710fSchristos 
5f17b710fSchristos #include "ntp_stdlib.h"
6f17b710fSchristos #include "ntp_calendar.h"
7f17b710fSchristos #include "ntp_fp.h"
8f17b710fSchristos 
9f17b710fSchristos #include "unity.h"
10f17b710fSchristos 
11a6f3f22fSchristos void test_RegularPositive(void);
12a6f3f22fSchristos void test_PositiveOverflowBoundary(void);
13a6f3f22fSchristos void test_PositiveOverflowBig(void);
14a6f3f22fSchristos void test_Negative(void);
15a6f3f22fSchristos void test_IllegalChar(void);
16a6f3f22fSchristos 
17a6f3f22fSchristos 
18a6f3f22fSchristos 
test_RegularPositive(void)19a6f3f22fSchristos void test_RegularPositive(void) {
20f17b710fSchristos 	const char *str = "305";
21f17b710fSchristos 	u_long actual;
22f17b710fSchristos 
23f17b710fSchristos 	TEST_ASSERT_TRUE(atouint(str, &actual));
24f17b710fSchristos 	TEST_ASSERT_EQUAL(305, actual);
25f17b710fSchristos }
26f17b710fSchristos 
test_PositiveOverflowBoundary(void)27a6f3f22fSchristos void test_PositiveOverflowBoundary(void) {
28f17b710fSchristos 	const char *str = "4294967296";
29f17b710fSchristos 	u_long actual;
30f17b710fSchristos 
31f17b710fSchristos 	TEST_ASSERT_FALSE(atouint(str, &actual));
32f17b710fSchristos }
33f17b710fSchristos 
test_PositiveOverflowBig(void)34a6f3f22fSchristos void test_PositiveOverflowBig(void) {
35f17b710fSchristos 	const char *str = "8000000000";
36f17b710fSchristos 	u_long actual;
37f17b710fSchristos 
38f17b710fSchristos 	TEST_ASSERT_FALSE(atouint(str, &actual));
39f17b710fSchristos }
40f17b710fSchristos 
test_Negative(void)41a6f3f22fSchristos void test_Negative(void) {
42f17b710fSchristos 	const char *str = "-1";
43f17b710fSchristos 	u_long actual;
44f17b710fSchristos 
45f17b710fSchristos 	TEST_ASSERT_FALSE(atouint(str, &actual));
46f17b710fSchristos }
47f17b710fSchristos 
test_IllegalChar(void)48a6f3f22fSchristos void test_IllegalChar(void) {
49f17b710fSchristos 	const char *str = "50c3";
50f17b710fSchristos 	u_long actual;
51f17b710fSchristos 
52f17b710fSchristos 	TEST_ASSERT_FALSE(atouint(str, &actual));
53f17b710fSchristos }
54