Export of internal Abseil changes
-- d447fdcb801036cf08197eece193a5a706661120 by Gennadiy Rozental <rogeeff@google.com>: Eliminate the need for static function holding help message. This decreases the cost of ABSL_FLAG abstraction by 120 bytes under clang. PiperOrigin-RevId: 281107806 -- 0aa6b91189f0e8b2381438c33465673a7ae02487 by Derek Mauro <dmauro@google.com>: Disable the weak symbol CCTZ extension in the time test_util on MinGW, which does not support it. PiperOrigin-RevId: 280719769 -- 67322c41c3e776eb541de90fa4526bdb49422eb6 by Abseil Team <absl-team@google.com>: Tune PeriodicSampler implementation (for internal-use only) PiperOrigin-RevId: 280708943 -- 3a48c346340c7ed03816645cd327e1ff07729aa4 by Abseil Team <absl-team@google.com>: Clean up public headers not to have warnings for "-Wcomma" PiperOrigin-RevId: 280695373 -- 981acd1ef3b13a83a84f04f11c8931f4ed4451c9 by Matthew Brown <matthewbr@google.com>: Release absl::int128. PiperOrigin-RevId: 280690817 -- d30fae9d2ec30b81322d2eb5afe7e13e45b4b422 by Derek Mauro <dmauro@google.com>: Fix -Wundef warnings in random platform detection PiperOrigin-RevId: 280669598 GitOrigin-RevId: d447fdcb801036cf08197eece193a5a706661120 Change-Id: Ie5e10e567c54b7de211833607689f233d4ddf734
This commit is contained in:
parent
3df7b52a6a
commit
2103fd9acd
23 changed files with 2800 additions and 136 deletions
|
|
@ -390,7 +390,6 @@ typedef ::testing::Types<
|
|||
AllIntTypes;
|
||||
INSTANTIATE_TYPED_TEST_CASE_P(TypedFormatConvertTestWithAllIntTypes,
|
||||
TypedFormatConvertTest, AllIntTypes);
|
||||
|
||||
TEST_F(FormatConvertTest, VectorBool) {
|
||||
// Make sure vector<bool>'s values behave as bools.
|
||||
std::vector<bool> v = {true, false};
|
||||
|
|
@ -402,6 +401,42 @@ TEST_F(FormatConvertTest, VectorBool) {
|
|||
FormatArgImpl(cv[0]), FormatArgImpl(cv[1])})));
|
||||
}
|
||||
|
||||
|
||||
TEST_F(FormatConvertTest, Int128) {
|
||||
absl::int128 positive = static_cast<absl::int128>(0x1234567890abcdef) * 1979;
|
||||
absl::int128 negative = -positive;
|
||||
absl::int128 max = absl::Int128Max(), min = absl::Int128Min();
|
||||
const FormatArgImpl args[] = {FormatArgImpl(positive),
|
||||
FormatArgImpl(negative), FormatArgImpl(max),
|
||||
FormatArgImpl(min)};
|
||||
|
||||
struct Case {
|
||||
const char* format;
|
||||
const char* expected;
|
||||
} cases[] = {
|
||||
{"%1$d", "2595989796776606496405"},
|
||||
{"%1$30d", " 2595989796776606496405"},
|
||||
{"%1$-30d", "2595989796776606496405 "},
|
||||
{"%1$u", "2595989796776606496405"},
|
||||
{"%1$x", "8cba9876066020f695"},
|
||||
{"%2$d", "-2595989796776606496405"},
|
||||
{"%2$30d", " -2595989796776606496405"},
|
||||
{"%2$-30d", "-2595989796776606496405 "},
|
||||
{"%2$u", "340282366920938460867384810655161715051"},
|
||||
{"%2$x", "ffffffffffffff73456789f99fdf096b"},
|
||||
{"%3$d", "170141183460469231731687303715884105727"},
|
||||
{"%3$u", "170141183460469231731687303715884105727"},
|
||||
{"%3$x", "7fffffffffffffffffffffffffffffff"},
|
||||
{"%4$d", "-170141183460469231731687303715884105728"},
|
||||
{"%4$x", "80000000000000000000000000000000"},
|
||||
};
|
||||
|
||||
for (auto c : cases) {
|
||||
UntypedFormatSpecImpl format(c.format);
|
||||
EXPECT_EQ(c.expected, FormatPack(format, absl::MakeSpan(args)));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(FormatConvertTest, Uint128) {
|
||||
absl::uint128 v = static_cast<absl::uint128>(0x1234567890abcdef) * 1979;
|
||||
absl::uint128 max = absl::Uint128Max();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue