| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "base/logging.h" |
| #include "base/test/logging/test_rust_logger_consumer.rs.h" |
| #include "base/test/mock_log.h" |
| |
| using testing::_; |
| |
| namespace logging { |
| namespace { |
| |
| class RustLogIntegrationTest : public testing::Test { |
| public: |
| void SetUp() override { log_.StartCapturingLogs(); } |
| |
| void TearDown() override { log_.StopCapturingLogs(); } |
| |
| base::test::MockLog log_; |
| }; |
| |
| // TODO(crbug.com/374023535): Logging does not work in component builds. |
| #if defined(COMPONENT_BUILD) |
| #define MAYBE_CheckAllSeverity DISABLED_CheckAllSeverity |
| #else |
| #define MAYBE_CheckAllSeverity CheckAllSeverity |
| #endif |
| TEST_F(RustLogIntegrationTest, MAYBE_CheckAllSeverity) { |
| #if DCHECK_IS_ON() |
| // Debug and Trace logs from Rust are discarded when DCHECK_IS_ON() is false; |
| // otherwise, they are logged as info. |
| EXPECT_CALL(log_, |
| Log(LOGGING_INFO, _, _, _, testing::HasSubstr("test trace log"))) |
| .WillOnce(testing::Return(true)); |
| |
| EXPECT_CALL(log_, |
| Log(LOGGING_INFO, _, _, _, testing::HasSubstr("test debug log"))) |
| .WillOnce(testing::Return(true)); |
| #endif |
| |
| EXPECT_CALL(log_, |
| Log(LOGGING_INFO, _, _, _, testing::HasSubstr("test info log"))) |
| .WillOnce(testing::Return(true)); |
| |
| EXPECT_CALL(log_, Log(LOGGING_WARNING, _, _, _, |
| testing::HasSubstr("test warning log"))) |
| .WillOnce(testing::Return(true)); |
| |
| EXPECT_CALL(log_, |
| Log(LOGGING_ERROR, _, _, _, testing::HasSubstr("test error log"))) |
| .WillOnce(testing::Return(true)); |
| |
| base::test::print_test_trace_log(); |
| base::test::print_test_debug_log(); |
| base::test::print_test_info_log(); |
| base::test::print_test_warning_log(); |
| base::test::print_test_error_log(); |
| } |
| |
| // TODO(crbug.com/374023535): Logging does not work in component builds. |
| #if defined(COMPONENT_BUILD) |
| #define MAYBE_Placeholders DISABLED_Placeholders |
| #else |
| #define MAYBE_Placeholders Placeholders |
| #endif |
| TEST_F(RustLogIntegrationTest, MAYBE_Placeholders) { |
| EXPECT_CALL(log_, Log(LOGGING_ERROR, _, _, _, |
| testing::HasSubstr("test log with placeholder 2"))) |
| .WillOnce(testing::Return(true)); |
| |
| base::test::print_test_error_log_with_placeholder(2); |
| } |
| |
| } // namespace |
| } // namespace logging |