-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
/
config_tests.cpp
82 lines (64 loc) · 1.93 KB
/
config_tests.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
* Copyright (c) 2014, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
*/
#include <gtest/gtest.h>
#include <osquery/config.h>
#include <osquery/core.h>
#include <osquery/flags.h>
#include <osquery/registry.h>
#include <osquery/sql.h>
#include "osquery/core/test_util.h"
namespace osquery {
// The config_path flag is defined in the filesystem config plugin.
DECLARE_string(config_path);
class ConfigTests : public testing::Test {
public:
ConfigTests() {
FLAGS_config_plugin = "filesystem";
FLAGS_config_path = kTestDataPath + "test.config";
}
protected:
void SetUp() {
createMockFileStructure();
Registry::setUp();
Config::getInstance().load();
}
void TearDown() { tearDownMockFileStructure(); }
};
class TestConfigPlugin : public ConfigPlugin {
public:
TestConfigPlugin() {}
std::pair<Status, std::string> genConfig() {
return std::make_pair(Status(0, "OK"), "foobar");
}
};
TEST_F(ConfigTests, test_plugin) {
Registry::add<TestConfigPlugin>("config", "test");
PluginResponse response;
auto status =
Registry::call("config", "test", {{"action", "genConfig"}}, response);
EXPECT_EQ(status.ok(), true);
EXPECT_EQ(status.toString(), "OK");
EXPECT_EQ(response[0].at("data"), "foobar");
}
TEST_F(ConfigTests, test_queries_execute) {
auto queries = Config::getInstance().getScheduledQueries();
EXPECT_EQ(queries.size(), 1);
}
TEST_F(ConfigTests, test_threatfiles_execute) {
auto files = Config::getInstance().getWatchedFiles();
EXPECT_EQ(files.size(), 2);
EXPECT_EQ(files["downloads"].size(), 1);
EXPECT_EQ(files["system_binaries"].size(), 2);
}
}
int main(int argc, char* argv[]) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}