#include "absl/log/log_streamer.h"
#include <ios>
#include <iostream>
#include <utility>
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "absl/base/attributes.h"
#include "absl/base/internal/sysinfo.h"
#include "absl/base/log_severity.h"
#include "absl/log/internal/test_actions.h"
#include "absl/log/internal/test_helpers.h"
#include "absl/log/internal/test_matchers.h"
#include "absl/log/log.h"
#include "absl/log/scoped_mock_log.h"
#include "absl/strings/string_view.h"
namespace {
DeathTestExpectedLogging;
DeathTestUnexpectedLogging;
DeathTestValidateExpectations;
#if GTEST_HAS_DEATH_TEST
DiedOfFatal;
#endif
InMatchWindow;
LogSeverity;
Prefix;
SourceFilename;
SourceLine;
Stacktrace;
TextMessage;
ThreadID;
Timestamp;
_;
AnyNumber;
Eq;
HasSubstr;
IsEmpty;
IsTrue;
auto* test_env ABSL_ATTRIBUTE_UNUSED = …;
void WriteToStream(absl::string_view data, std::ostream* os) { … }
void WriteToStreamRef(absl::string_view data, std::ostream& os) { … }
TEST(LogStreamerTest, LogInfoStreamer) { … }
TEST(LogStreamerTest, LogWarningStreamer) { … }
TEST(LogStreamerTest, LogErrorStreamer) { … }
#if GTEST_HAS_DEATH_TEST
TEST(LogStreamerDeathTest, LogFatalStreamer) { … }
#endif
#ifdef NDEBUG
TEST(LogStreamerTest, LogDebugFatalStreamer) {
absl::ScopedMockLog test_sink(absl::MockLogDefault::kDisallowUnexpected);
EXPECT_CALL(
test_sink,
Send(AllOf(
SourceFilename(Eq("path/file.cc")), SourceLine(Eq(1234)),
Prefix(IsTrue()), LogSeverity(Eq(absl::LogSeverity::kError)),
Timestamp(InMatchWindow()),
ThreadID(Eq(absl::base_internal::GetTID())),
TextMessage(Eq("WriteToStream: foo")),
ENCODED_MESSAGE(MatchesEvent(
Eq("path/file.cc"), Eq(1234), InMatchWindow(),
Eq(logging::proto::ERROR), Eq(absl::base_internal::GetTID()),
ElementsAre(EqualsProto(R"pb(str: "WriteToStream: foo")pb")))),
Stacktrace(IsEmpty()))));
test_sink.StartCapturingLogs();
WriteToStream("foo",
&absl::LogDebugFatalStreamer("path/file.cc", 1234).stream());
}
#elif GTEST_HAS_DEATH_TEST
TEST(LogStreamerDeathTest, LogDebugFatalStreamer) { … }
#endif
TEST(LogStreamerTest, LogStreamer) { … }
#if GTEST_HAS_DEATH_TEST
TEST(LogStreamerDeathTest, LogStreamer) { … }
#endif
TEST(LogStreamerTest, PassedByReference) { … }
TEST(LogStreamerTest, StoredAsLocal) { … }
#if GTEST_HAS_DEATH_TEST
TEST(LogStreamerDeathTest, StoredAsLocal) { … }
#endif
TEST(LogStreamerTest, LogsEmptyLine) { … }
#if GTEST_HAS_DEATH_TEST
TEST(LogStreamerDeathTest, LogsEmptyLine) { … }
#endif
TEST(LogStreamerTest, MoveConstruction) { … }
TEST(LogStreamerTest, MoveAssignment) { … }
TEST(LogStreamerTest, CorrectDefaultFlags) { … }
}