From: Sangwan Kwon Date: Tue, 17 Sep 2019 09:53:46 +0000 (+0900) Subject: Change policyd-testbench to gtest X-Git-Tag: submit/tizen/20200810.073515~196 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f3e99f6c59b9c0582775e9bced4dd61ecc64153e;p=platform%2Fcore%2Fsecurity%2Fvist.git Change policyd-testbench to gtest Signed-off-by: Sangwan Kwon --- diff --git a/CMake/Macro.cmake b/CMake/Macro.cmake index e67c9f0..4c9f020 100644 --- a/CMake/Macro.cmake +++ b/CMake/Macro.cmake @@ -46,6 +46,18 @@ MACRO(ADD_APIX_LINK) SET(${TARGET_APIX_LIB}_DEPS ${${TARGET_APIX_LIB}_DEPS} PARENT_SCOPE) ENDMACRO(ADD_APIX_LINK) +## policyd ##################### +MACRO(ADD_POLICYD_LIBRARY TARGET) + ADD_LIBRARY(${TARGET} OBJECT ${ARGN}) + LIST(APPEND ${TARGET_POLICYD_LIB}_SRCS $) + SET(${TARGET_POLICYD_LIB}_SRCS ${${TARGET_POLICYD_LIB}_SRCS} PARENT_SCOPE) +ENDMACRO(ADD_POLICYD_LIBRARY) + +MACRO(ADD_POLICYD_TEST) + LIST(APPEND ${TARGET_POLICYD_LIB}_TESTS ${ARGN}) + SET(${TARGET_POLICYD_LIB}_TESTS ${${TARGET_POLICYD_LIB}_TESTS} PARENT_SCOPE) +ENDMACRO(ADD_POLICYD_TEST) + ## common ############################# MACRO(TARGET_LINK_WHOLE TARGET LIBRARY) TARGET_LINK_LIBRARIES(${TARGET} "-Wl,-whole-archive") diff --git a/packaging/osquery.spec b/packaging/osquery.spec index 226d355..797df79 100644 --- a/packaging/osquery.spec +++ b/packaging/osquery.spec @@ -160,13 +160,10 @@ managing device policies. %attr(700,root,root) %{_bindir}/dpm-admin-cli %attr(755,root,root) %{_bindir}/dpm-syspopup %attr(755,root,root) %{_bindir}/dpm-storage-builder -%attr(755,root,root) %{_bindir}/device-policy-manager %attr(755,root,root) %{_bindir}/device-policy-syspopup -%attr(755,root,root) %{_libdir}/libdpm-pil.so.%{version} %attr(-,%{user_name},%{group_name}) %{dpm_base} %attr(-,%{user_name},%{group_name}) %{dpm_event} %attr(-,%{user_name},%{group_name}) %{dpm_plugins} -%{_libdir}/libdpm-pil.so.0 %{_unitdir}/device-policy-manager.service %{_unitdir}/device-policy-manager.socket %{_unitdir}/sockets.target.wants/device-policy-manager.socket @@ -194,9 +191,7 @@ developing the device policy module. %files policyd-devel #%manifest device-policy-client.manifest %defattr(644,root,root,755) -%{_libdir}/libdpm-pil.so %{_includedir}/dpm -%{_includedir}/dpm/pil %{_libdir}/pkgconfig/dpm-pil.pc ## DPM Syspopup Package ###################################################### @@ -230,7 +225,7 @@ BuildRequires: pkgconfig(klay) Testcases for device policy manager %files policyd-test -%{_bindir}/dpm-test +%{_bindir}/policyd-test ## DPM Plugins - ############################################################ %package policyd-plugins diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8700563..41fa308 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,5 +19,6 @@ ADD_SUBDIRECTORY(osquery) ADD_SUBDIRECTORY(apix) IF(DEFINED GBS_BUILD) + SET(TARGET_POLICYD_LIB policyd) ADD_SUBDIRECTORY(policyd) ENDIF(DEFINED GBS_BUILD) diff --git a/src/policyd/CMakeLists.txt b/src/policyd/CMakeLists.txt index d2e093a..a9b322f 100644 --- a/src/policyd/CMakeLists.txt +++ b/src/policyd/CMakeLists.txt @@ -13,16 +13,70 @@ # limitations under the License. # -ADD_DEFINITIONS(-DUG_WAYLAND) +SET(TARGET_POLICYD_TEST policyd-test) -INCLUDE_DIRECTORIES(SYSTEM .) +SET(${TARGET_POLICYD_LIB}_SRCS "") +SET(${TARGET_POLICYD_LIB}_TESTS "") -ADD_SUBDIRECTORY(conf) +SET(DEPENDENCY appsvc + aul + bundle + capi-base-common + capi-system-info + capi-system-system-settings + cynara-client + cynara-session + deviced + gio-2.0 + glib-2.0 + klay + libtzplatform-config + notification + pkgmgr + pkgmgr-info + security-privilege-manager + sqlite3 + syspopup-caller + vconf) + +PKG_CHECK_MODULES(POLICYD_DEPS REQUIRED ${DEPENDENCY}) + +INCLUDE_DIRECTORIES(SYSTEM . ${POLICYD_DEPS_INCLUDE_DIRS}) + +ADD_DEFINITIONS(-DDATA_PATH="${DATA_INSTALL_DIR}" + -DRUN_PATH="${RUN_INSTALL_DIR}" + -DDB_PATH="${DB_INSTALL_DIR}" + -DPLUGIN_INSTALL_DIR="${PLUGIN_INSTALL_DIR}" + -DEVENT_CONFIGURE_DIR="${EVENT_CONFIGURE_DIR}") ADD_SUBDIRECTORY(client) +ADD_SUBDIRECTORY(conf) ADD_SUBDIRECTORY(pil) ADD_SUBDIRECTORY(server) +ADD_SUBDIRECTORY(tools) + +ADD_DEFINITIONS(-DUG_WAYLAND) ADD_SUBDIRECTORY(ui) -ADD_SUBDIRECTORY(tests) -ADD_SUBDIRECTORY(tools) +ADD_LIBRARY(${TARGET_POLICYD_LIB} STATIC ${${TARGET_POLICYD_LIB}_SRCS}) + +TARGET_LINK_LIBRARIES(${TARGET_POLICYD_LIB} ${POLICYD_DEPS_LIBRARIES} pthread dl) + +SET_TARGET_PROPERTIES(${TARGET_POLICYD_LIB} PROPERTIES COMPILE_FLAGS "-fPIE") +SET_TARGET_PROPERTIES(${TARGET_POLICYD_LIB} PROPERTIES LINK_FLAGS "-pie") + +ADD_EXECUTABLE(${TARGET_POLICYD_TEST} ../apix/main/tests.cpp + ${${TARGET_POLICYD_LIB}_TESTS}) + +TARGET_LINK_LIBRARIES(${TARGET_POLICYD_TEST} ${TARGET_POLICYD_LIB} + gtest) +ADD_TEST(${TARGET_POLICYD_TEST} ${TARGET_POLICYD_TEST}) +INSTALL(TARGETS ${TARGET_POLICYD_TEST} + DESTINATION ${CMAKE_INSTALL_BINDIR} + PERMISSIONS OWNER_READ + OWNER_WRITE + OWNER_EXECUTE + GROUP_READ + GROUP_EXECUTE + WORLD_READ + WORLD_EXECUTE) diff --git a/src/policyd/pil/CMakeLists.txt b/src/policyd/pil/CMakeLists.txt index 4cf1a88..c0e3d7a 100644 --- a/src/policyd/pil/CMakeLists.txt +++ b/src/policyd/pil/CMakeLists.txt @@ -13,69 +13,14 @@ # limitations under the License. # -SET(PIL_TARGET "dpm-pil") - -SET(LIB_VERSION "${VERSION}") -SET(LIB_SOVERSION "0") - -SET(PIL app-bundle.cpp - launchpad.cpp - logger.cpp - packman.cpp - policy-event.cpp - policy-client.cpp - policy-admin.cpp - policy-storage.cpp) - -SET(PAPIS app-bundle.h - launchpad.h - logger.h - packman.h - policy-event.h - policy-admin.h - policy-client.h - policy-model.h - policy-storage.h - status.h - observer.h) - -SET(DEPENDENCY klay - glib-2.0 - gio-2.0 - sqlite3 - bundle - aul - appsvc - pkgmgr - pkgmgr-info - vconf - syspopup-caller - deviced - libtzplatform-config - security-privilege-manager - capi-system-info - capi-base-common - capi-system-system-settings - notification - cynara-client - cynara-session) - -PKG_CHECK_MODULES(PIL_DEPS REQUIRED ${DEPENDENCY}) - -INCLUDE_DIRECTORIES(SYSTEM "${PIL_DEPS_INCLUDE_DIRS}") - -SET (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-z,noexecstack") - -ADD_LIBRARY(${PIL_TARGET} SHARED ${PIL}) - -SET_TARGET_PROPERTIES(${PIL_TARGET} PROPERTIES COMPILE_FLAGS "-fvisibility=default") -SET_TARGET_PROPERTIES(${PIL_TARGET} PROPERTIES SOVERSION ${LIB_SOVERSION}) -SET_TARGET_PROPERTIES(${PIL_TARGET} PROPERTIES VERSION ${LIB_VERSION}) - -TARGET_COMPILE_DEFINITIONS(${PIL_TARGET} PRIVATE - EVENT_CONFIGURE_DIR="${EVENT_CONFIGURE_DIR}" -) - -TARGET_LINK_LIBRARIES(${PIL_TARGET} ${PIL_DEPS_LIBRARIES} pthread sqlite3) -INSTALL(FILES ${PAPIS} DESTINATION ${INCLUDE_INSTALL_DIR}/dpm/pil) -INSTALL(TARGETS ${PIL_TARGET} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) +ADD_POLICYD_LIBRARY(pil app-bundle.cpp + launchpad.cpp + logger.cpp + packman.cpp + policy-event.cpp + policy-client.cpp + policy-admin.cpp + policy-storage.cpp) + +FILE(GLOB PIL_TESTS "tests/*.cpp") +ADD_POLICYD_TEST(${PIL_TESTS}) diff --git a/src/policyd/pil/tests/policy_tests.cpp b/src/policyd/pil/tests/policy_tests.cpp new file mode 100644 index 0000000..f5af517 --- /dev/null +++ b/src/policyd/pil/tests/policy_tests.cpp @@ -0,0 +1,48 @@ +/* + * 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 "../global-policy.h" +#include "../domain-policy.h" +#include "../policy-storage.h" +#include "../policy-event.h" + +/// TODO(Sangwan): Refactor policy-model +/// => Let client know only global-policy or domain-policy + +class PolicyModelTests : public testing::Test {}; + +class TestGlobalPolicy : public GlobalPolicy { +public: + TestGlobalPolicy() : GlobalPolicy("test_policy") + { + PolicyEventNotifier::create("test_policy"); + } + + bool apply(const DataSetInt&, uid_t) + { + PolicyEventNotifier::emit("test_policy", "allowed"); + return true; + } +}; + +TEST_F(PolicyModelTests, global_policy) { + AbstractPolicyProvider provider; + provider.policies.emplace_back(std::make_shared()); + + EXPECT_EQ(provider.policies.size(), 1); +} diff --git a/src/policyd/server/CMakeLists.txt b/src/policyd/server/CMakeLists.txt index 7d179be..8762a41 100644 --- a/src/policyd/server/CMakeLists.txt +++ b/src/policyd/server/CMakeLists.txt @@ -13,46 +13,9 @@ # limitations under the License. # -SET(TARGET device-policy-manager) -SET(TARGET_SERVER_LIB dpm-server) +ADD_POLICYD_LIBRARY(server server.cpp + sql-backend.cpp + plugin.cpp) -SET(SERVER_SRC server.cpp - sql-backend.cpp - plugin.cpp) - -SET(SERVER_DEP klay - glib-2.0 - gio-2.0 - sqlite3 - bundle - aul - appsvc - pkgmgr - pkgmgr-info - vconf - syspopup-caller - deviced - libtzplatform-config - cynara-client - cynara-session) - -PKG_CHECK_MODULES(SERVER_DEPS REQUIRED ${SERVER_DEP}) - -INCLUDE_DIRECTORIES(${SERVER_DEPS_INCLUDE_DIRS}) - -ADD_LIBRARY(${TARGET_SERVER_LIB} STATIC ${SERVER_SRC}) -TARGET_LINK_LIBRARIES(${TARGET_SERVER_LIB} ${SERVER_DEPS_LIBRARIES} -ldl) - -TARGET_COMPILE_DEFINITIONS(${TARGET_SERVER_LIB} PRIVATE - DATA_PATH="${DATA_INSTALL_DIR}" - RUN_PATH="${RUN_INSTALL_DIR}" - DB_PATH="${DB_INSTALL_DIR}" - PLUGIN_INSTALL_DIR="${PLUGIN_INSTALL_DIR}") - -ADD_EXECUTABLE(${TARGET} main.cpp) -TARGET_LINK_LIBRARIES(${TARGET} dl pthread sqlite3 dpm-pil ${TARGET_SERVER_LIB}) - -SET_TARGET_PROPERTIES(${TARGET} PROPERTIES COMPILE_FLAGS "-fPIE") -SET_TARGET_PROPERTIES(${TARGET} PROPERTIES LINK_FLAGS "-pie") - -INSTALL(TARGETS ${TARGET} DESTINATION bin) +FILE(GLOB SERVER_TESTS "tests/*.cpp") +ADD_POLICYD_TEST(${SERVER_TESTS}) diff --git a/src/policyd/tools/cli/CMakeLists.txt b/src/policyd/tools/cli/CMakeLists.txt index 09df8ee..c9663bd 100644 --- a/src/policyd/tools/cli/CMakeLists.txt +++ b/src/policyd/tools/cli/CMakeLists.txt @@ -26,7 +26,7 @@ ADD_EXECUTABLE(${DPM_ADMIN_CLI_TARGET} ${DPM_ADMIN_CLI_SOURCES}) INCLUDE_DIRECTORIES(SYSTEM ${CMAKE_SOURCE_DIR}/src ${DPM_ADMIN_CLI_TARGET_DEP_INCLUDE_DIRS}) -TARGET_LINK_LIBRARIES(${DPM_ADMIN_CLI_TARGET} dpm-pil) +TARGET_LINK_LIBRARIES(${DPM_ADMIN_CLI_TARGET} policyd) SET_TARGET_PROPERTIES(${DPM_ADMIN_CLI_TARGET} PROPERTIES COMPILE_FLAGS "-fPIE") SET_TARGET_PROPERTIES(${DPM_ADMIN_CLI_TARGET} PROPERTIES LINK_FLAGS "-pie") diff --git a/src/policyd/ui/CMakeLists.txt b/src/policyd/ui/CMakeLists.txt index 53643a3..3e3bcbf 100644 --- a/src/policyd/ui/CMakeLists.txt +++ b/src/policyd/ui/CMakeLists.txt @@ -41,7 +41,7 @@ PKG_CHECK_MODULES(SERVER_DEPS REQUIRED ${SERVER_DEP}) INCLUDE_DIRECTORIES(${SERVER_DEPS_INCLUDE_DIRS}) ADD_EXECUTABLE(${TARGET_SYSPOPUP} ${SYSPOPUP}) -TARGET_LINK_LIBRARIES(${TARGET_SYSPOPUP} ${SERVER_DEPS_LIBRARIES} dpm-pil) +TARGET_LINK_LIBRARIES(${TARGET_SYSPOPUP} ${SERVER_DEPS_LIBRARIES} policyd) SET_TARGET_PROPERTIES(${TARGET_SYSPOPUP} PROPERTIES COMPILE_FLAGS "-fPIE") SET_TARGET_PROPERTIES(${TARGET_SYSPOPUP} PROPERTIES LINK_FLAGS "-pie")