[log] Detect early log calls before logger init and optimize hot path (#14538)

This commit is contained in:
J. Nick Koston
2026-03-10 09:12:10 -10:00
committed by GitHub
parent 89bb5d9e42
commit 4d2ef09a29
10 changed files with 134 additions and 19 deletions
+8
View File
@@ -1,5 +1,7 @@
#include <gtest/gtest.h>
#include "esphome/components/logger/logger.h"
/*
This special main.cpp replaces the default one.
It will run all the Google Tests found in all compiled cpp files and then exit with the result
@@ -18,6 +20,12 @@ void original_setup() {
}
void setup() {
// Log functions call global_logger->log_vprintf_() without a null check,
// so we must set up a Logger before any test that triggers logging.
static esphome::logger::Logger test_logger(0);
test_logger.set_log_level(ESPHOME_LOG_LEVEL);
test_logger.pre_setup();
::testing::InitGoogleTest();
int exit_code = RUN_ALL_TESTS();
exit(exit_code);