Files
pytorch/test/cpp/jit/test_jit_logging_levels.cpp
Aaron Gokaslan 8e0279cb50 [BE][Ez]: Use CPP20 rvalue overload for ostringstream (#187208)
Followup to #186552 . Uses the rvalue overload of ostringstream newly introduced in CPP20 to reduce the amount of string copy allowing us to steal the internal string buffer.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/187208
Approved by: https://github.com/d4l3k, https://github.com/lakshayg, https://github.com/malfet
2026-07-10 23:33:00 +00:00

58 lines
1.9 KiB
C++

#include <gtest/gtest.h>
#include <test/cpp/jit/test_utils.h>
#include <torch/csrc/jit/jit_log.h>
#include <sstream>
namespace torch {
namespace jit {
TEST(JitLoggingTest, CheckSetLoggingLevel) {
::torch::jit::set_jit_logging_levels("file_to_test");
ASSERT_TRUE(::torch::jit::is_enabled(
"file_to_test.cpp", JitLoggingLevels::GRAPH_DUMP));
}
TEST(JitLoggingTest, CheckSetMultipleLogLevels) {
::torch::jit::set_jit_logging_levels("f1:>f2:>>f3");
ASSERT_TRUE(::torch::jit::is_enabled("f1.cpp", JitLoggingLevels::GRAPH_DUMP));
ASSERT_TRUE(
::torch::jit::is_enabled("f2.cpp", JitLoggingLevels::GRAPH_UPDATE));
ASSERT_TRUE(
::torch::jit::is_enabled("f3.cpp", JitLoggingLevels::GRAPH_DEBUG));
}
TEST(JitLoggingTest, CheckLoggingLevelAfterUnset) {
::torch::jit::set_jit_logging_levels("f1");
ASSERT_EQ("f1", ::torch::jit::get_jit_logging_levels());
::torch::jit::set_jit_logging_levels("invalid");
ASSERT_FALSE(
::torch::jit::is_enabled("f1.cpp", JitLoggingLevels::GRAPH_DUMP));
}
TEST(JitLoggingTest, CheckAfterChangingLevel) {
::torch::jit::set_jit_logging_levels("f1");
::torch::jit::set_jit_logging_levels(">f1");
ASSERT_TRUE(
::torch::jit::is_enabled("f1.cpp", JitLoggingLevels::GRAPH_UPDATE));
}
TEST(JitLoggingTest, CheckOutputStreamSetting) {
::torch::jit::set_jit_logging_levels("test_jit_logging_levels");
std::ostringstream test_stream;
::torch::jit::set_jit_logging_output_stream(test_stream);
/* Using JIT_LOG checks if this file has logging enabled with
is_enabled(__FILE__, level) making the test fail. since we are only testing
the OutputStreamSetting we can forcefully output to it directly.
*/
::torch::jit::get_jit_logging_output_stream() << ::torch::jit::jit_log_prefix(
::torch::jit::JitLoggingLevels::GRAPH_DUMP,
__FILE__,
__LINE__,
::c10::str("Message"));
ASSERT_TRUE(std::move(test_stream).str().size() > 0);
}
} // namespace jit
} // namespace torch