pytorch/test/cpp/jit/test_jit_logging_levels.cpp
Hariom Narang 2828ce53fd Added jit log stream changing function and some refactor (#65768)
Summary:
Description:
- Have only added `stdout` and `stderr` as possible options from python
  API for now. We can do file path passing later maybe.
- Put the class `JitLoggingConfig` in the cpp file as none of its methods were being used outside of this file.

Python API:
`torch._C._jit_set_logging_stream('stdout|stderr')`
C++ API:
`::torch::jit::set_jit_logging_output_stream(ostream);`

Testing:
- Tested python API locally.
- Unit test for the C++ API is written

Fixes https://github.com/pytorch/pytorch/issues/54182

Pull Request resolved: https://github.com/pytorch/pytorch/pull/65768

Reviewed By: mrshenli

Differential Revision: D31291739

Pulled By: ZolotukhinM

fbshipit-source-id: eee72edc20488efad78a01c5b0ed8a132886a08d
2021-09-30 23:25:11 -07:00

50 lines
1.6 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);
JIT_LOG(::torch::jit::JitLoggingLevels::GRAPH_DUMP, "Message");
ASSERT_TRUE(test_stream.str().size() > 0);
}
} // namespace jit
} // namespace torch