mirror of
https://github.com/vgough/encfs.git
synced 2024-12-01 12:23:39 +01:00
143 lines
8.0 KiB
C
143 lines
8.0 KiB
C
|
#ifndef CONFIGURATIONS_TEST_H_
|
||
|
#define CONFIGURATIONS_TEST_H_
|
||
|
|
||
|
#include "test.h"
|
||
|
|
||
|
TEST(ConfigurationsTest, Set) {
|
||
|
Configurations c;
|
||
|
c.set(Level::Info, el::ConfigurationType::Enabled, "true");
|
||
|
c.set(Level::Info, el::ConfigurationType::Enabled, "true");
|
||
|
EXPECT_EQ(c.size(), 1);
|
||
|
Configurations c2;
|
||
|
c2 = c;
|
||
|
c2.set(Level::Info, el::ConfigurationType::Enabled, "false");
|
||
|
EXPECT_EQ(c.get(Level::Info, el::ConfigurationType::Enabled)->value(), "true");
|
||
|
EXPECT_EQ(c2.get(Level::Info, el::ConfigurationType::Enabled)->value(), "false");
|
||
|
EXPECT_EQ(c2.size(), 1);
|
||
|
}
|
||
|
|
||
|
TEST(ConfigurationsTest, HasConfiguration) {
|
||
|
Configurations c;
|
||
|
c.set(Level::Info, el::ConfigurationType::Enabled, "true");
|
||
|
c.set(Level::Debug, el::ConfigurationType::Enabled, "false");
|
||
|
c.set(Level::Info, el::ConfigurationType::Format, "%level: %msg");
|
||
|
|
||
|
EXPECT_TRUE(c.hasConfiguration(ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(ConfigurationType::Format));
|
||
|
EXPECT_FALSE(c.hasConfiguration(ConfigurationType::Filename));
|
||
|
EXPECT_FALSE(c.hasConfiguration(ConfigurationType::MaxLogFileSize));
|
||
|
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Debug, ConfigurationType::Enabled));
|
||
|
EXPECT_FALSE(c.hasConfiguration(Level::Verbose, ConfigurationType::Format));
|
||
|
}
|
||
|
|
||
|
TEST(ConfigurationsTest, SetForAllLevels) {
|
||
|
Configurations c;
|
||
|
c.setGlobally(el::ConfigurationType::Enabled, "true");
|
||
|
EXPECT_FALSE(c.hasConfiguration(Level::Global, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Debug, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Info, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Warning, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Error, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Fatal, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Verbose, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Trace, ConfigurationType::Enabled));
|
||
|
}
|
||
|
|
||
|
TEST(ConfigurationsTest, ParsingFromFile) {
|
||
|
std::fstream confFile("/tmp/temp-test.conf", std::fstream::out);
|
||
|
confFile << " * GLOBAL:\n"
|
||
|
<< " FORMAT = %datetime %level %msg\n"
|
||
|
<< "* INFO:\n"
|
||
|
// Following should be included in format because its inside the quotes
|
||
|
<< " FORMAT = \"%datetime %level [%user@%host] [%func] [%loc] %msg## This should be included in format\" ## This should be excluded\n"
|
||
|
<< "* DEBUG:\n"
|
||
|
<< " FORMAT = %datetime %level [%user@%host] [%func] [%loc] %msg ## Comment before EOL char\n"
|
||
|
<< "## Comment on empty line\n"
|
||
|
// WARNING is defined by GLOBAL
|
||
|
<< "* ERROR:\n"
|
||
|
<< " FORMAT = %datetime %level %msg\n"
|
||
|
<< "* FATAL:\n"
|
||
|
<< " FORMAT = %datetime %level %msg\n"
|
||
|
<< "* VERBOSE:\n"
|
||
|
<< " FORMAT = %datetime %level-%vlevel %msg\n"
|
||
|
<< "* TRACE:\n"
|
||
|
<< " FORMAT = %datetime %level [%func] [%loc] %msg\n";
|
||
|
confFile.close();
|
||
|
|
||
|
Configurations c("/tmp/temp-test.conf", false, nullptr);
|
||
|
EXPECT_FALSE(c.hasConfiguration(Level::Debug, ConfigurationType::Enabled));
|
||
|
EXPECT_FALSE(c.hasConfiguration(Level::Global, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Global, ConfigurationType::Format));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Info, ConfigurationType::Format));
|
||
|
EXPECT_EQ("%datetime %level %msg", c.get(Level::Global, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level [%user@%host] [%func] [%loc] %msg## This should be included in format", c.get(Level::Info, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level [%user@%host] [%func] [%loc] %msg", c.get(Level::Debug, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level %msg", c.get(Level::Warning, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level %msg", c.get(Level::Error, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level %msg", c.get(Level::Fatal, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level-%vlevel %msg", c.get(Level::Verbose, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level [%func] [%loc] %msg", c.get(Level::Trace, ConfigurationType::Format)->value());
|
||
|
}
|
||
|
|
||
|
TEST(ConfigurationsTest, ParsingFromText) {
|
||
|
std::stringstream ss;
|
||
|
ss << " * GLOBAL:\n"
|
||
|
<< " FORMAT = %datetime{%d/%M/%Y %h:%m:%s,%g} %level %msg\n"
|
||
|
<< "* DEBUG:\n"
|
||
|
<< " FORMAT = %datetime %level [%user@%host] [%func] [%loc] %msg\n"
|
||
|
// INFO and WARNING uses is defined by GLOBAL
|
||
|
<< "* ERROR:\n"
|
||
|
<< " FORMAT = %datetime %level %msg\n"
|
||
|
<< "* FATAL:\n"
|
||
|
<< " FORMAT = %datetime %level %msg\n"
|
||
|
<< "* VERBOSE:\n"
|
||
|
<< " FORMAT = %datetime %level-%vlevel %msg\n"
|
||
|
<< "* TRACE:\n"
|
||
|
<< " FORMAT = %datetime %level [%func] [%loc] %msg\n";
|
||
|
|
||
|
Configurations c;
|
||
|
c.parseFromText(ss.str());
|
||
|
EXPECT_FALSE(c.hasConfiguration(Level::Debug, ConfigurationType::Enabled));
|
||
|
EXPECT_FALSE(c.hasConfiguration(Level::Global, ConfigurationType::Enabled));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Global, ConfigurationType::Format));
|
||
|
EXPECT_TRUE(c.hasConfiguration(Level::Info, ConfigurationType::Format));
|
||
|
EXPECT_EQ("%datetime{%d/%M/%Y %h:%m:%s,%g} %level %msg", c.get(Level::Global, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime{%d/%M/%Y %h:%m:%s,%g} %level %msg", c.get(Level::Info, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime{%d/%M/%Y %h:%m:%s,%g} %level %msg", c.get(Level::Warning, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level [%user@%host] [%func] [%loc] %msg", c.get(Level::Debug, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level %msg", c.get(Level::Error, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level %msg", c.get(Level::Fatal, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level-%vlevel %msg", c.get(Level::Verbose, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level [%func] [%loc] %msg", c.get(Level::Trace, ConfigurationType::Format)->value());
|
||
|
}
|
||
|
|
||
|
TEST(ConfigurationsTest, ParsingFromTextWithEscape) {
|
||
|
std::stringstream ss;
|
||
|
ss << " * GLOBAL:\n"
|
||
|
<< " FORMAT = %datetime{%d/%M/%Y %h:%m:%s,%g} %level %msg\n"
|
||
|
<< "* DEBUG:\n"
|
||
|
<< " FORMAT = \"%datetime %level [%user@%host] [%func] [%loc] \\\"inside quotes\\\" %msg\"\n"
|
||
|
// INFO and WARNING uses is defined by GLOBAL
|
||
|
<< "* ERROR:\n"
|
||
|
<< " FORMAT = \"%datetime %level \\\"##hash##\\\" %msg\"\n"
|
||
|
<< "* FATAL:\n"
|
||
|
<< " FORMAT = %datetime %level ## Comment out log format specifier temporarily %msg\n"
|
||
|
<< "* VERBOSE:\n"
|
||
|
<< " FORMAT = %datetime %level-%vlevel %msg\n"
|
||
|
<< "* TRACE:\n"
|
||
|
<< " FORMAT = %datetime %level [%func] [%loc] %msg\n";
|
||
|
|
||
|
Configurations c;
|
||
|
c.parseFromText(ss.str());
|
||
|
EXPECT_EQ("%datetime{%d/%M/%Y %h:%m:%s,%g} %level %msg", c.get(Level::Global, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime{%d/%M/%Y %h:%m:%s,%g} %level %msg", c.get(Level::Info, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime{%d/%M/%Y %h:%m:%s,%g} %level %msg", c.get(Level::Warning, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level [%user@%host] [%func] [%loc] \"inside quotes\" %msg", c.get(Level::Debug, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level \"##hash##\" %msg", c.get(Level::Error, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level", c.get(Level::Fatal, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level-%vlevel %msg", c.get(Level::Verbose, ConfigurationType::Format)->value());
|
||
|
EXPECT_EQ("%datetime %level [%func] [%loc] %msg", c.get(Level::Trace, ConfigurationType::Format)->value());
|
||
|
}
|
||
|
#endif // CONFIGURATIONS_TEST_H_
|