blob: e7059d16aaeea6ebad2f316df4f17ba7c14ce397 [file] [log] [blame]
#ifndef AOS_TESTING_TEST_LOGGING_H_
#define AOS_TESTING_TEST_LOGGING_H_
#include "aos/time/time.h"
namespace aos {
namespace testing {
// Enables the logging framework for use during a gtest test.
// It will print out all WARNING and above messages all of the time. It will
// also print out all log messages when a test fails.
// This function only needs to be called once in each process (after gtest is
// initialized), however it can be called more than that.
void EnableTestLogging();
// Redirect the messages enabled by EnableTestLogging() function to a file.
// By default the messages are printed to standard output.
void SetLogFileName(const char* filename);
// Force the messages to be printed as they are handled by the logging
// framework. This can be useful for tests that hang where no messages would
// otherwise be printed. This is also useful for tests that do pass, but where
// we want to use graphing tools to verify what's happening.
void ForcePrintLogsDuringTests();
// Sets the current mock logging time to monotonic_now. This only applies to
// the current thread.
void MockTime(::aos::monotonic_clock::time_point monotonic_now);
// Clears the mock logging time for the current thread and goes back to using
// monotonic_clock::now().
void UnMockTime();
} // namespace testing
} // namespace aos
#endif // AOS_TESTING_TEST_LOGGING_H_