raw_string_ostream_test.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  2. // Exceptions. See /LICENSE for license information.
  3. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  4. #include "common/raw_string_ostream.h"
  5. #include <gmock/gmock.h>
  6. #include <gtest/gtest.h>
  7. namespace Carbon::Testing {
  8. namespace {
  9. using ::testing::HasSubstr;
  10. using ::testing::StrEq;
  11. TEST(RawStringOstreamTest, Basics) {
  12. RawStringOstream os;
  13. os << "test 1";
  14. EXPECT_THAT(os.TakeStr(), StrEq("test 1"));
  15. os << "test"
  16. << " "
  17. << "2";
  18. EXPECT_THAT(os.TakeStr(), StrEq("test 2"));
  19. os << "test";
  20. os << " ";
  21. os << "3";
  22. EXPECT_THAT(os.TakeStr(), StrEq("test 3"));
  23. }
  24. TEST(RawStringOstreamTest, MultipleStreams) {
  25. RawStringOstream os1;
  26. RawStringOstream os2;
  27. os1 << "test ";
  28. os2 << "test stream 2";
  29. os1 << "stream 1";
  30. EXPECT_THAT(os1.TakeStr(), StrEq("test stream 1"));
  31. EXPECT_THAT(os2.TakeStr(), StrEq("test stream 2"));
  32. }
  33. TEST(RawStringOstreamTest, MultipleLines) {
  34. RawStringOstream os;
  35. os << "test line 1\n";
  36. os << "test line 2\n";
  37. os << "test line 3\n";
  38. EXPECT_THAT(os.TakeStr(), StrEq("test line 1\ntest line 2\ntest line 3\n"));
  39. }
  40. TEST(RawStringOstreamTest, Substring) {
  41. RawStringOstream os;
  42. os << "test line 1\n";
  43. os << "test line 2\n";
  44. os << "test line 3\n";
  45. EXPECT_THAT(os.TakeStr(), HasSubstr("test line 2"));
  46. }
  47. TEST(RawStringOstreamTest, Pwrite) {
  48. RawStringOstream os;
  49. os << "test line 1\n";
  50. os.pwrite("splat", 5, 1);
  51. os << "test line 2\n";
  52. EXPECT_THAT(os.TakeStr(), HasSubstr("tsplatine 1\ntest line 2\n"));
  53. }
  54. } // namespace
  55. } // namespace Carbon::Testing