From f4433cf4d7a30aa2d15b1faf9b74e9cfde59e263 Mon Sep 17 00:00:00 2001 From: Sangwan Kwon Date: Mon, 14 Oct 2019 13:26:08 +0900 Subject: [PATCH] Exclude policy-test at docker-build Signed-off-by: Sangwan Kwon --- src/apix/manager/CMakeLists.txt | 5 ++ src/apix/manager/tests/manager_tests.cpp | 46 ----------------- src/apix/manager/tests/tizen/policy_tests.cpp | 71 +++++++++++++++++++++++++++ tools/codegen/templates/default.cpp.in | 7 +-- 4 files changed, 78 insertions(+), 51 deletions(-) create mode 100644 src/apix/manager/tests/tizen/policy_tests.cpp diff --git a/src/apix/manager/CMakeLists.txt b/src/apix/manager/CMakeLists.txt index 3d466f3..cdaba61 100644 --- a/src/apix/manager/CMakeLists.txt +++ b/src/apix/manager/CMakeLists.txt @@ -16,4 +16,9 @@ ADD_APIX_LIBRARY(manager manager.cpp manager_impl.cpp) FILE(GLOB MANAGER_TESTS "tests/*.cpp") + +IF(DEFINED GBS_BUILD) + FILE(GLOB TIZEN_POLICYD_TESTS "tests/tizen/*.cpp") +ENDIF(DEFINED GBS_BUILD) + ADD_APIX_TEST(${MANAGER_TESTS}) diff --git a/src/apix/manager/tests/manager_tests.cpp b/src/apix/manager/tests/manager_tests.cpp index b1b266e..30cac9a 100644 --- a/src/apix/manager/tests/manager_tests.cpp +++ b/src/apix/manager/tests/manager_tests.cpp @@ -21,8 +21,6 @@ #include #include -#include - using namespace osquery; class ManagerTests : public testing::Test {}; @@ -38,50 +36,6 @@ TEST_F(ManagerTests, test_manager_execute) { LOG(INFO) << "\t seconds: " << rows[0]["seconds"]; } -TEST_F(ManagerTests, test_manager_execute_policy) { - std::string query = "SELECT * FROM policy"; - auto rows = OsqueryManager::execute(query); - EXPECT_TRUE(rows.size() > 0); - - LOG(INFO) << "[Test] policy table rows:"; - for (auto& r : rows) { - LOG(INFO) << "\t name: " << r["name"]; - LOG(INFO) << "\t value: " << r["value"]; - } - - query = "SELECT * FROM policy WHERE name = 'bluetooth'"; - rows = OsqueryManager::execute(query); - - LOG(INFO) << "[Test] policy table rows with where clause:"; - for (auto& r : rows) { - LOG(INFO) << "\t name: " << r["name"]; - LOG(INFO) << "\t value: " << r["value"]; - } - - EXPECT_EQ(rows.size(), 1); -} - -TEST_F(ManagerTests, test_manager_execute_policy_update) { - auto& manager = policyd::PolicyManager::Instance(); - manager.enroll("admin", 0); - - std::string query = "SELECT * FROM policy WHERE name = 'bluetooth'"; - auto rows = OsqueryManager::execute(query); - /// Initial policy value - EXPECT_EQ(rows[0]["value"], std::to_string(1)); - - query = "UPDATE policy SET value = '3' WHERE name = 'bluetooth'"; - rows = OsqueryManager::execute(query); - EXPECT_EQ(rows.size(), 0); - - query = "SELECT * FROM policy WHERE name = 'bluetooth'"; - rows = OsqueryManager::execute(query); - /// Initial policy value - EXPECT_EQ(rows[0]["value"], std::to_string(3)); - - manager.disenroll("admin", 0); -} - TEST_F(ManagerTests, test_manager_subscribe) { int called = 0; auto callback = [&](const Row& row) { diff --git a/src/apix/manager/tests/tizen/policy_tests.cpp b/src/apix/manager/tests/tizen/policy_tests.cpp new file mode 100644 index 0000000..e3a5a57 --- /dev/null +++ b/src/apix/manager/tests/tizen/policy_tests.cpp @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +#include + +#include + +#include + +#include + +using namespace osquery; + +class PolicydTests : public testing::Test {}; + +TEST_F(PolicydTests, select) { + std::string query = "SELECT * FROM policy"; + auto rows = OsqueryManager::execute(query); + EXPECT_TRUE(rows.size() > 0); + + LOG(INFO) << "[Test] policy table rows:"; + for (auto& r : rows) { + LOG(INFO) << "\t name: " << r["name"]; + LOG(INFO) << "\t value: " << r["value"]; + } + + query = "SELECT * FROM policy WHERE name = 'bluetooth'"; + rows = OsqueryManager::execute(query); + + LOG(INFO) << "[Test] policy table rows with where clause:"; + for (auto& r : rows) { + LOG(INFO) << "\t name: " << r["name"]; + LOG(INFO) << "\t value: " << r["value"]; + } + + EXPECT_EQ(rows.size(), 1); +} + +TEST_F(PolicydTests, update) { + auto& manager = policyd::PolicyManager::Instance(); + manager.enroll("admin", 0); + + std::string query = "SELECT * FROM policy WHERE name = 'bluetooth'"; + auto rows = OsqueryManager::execute(query); + /// Initial policy value + EXPECT_EQ(rows[0]["value"], std::to_string(1)); + + query = "UPDATE policy SET value = '3' WHERE name = 'bluetooth'"; + rows = OsqueryManager::execute(query); + EXPECT_EQ(rows.size(), 0); + + query = "SELECT * FROM policy WHERE name = 'bluetooth'"; + rows = OsqueryManager::execute(query); + /// Initial policy value + EXPECT_EQ(rows[0]["value"], std::to_string(3)); + + manager.disenroll("admin", 0); +} diff --git a/tools/codegen/templates/default.cpp.in b/tools/codegen/templates/default.cpp.in index 61c26bb..d28ed88 100644 --- a/tools/codegen/templates/default.cpp.in +++ b/tools/codegen/templates/default.cpp.in @@ -29,9 +29,8 @@ osquery::TableRows {{function}}(QueryContext& context); {% if function_update != "" %}\ osquery::QueryData {{function_update}}(QueryContext& context, const PluginRequest& request); -/// patch end - {% endif %}\ +/// patch end {% else %}\ osquery::QueryData {{function}}(QueryContext& context); @@ -40,12 +39,10 @@ osquery::QueryData {{function}}(QueryContext& context); {% if function_update != "" %}\ osquery::QueryData {{function_update}}(QueryContext& context, const PluginRequest& request); -/// patch end - {% endif %}\ +/// patch end {% endif %}\ - {% else %} class {{class_name}} { public: -- 2.7.4