Files
pytorch/test/cpp/jit/test_jit_logging_levels.cpp
Everton Constantino a00efe55c3 Fix CheckOutputStreamSetting on JitLoggingTest as it failed if logging wasn't enabled. (#82722)
`JIT_LOG` checks if logging was enabled for that particular file and when it isn't it doesn't output anything. Since the test checks for the size of `test_stream` it fails. I believe forcing the file to have logging enabled to see if the stream is being correctly set during test makes no sense so this patches just forcibly outputs and checks if it worked.

Pull Request resolved: https://github.com/pytorch/pytorch/pull/82722
Approved by: https://github.com/davidberard98
2022-11-23 22:46:29 +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(test_stream.str().size() > 0);
}
} // namespace jit
} // namespace torch