diff options
Diffstat (limited to 'tests/libntp/atoint.cpp')
-rw-r--r-- | tests/libntp/atoint.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/libntp/atoint.cpp b/tests/libntp/atoint.cpp new file mode 100644 index 000000000000..371f3fe0a2a1 --- /dev/null +++ b/tests/libntp/atoint.cpp @@ -0,0 +1,48 @@ +#include "libntptest.h" + +class atointTest : public libntptest { +}; + +TEST_F(atointTest, RegularPositive) { + const char *str = "17"; + long val; + + ASSERT_TRUE(atoint(str, &val)); + EXPECT_EQ(17, val); +} + +TEST_F(atointTest, RegularNegative) { + const char *str = "-20"; + long val; + + ASSERT_TRUE(atoint(str, &val)); + EXPECT_EQ(-20, val); +} + +TEST_F(atointTest, PositiveOverflowBoundary) { + const char *str = "2147483648"; + long val; + + EXPECT_FALSE(atoint(str, &val)); +} + +TEST_F(atointTest, NegativeOverflowBoundary) { + const char *str = "-2147483649"; + long val; + + EXPECT_FALSE(atoint(str, &val)); +} + +TEST_F(atointTest, PositiveOverflowBig) { + const char *str = "2300000000"; + long val; + + EXPECT_FALSE(atoint(str, &val)); +} + +TEST_F(atointTest, IllegalCharacter) { + const char *str = "4500l"; + long val; + + EXPECT_FALSE(atoint(str, &val)); +} |