xref: /netbsd-src/external/bsd/ntp/dist/tests/libntp/atoint.c (revision cdfa2a7ef92791ba9db70a584a1d904730e6fb46)
1*cdfa2a7eSchristos /*	$NetBSD: atoint.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 "unity.h"
8f17b710fSchristos 
9a6f3f22fSchristos void test_RegularPositive(void);
10a6f3f22fSchristos void test_RegularNegative(void);
11a6f3f22fSchristos void test_PositiveOverflowBoundary(void);
12a6f3f22fSchristos void test_NegativeOverflowBoundary(void);
13a6f3f22fSchristos void test_PositiveOverflowBig(void);
14a6f3f22fSchristos void test_IllegalCharacter(void);
15a6f3f22fSchristos 
16a6f3f22fSchristos 
17a6f3f22fSchristos 
test_RegularPositive(void)18f17b710fSchristos void test_RegularPositive(void) {
19f17b710fSchristos         const char *str = "17";
20f17b710fSchristos         long val;
21f17b710fSchristos 
22f17b710fSchristos         TEST_ASSERT_TRUE(atoint(str, &val));
23f17b710fSchristos         TEST_ASSERT_EQUAL(17, val);
24f17b710fSchristos }
25f17b710fSchristos 
test_RegularNegative(void)26f17b710fSchristos void test_RegularNegative(void) {
27f17b710fSchristos         const char *str = "-20";
28f17b710fSchristos         long val;
29f17b710fSchristos 
30f17b710fSchristos         TEST_ASSERT_TRUE(atoint(str, &val));
31f17b710fSchristos         TEST_ASSERT_EQUAL(-20, val);
32f17b710fSchristos }
33f17b710fSchristos 
test_PositiveOverflowBoundary(void)34f17b710fSchristos void test_PositiveOverflowBoundary(void) {
35f17b710fSchristos         const char *str = "2147483648";
36f17b710fSchristos         long val;
37f17b710fSchristos 
38f17b710fSchristos         TEST_ASSERT_FALSE(atoint(str, &val));
39f17b710fSchristos }
40f17b710fSchristos 
test_NegativeOverflowBoundary(void)41f17b710fSchristos void test_NegativeOverflowBoundary(void) {
42f17b710fSchristos         const char *str = "-2147483649";
43f17b710fSchristos         long val;
44f17b710fSchristos 
45f17b710fSchristos         TEST_ASSERT_FALSE(atoint(str, &val));
46f17b710fSchristos }
47f17b710fSchristos 
test_PositiveOverflowBig(void)48f17b710fSchristos void test_PositiveOverflowBig(void) {
49f17b710fSchristos         const char *str = "2300000000";
50f17b710fSchristos         long val;
51f17b710fSchristos 
52f17b710fSchristos         TEST_ASSERT_FALSE(atoint(str, &val));
53f17b710fSchristos }
54f17b710fSchristos 
test_IllegalCharacter(void)55f17b710fSchristos void test_IllegalCharacter(void) {
56f17b710fSchristos         const char *str = "4500l";
57f17b710fSchristos         long val;
58f17b710fSchristos 
59f17b710fSchristos         TEST_ASSERT_FALSE(atoint(str, &val));
60f17b710fSchristos }
61f17b710fSchristos 
62f17b710fSchristos 
63