diff options
author | Alexander Smirnov <alex@ydb.tech> | 2024-06-03 08:43:13 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2024-06-03 08:43:13 +0000 |
commit | e8b793b8275c229a46b4211f83c03cb074c9ba7c (patch) | |
tree | 831d4507c2b234635f45b573fcd03a4b96133bb5 /library/cpp/yt/logging/unittests/static_analysis_ut.cpp | |
parent | 89c3654dc08129116422f621b50086305f68bc9c (diff) | |
parent | 28ff234f758e7fd2f42f229a4b55ff70506f0015 (diff) | |
download | ydb-e8b793b8275c229a46b4211f83c03cb074c9ba7c.tar.gz |
Merge branch 'rightlib' into mergelibs-240603-0842
Diffstat (limited to 'library/cpp/yt/logging/unittests/static_analysis_ut.cpp')
-rw-r--r-- | library/cpp/yt/logging/unittests/static_analysis_ut.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/library/cpp/yt/logging/unittests/static_analysis_ut.cpp b/library/cpp/yt/logging/unittests/static_analysis_ut.cpp new file mode 100644 index 00000000000..1c705dc9674 --- /dev/null +++ b/library/cpp/yt/logging/unittests/static_analysis_ut.cpp @@ -0,0 +1,41 @@ +#include <library/cpp/testing/gtest/gtest.h> + +#include <library/cpp/yt/logging/logger.h> + +namespace NYT::NLogging { +namespace { + +//////////////////////////////////////////////////////////////////////////////// + +TEST(TStaticAnalysis, ValidFormats) +{ + // Mock for actual error -- we only care that + // it is some runtime object. + [[maybe_unused]] struct TError + { } error; + + YT_LOG_CHECK_FORMAT("Hello"); + YT_LOG_CHECK_FORMAT("Hello %v", "World!"); + YT_LOG_CHECK_FORMAT("Hello %qv", "World!"); + YT_LOG_CHECK_FORMAT(error); + YT_LOG_CHECK_FORMAT(error, "Hello"); + YT_LOG_CHECK_FORMAT(error, "Hello %Qhs", "World!"); + YT_LOG_CHECK_FORMAT("Hello %%"); + YT_LOG_CHECK_FORMAT("Hello %" PRIu64, 42); +} + +// Uncomment this test to see that we don't have false negatives! +// TEST(TStaticAnalysis, InvalidFormats) +// { +// YT_LOG_CHECK_FORMAT("Hello", 1); +// YT_LOG_CHECK_FORMAT("Hello %"); +// YT_LOG_CHECK_FORMAT("Hello %false"); +// YT_LOG_CHECK_FORMAT("Hello ", "World"); +// YT_LOG_CHECK_FORMAT("Hello ", "(World: %v)", 42); +// YT_LOG_CHECK_FORMAT("Hello %lbov", 42); // There is no 'b' flag. +// } + +//////////////////////////////////////////////////////////////////////////////// + +} // namespace +} // namespace NYT::NLogging |