encfs/vendor/github.com/muflihun/easyloggingpp/test/write-all-test.h
Valient Gough 5f0806c5cc Add "easylogging" from "https://github.com/muflihun/easyloggingpp@master"
git-vendor-name: easylogging
git-vendor-dir: vendor/github.com/muflihun/easyloggingpp
git-vendor-repository: https://github.com/muflihun/easyloggingpp
git-vendor-ref: master
2017-08-05 23:23:41 -07:00

112 lines
3.7 KiB
C++

#ifndef WRITE_ALL_TEST_H_
#define WRITE_ALL_TEST_H_
#include "test.h"
TEST(WriteAllTest, Entry) {
reconfigureLoggersForTest();
}
#define TEST_LEVEL(l, name) \
TEST(WriteAllTest, l) {\
std::string s;\
LOG(l) << name << " 1";\
s = BUILD_STR(getDate() << " " << name << " 1\n");\
EXPECT_EQ(s, tail(1));\
LOG_IF(true, l) << name << " 2";\
s = BUILD_STR(getDate() << " " << name << " 1\n"\
<< getDate() << " " << name << " 2\n");\
EXPECT_EQ(s, tail(2));\
LOG_IF(true, l) << name << " 3";\
s = BUILD_STR(getDate() << " " << name << " 3\n");\
EXPECT_EQ(s, tail(1));\
LOG_IF(false, l) << "SHOULD NOT LOG";\
s = BUILD_STR(getDate() << " " << name << " 3\n");\
EXPECT_EQ(s, tail(1));\
LOG_EVERY_N(1, l) << name << " every n=1";\
s = BUILD_STR(getDate() << " " << name << " every n=1\n");\
LOG_AFTER_N(1, l) << name << " after n=1";\
s = BUILD_STR(getDate() << " " << name << " after n=1\n");\
LOG_N_TIMES(2, l) << name << " n times=2";\
s = BUILD_STR(getDate() << " " << name << " n times=2\n");\
EXPECT_EQ(s, tail(1));\
}
TEST_LEVEL(DEBUG, "Debug")
TEST_LEVEL(INFO, "Info")
TEST_LEVEL(ERROR, "Error")
TEST_LEVEL(WARNING, "Warning")
TEST_LEVEL(FATAL, "Fatal")
TEST_LEVEL(TRACE, "Trace")
TEST(WriteAllTest, VERBOSE) {
Configurations cOld(*Loggers::getLogger("default")->configurations());
Loggers::reconfigureAllLoggers(ConfigurationType::Format, "%datetime{%a %b %d, %H:%m} %level-%vlevel %msg");
el::Loggers::addFlag(el::LoggingFlag::AllowVerboseIfModuleNotSpecified); // Accept all verbose levels; we already have vmodules!
std::string s;
for (int i = 1; i <= 6; ++i)
VLOG_EVERY_N(2, 2) << "every n=" << i;
s = BUILD_STR(getDate() << " VERBOSE-2 every n=2\n"
<< getDate() << " VERBOSE-2 every n=4\n"
<< getDate() << " VERBOSE-2 every n=6\n");
EXPECT_EQ(s, tail(3));
VLOG_IF(true, 3) << "Test conditional verbose log";
s = BUILD_STR(getDate() << " VERBOSE-3 Test conditional verbose log\n");
EXPECT_EQ(s, tail(1));
VLOG_IF(false, 3) << "SHOULD NOT LOG";
// Should not log!
EXPECT_EQ(s, tail(1));
VLOG(3) << "Log normally (verbose)";
s = BUILD_STR(getDate() << " VERBOSE-3 Log normally (verbose)\n");
EXPECT_EQ(s, tail(1));
// Reset it back to old
Loggers::reconfigureAllLoggers(cOld);
}
TEST(WriteAllTest, EVERY_N) {
std::string s;
const char* levelName = "INFO";
for (int i = 1; i <= 6; ++i)
LOG_EVERY_N(2, INFO) << levelName << " every n=" << i;
s = BUILD_STR(getDate() << " " << levelName << " every n=2\n"
<< getDate() << " " << levelName << " every n=4\n"
<< getDate() << " " << levelName << " every n=6\n");
EXPECT_EQ(s, tail(3));
}
TEST(WriteAllTest, AFTER_N) {
std::string s;
const char* levelName = "INFO";
for (int i = 1; i <= 6; ++i)
LOG_AFTER_N(2, INFO) << levelName << " after n=" << i;
s = BUILD_STR(getDate() << " " << levelName << " after n=3\n"
<< getDate() << " " << levelName << " after n=4\n"
<< getDate() << " " << levelName << " after n=5\n"
<< getDate() << " " << levelName << " after n=6\n");
EXPECT_EQ(s, tail(4));
}
TEST(WriteAllTest, N_TIMES) {
std::string s;
const char* levelName = "INFO";
for (int i = 1; i <= 6; ++i)
LOG_N_TIMES(4, INFO) << levelName << " n times=" << i;
s = BUILD_STR(getDate() << " " << levelName << " n times=1\n"
<< getDate() << " " << levelName << " n times=2\n"
<< getDate() << " " << levelName << " n times=3\n"
<< getDate() << " " << levelName << " n times=4\n");
EXPECT_EQ(s, tail(4));
}
#endif // WRITE_ALL_TEST_H_