diff options
author | Abseil Team <absl-team@google.com> | 2019-04-16 12:11:35 -0700 |
---|---|---|
committer | Alex Strelnikov <strel@google.com> | 2019-04-16 15:40:40 -0400 |
commit | d902eb869bcfacc1bad14933ed9af4bed006d481 (patch) | |
tree | 2c6b4c121bb5a696657d63db03a166404b3592b8 /absl/strings/internal/str_format/parser_test.cc | |
parent | a02f62f456f2c4a7ecf2be3104fe0c6e16fbad9a (diff) | |
download | abseil-d902eb869bcfacc1bad14933ed9af4bed006d481.tar.gz abseil-d902eb869bcfacc1bad14933ed9af4bed006d481.tar.bz2 abseil-d902eb869bcfacc1bad14933ed9af4bed006d481.zip |
Export of internal Abseil changes.
--
babbb6421068af3831870fd5995444437ace6769 by Derek Mauro <dmauro@google.com>:
Rollback of:
Make raw_hash_set_test less flaky.
Split the timing loop into chunks so that we are less suceptible to
antogantistic processes.
PiperOrigin-RevId: 243854490
--
a2711f17a712f6d09799bf32363d67526737b486 by CJ Johnson <johnsoncj@google.com>:
Relocates IsAtLeastForwardIterator to internal/inlined_vector.h
PiperOrigin-RevId: 243846090
--
6c14cdbeb9a61022c27f8957654f930d8abf2fc1 by Matt Kulukundis <kfm@google.com>:
Make raw_hash_set_test less flaky.
Split the timing loop into chunks so that we are less suceptible to
antogantistic processes.
PiperOrigin-RevId: 243824289
--
ee6072a6b6e0ac653622524ceb09db3b9e870f96 by Samuel Benzaquen <sbenza@google.com>:
Improve format parser performance.
Replace the main switch with a lookup in the existing tag table.
Improve the ABI of ConsumeUnboundConversion a little.
PiperOrigin-RevId: 243824112
--
24b9e6476dfa4be8d644359eab8ac6816492f187 by Abseil Team <absl-team@google.com>:
Fix DR numbers: 3800 ? 3080, 3801 ? 3081.
PiperOrigin-RevId: 243804213
--
0660404074707e197684f07cc0bffe4a9c35cd2f by Abseil Team <absl-team@google.com>:
Internal change.
PiperOrigin-RevId: 243757359
--
ba0f5bb9b8584d75c4ffc44ff3cb8c691796ffc6 by Xiaoyi Zhang <zhangxy@google.com>:
Consolidate ABSL_INTERNAL_UNALIGNED_* implementation into memcpy.
The compiler should be good enough to optimize these operations.
See https://github.com/abseil/abseil-cpp/issues/269 for background.
PiperOrigin-RevId: 243323941
--
00853a8756548df7217513c562d604b4ee5c6ab9 by Eric Fiselier <ericwf@google.com>:
Reexport memory.h from optional.h for compatibility between libc++ and
libstdc++.
PiperOrigin-RevId: 243313425
GitOrigin-RevId: babbb6421068af3831870fd5995444437ace6769
Change-Id: Ic53c127ad857a431ad60c98b27cc585fed50a3e3
Diffstat (limited to 'absl/strings/internal/str_format/parser_test.cc')
-rw-r--r-- | absl/strings/internal/str_format/parser_test.cc | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/absl/strings/internal/str_format/parser_test.cc b/absl/strings/internal/str_format/parser_test.cc index ff705753..6d356093 100644 --- a/absl/strings/internal/str_format/parser_test.cc +++ b/absl/strings/internal/str_format/parser_test.cc @@ -1,6 +1,8 @@ #include "absl/strings/internal/str_format/parser.h" #include <string.h> + +#include "gmock/gmock.h" #include "gtest/gtest.h" #include "absl/base/macros.h" @@ -9,6 +11,8 @@ namespace str_format_internal { namespace { +using testing::Pair; + TEST(LengthModTest, Names) { struct Expectation { int line; @@ -63,20 +67,21 @@ TEST(ConversionCharTest, Names) { class ConsumeUnboundConversionTest : public ::testing::Test { public: - typedef UnboundConversion Props; - string_view Consume(string_view* src) { + std::pair<string_view, string_view> Consume(string_view src) { int next = 0; - const char* prev_begin = src->data(); o = UnboundConversion(); // refresh - ConsumeUnboundConversion(src, &o, &next); - return {prev_begin, static_cast<size_t>(src->data() - prev_begin)}; + const char* p = ConsumeUnboundConversion( + src.data(), src.data() + src.size(), &o, &next); + if (!p) return {{}, src}; + return {string_view(src.data(), p - src.data()), + string_view(p, src.data() + src.size() - p)}; } bool Run(const char *fmt, bool force_positional = false) { - string_view src = fmt; int next = force_positional ? -1 : 0; o = UnboundConversion(); // refresh - return ConsumeUnboundConversion(&src, &o, &next) && src.empty(); + return ConsumeUnboundConversion(fmt, fmt + strlen(fmt), &o, &next) == + fmt + strlen(fmt); } UnboundConversion o; }; @@ -104,11 +109,7 @@ TEST_F(ConsumeUnboundConversionTest, ConsumeSpecification) { }; for (const auto& e : kExpect) { SCOPED_TRACE(e.line); - string_view src = e.src; - EXPECT_EQ(e.src, src); - string_view out = Consume(&src); - EXPECT_EQ(e.out, out); - EXPECT_EQ(e.src_post, src); + EXPECT_THAT(Consume(e.src), Pair(e.out, e.src_post)); } } |