diff options
author | Benjamin Barenblat <bbaren@google.com> | 2023-05-08 12:51:08 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2023-05-08 12:51:08 -0400 |
commit | c15cec707b1c7d847e59d2db4d0b82b711a7ee6d (patch) | |
tree | 79f448d5bbc8cf52917b0b091f0e1ab60a419c85 /absl/strings/internal/ostringstream_test.cc | |
parent | f4f2c1da90c4e6a0683c4e66c0268baa1b79cdf3 (diff) | |
parent | c2435f8342c2d0ed8101cb43adfd605fdc52dca2 (diff) | |
download | abseil-c15cec707b1c7d847e59d2db4d0b82b711a7ee6d.tar.gz abseil-c15cec707b1c7d847e59d2db4d0b82b711a7ee6d.tar.bz2 abseil-c15cec707b1c7d847e59d2db4d0b82b711a7ee6d.zip |
Merge new upstream LTS 20230125.3
Diffstat (limited to 'absl/strings/internal/ostringstream_test.cc')
-rw-r--r-- | absl/strings/internal/ostringstream_test.cc | 53 |
1 files changed, 41 insertions, 12 deletions
diff --git a/absl/strings/internal/ostringstream_test.cc b/absl/strings/internal/ostringstream_test.cc index 2879e50e..ef3ad573 100644 --- a/absl/strings/internal/ostringstream_test.cc +++ b/absl/strings/internal/ostringstream_test.cc @@ -14,10 +14,12 @@ #include "absl/strings/internal/ostringstream.h" +#include <ios> #include <memory> #include <ostream> #include <string> #include <type_traits> +#include <utility> #include "gtest/gtest.h" @@ -29,24 +31,51 @@ TEST(OStringStream, IsOStream) { ""); } -TEST(OStringStream, ConstructDestroy) { +TEST(OStringStream, ConstructNullptr) { + absl::strings_internal::OStringStream strm(nullptr); + EXPECT_EQ(nullptr, strm.str()); +} + +TEST(OStringStream, ConstructStr) { + std::string s = "abc"; { - absl::strings_internal::OStringStream strm(nullptr); - EXPECT_EQ(nullptr, strm.str()); + absl::strings_internal::OStringStream strm(&s); + EXPECT_EQ(&s, strm.str()); } + EXPECT_EQ("abc", s); +} + +TEST(OStringStream, Destroy) { + std::unique_ptr<std::string> s(new std::string); + absl::strings_internal::OStringStream strm(s.get()); + s.reset(); +} + +TEST(OStringStream, MoveConstruct) { + std::string s = "abc"; { - std::string s = "abc"; - { - absl::strings_internal::OStringStream strm(&s); - EXPECT_EQ(&s, strm.str()); - } - EXPECT_EQ("abc", s); + absl::strings_internal::OStringStream strm1(&s); + strm1 << std::hex << 16; + EXPECT_EQ(&s, strm1.str()); + absl::strings_internal::OStringStream strm2(std::move(strm1)); + strm2 << 16; // We should still be in base 16. + EXPECT_EQ(&s, strm2.str()); } + EXPECT_EQ("abc1010", s); +} + +TEST(OStringStream, MoveAssign) { + std::string s = "abc"; { - std::unique_ptr<std::string> s(new std::string); - absl::strings_internal::OStringStream strm(s.get()); - s.reset(); + absl::strings_internal::OStringStream strm1(&s); + strm1 << std::hex << 16; + EXPECT_EQ(&s, strm1.str()); + absl::strings_internal::OStringStream strm2(nullptr); + strm2 = std::move(strm1); + strm2 << 16; // We should still be in base 16. + EXPECT_EQ(&s, strm2.str()); } + EXPECT_EQ("abc1010", s); } TEST(OStringStream, Str) { |