Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c425b1d authored by Steven Moreland's avatar Steven Moreland Committed by android-build-merger
Browse files

Merge "ParseInt/ParseUint: allow validation only."

am: 3ba85c4d

Change-Id: I5227ba800ff7c4018ddab46f67ed6679ece8264e
parents 40cd9e03 3ba85c4d
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -47,7 +47,9 @@ bool ParseUint(const char* s, T* out, T max = std::numeric_limits<T>::max(),
  if (max < result) {
    return false;
  }
  if (out != nullptr) {
    *out = static_cast<T>(result);
  }
  return true;
}

@@ -87,7 +89,9 @@ bool ParseInt(const char* s, T* out,
  if (result < min || max < result) {
    return false;
  }
  if (out != nullptr) {
    *out = static_cast<T>(result);
  }
  return true;
}

+8 −0
Original line number Diff line number Diff line
@@ -36,6 +36,10 @@ TEST(parseint, signed_smoke) {
  ASSERT_EQ(12, i);
  ASSERT_FALSE(android::base::ParseInt("-12", &i, 0, 15));
  ASSERT_FALSE(android::base::ParseInt("16", &i, 0, 15));

  ASSERT_FALSE(android::base::ParseInt<int>("x", nullptr));
  ASSERT_FALSE(android::base::ParseInt<int>("123x", nullptr));
  ASSERT_TRUE(android::base::ParseInt<int>("1234", nullptr));
}

TEST(parseint, unsigned_smoke) {
@@ -55,6 +59,10 @@ TEST(parseint, unsigned_smoke) {
  ASSERT_EQ(12u, i);
  ASSERT_FALSE(android::base::ParseUint("-12", &i, 15u));
  ASSERT_FALSE(android::base::ParseUint("16", &i, 15u));

  ASSERT_FALSE(android::base::ParseUint<unsigned short>("x", nullptr));
  ASSERT_FALSE(android::base::ParseUint<unsigned short>("123x", nullptr));
  ASSERT_TRUE(android::base::ParseUint<unsigned short>("1234", nullptr));
}

TEST(parseint, no_implicit_octal) {