Changes imported from Abseil "staging" branch:

- 46a4bd582619bfc4799c1a907316e914ed0c0105 Fixes to mutex_nonprod.  Apparently this has never built.... by Greg Falcon <gfalcon@google.com>
  - 4bcf6f013aeee53057527d70100de8535aec9b93 Add some comments to copts.bzl by Tom Manshreck <shreck@google.com>
  - 54cf717b1c5dfb814721f92a8eb9df5587f5f758 Internal change by Abseil Team <absl-team@google.com>
  - d1f1c7e6e61358300963b7bd50c203740a49297d Eliminate kFast{UInt,Int}{32,64}ToBufferSize constants by Jorg Brown <jorg@google.com>

GitOrigin-RevId: 46a4bd582619bfc4799c1a907316e914ed0c0105
Change-Id: I129b6b3d27d9ae2c6eb21d6e44a52d10399ef8aa
This commit is contained in:
Abseil Team 2017-12-12 11:23:51 -08:00 committed by Titus Winters
parent dc0282d098
commit 04edad3801
6 changed files with 47 additions and 45 deletions

View file

@ -28,11 +28,6 @@
namespace {
using absl::numbers_internal::FastInt32ToBuffer;
using absl::numbers_internal::FastInt64ToBuffer;
using absl::numbers_internal::FastUInt32ToBuffer;
using absl::numbers_internal::FastUInt64ToBuffer;
using absl::numbers_internal::kFastToBufferSize;
using absl::numbers_internal::kSixDigitsToBufferSize;
using absl::numbers_internal::safe_strto32_base;
using absl::numbers_internal::safe_strto64_base;
@ -116,22 +111,22 @@ TEST(ToString, PerfectDtoa) {
}
void CheckInt32(int32_t x) {
char buffer[kFastInt32ToBufferSize];
char* actual = FastInt32ToBuffer(x, buffer);
char buffer[absl::numbers_internal::kFastToBufferSize];
char* actual = absl::numbers_internal::FastInt32ToBuffer(x, buffer);
std::string expected = std::to_string(x);
ASSERT_TRUE(expected == actual)
ASSERT_TRUE(expected == std::string(buffer, actual))
<< "Expected \"" << expected << "\", Actual \"" << actual << "\", Input "
<< x;
}
void CheckInt64(int64_t x) {
char buffer[kFastInt64ToBufferSize + 3];
char buffer[absl::numbers_internal::kFastToBufferSize + 3];
buffer[0] = '*';
buffer[23] = '*';
buffer[24] = '*';
char* actual = FastInt64ToBuffer(x, &buffer[1]);
char* actual = absl::numbers_internal::FastInt64ToBuffer(x, &buffer[1]);
std::string expected = std::to_string(x);
ASSERT_TRUE(expected == actual)
ASSERT_TRUE(expected == std::string(&buffer[1], actual))
<< "Expected \"" << expected << "\", Actual \"" << actual << "\", Input "
<< x;
ASSERT_EQ(buffer[0], '*');
@ -140,32 +135,32 @@ void CheckInt64(int64_t x) {
}
void CheckUInt32(uint32_t x) {
char buffer[kFastUInt64ToBufferSize];
char* actual = FastUInt32ToBuffer(x, buffer);
char buffer[absl::numbers_internal::kFastToBufferSize];
char* actual = absl::numbers_internal::FastUInt32ToBuffer(x, buffer);
std::string expected = std::to_string(x);
ASSERT_TRUE(expected == actual)
ASSERT_TRUE(expected == std::string(buffer, actual))
<< "Expected \"" << expected << "\", Actual \"" << actual << "\", Input "
<< x;
}
void CheckUInt64(uint64_t x) {
char buffer[kFastUInt64ToBufferSize + 1];
char* actual = FastUInt64ToBuffer(x, &buffer[1]);
char buffer[absl::numbers_internal::kFastToBufferSize + 1];
char* actual = absl::numbers_internal::FastUInt64ToBuffer(x, &buffer[1]);
std::string expected = std::to_string(x);
ASSERT_TRUE(expected == actual)
ASSERT_TRUE(expected == std::string(&buffer[1], actual))
<< "Expected \"" << expected << "\", Actual \"" << actual << "\", Input "
<< x;
}
void CheckHex64(uint64_t v) {
char expected[kFastUInt64ToBufferSize];
char expected[16 + 1];
std::string actual = absl::StrCat(absl::Hex(v, absl::kZeroPad16));
snprintf(expected, sizeof(expected), "%016" PRIx64, static_cast<uint64_t>(v));
ASSERT_TRUE(expected == actual)
<< "Expected \"" << expected << "\", Actual \"" << actual << "\"";
}
void TestFastPrints() {
TEST(Numbers, TestFastPrints) {
for (int i = -100; i <= 100; i++) {
CheckInt32(i);
CheckInt64(i);
@ -700,7 +695,7 @@ class SimpleDtoaTest : public testing::Test {
}
std::string ToNineDigits(double value) {
char buffer[kFastToBufferSize]; // more than enough for %.9g
char buffer[16]; // more than enough for %.9g
snprintf(buffer, sizeof(buffer), "%.9g", value);
return buffer;
}