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)18f17b710fSchristosvoid 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)26f17b710fSchristosvoid 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)34f17b710fSchristosvoid test_PositiveOverflowBoundary(void) { 35f17b710fSchristos const char *str = "2147483648"; 36f17b710fSchristos long val; 37f17b710fSchristos 38f17b710fSchristos TEST_ASSERT_FALSE(atoint(str, &val)); 39f17b710fSchristos } 40f17b710fSchristos test_NegativeOverflowBoundary(void)41f17b710fSchristosvoid test_NegativeOverflowBoundary(void) { 42f17b710fSchristos const char *str = "-2147483649"; 43f17b710fSchristos long val; 44f17b710fSchristos 45f17b710fSchristos TEST_ASSERT_FALSE(atoint(str, &val)); 46f17b710fSchristos } 47f17b710fSchristos test_PositiveOverflowBig(void)48f17b710fSchristosvoid test_PositiveOverflowBig(void) { 49f17b710fSchristos const char *str = "2300000000"; 50f17b710fSchristos long val; 51f17b710fSchristos 52f17b710fSchristos TEST_ASSERT_FALSE(atoint(str, &val)); 53f17b710fSchristos } 54f17b710fSchristos test_IllegalCharacter(void)55f17b710fSchristosvoid test_IllegalCharacter(void) { 56f17b710fSchristos const char *str = "4500l"; 57f17b710fSchristos long val; 58f17b710fSchristos 59f17b710fSchristos TEST_ASSERT_FALSE(atoint(str, &val)); 60f17b710fSchristos } 61f17b710fSchristos 62f17b710fSchristos 63