aboutsummaryrefslogtreecommitdiff
path: root/tests/libntp/atoint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libntp/atoint.cpp')
-rw-r--r--tests/libntp/atoint.cpp48
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));
+}