From d9104fa1c28221f3eb203783bb14b8b240baabc4 Mon Sep 17 00:00:00 2001 From: Michal Eljasiewicz Date: Fri, 30 Jan 2015 13:46:47 +0100 Subject: [PATCH] Add wrappers for policy updating API functions Change-Id: I71f62d440c267346c8ed6f3e85a1165a4912494e Signed-off-by: Michal Eljasiewicz Signed-off-by: Krzysztof Sasiak --- tests/security-manager-tests/common/sm_api.cpp | 58 ++++++++++++++++++++++++++ tests/security-manager-tests/common/sm_api.h | 6 ++- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/tests/security-manager-tests/common/sm_api.cpp b/tests/security-manager-tests/common/sm_api.cpp index 6fc59ee..12ede82 100644 --- a/tests/security-manager-tests/common/sm_api.cpp +++ b/tests/security-manager-tests/common/sm_api.cpp @@ -119,6 +119,64 @@ void deleteUser(const UserRequest &request, lib_retcode expectedResult) << " Expected result: " << expectedResult); } +void sendPolicy(const PolicyRequest &request, lib_retcode expectedResult) +{ + int result = security_manager_policy_update_send(request.get()); + RUNNER_ASSERT_MSG((lib_retcode)result == expectedResult, + "sending policy update for self returned wrong value." + << " PolicyRequest: [ " << request << "];" + << " Result: " << result << ";" + << " Expected result: " << expectedResult); +} + +void getConfiguredPolicy(const PolicyEntry &filter, std::vector &policyEntries, lib_retcode expectedResult, bool forAdmin) +{ + policy_entry **pp_privs_policy = NULL; + size_t policy_size = 0; + int result; + + if (forAdmin) { + result = security_manager_get_configured_policy_for_admin(filter.get(), &pp_privs_policy, &policy_size); + } else { + result = security_manager_get_configured_policy_for_self(filter.get(), &pp_privs_policy, &policy_size); + }; + + RUNNER_ASSERT_MSG((lib_retcode)result == expectedResult, + "Unexpected result for filter: " << filter << std::endl + << " Result: " << result << ";"); + + for (unsigned int i = 0; i < policy_size; ++i) { + PolicyEntry pe(*pp_privs_policy[i]); + policyEntries.push_back(pe); + }; +} + +void getPolicy(const PolicyEntry &filter, std::vector &policyEntries, lib_retcode expectedResult) +{ + policy_entry **pp_privs_policy = NULL; + size_t policy_size = 0; + int result; + + result = security_manager_get_policy(filter.get(), &pp_privs_policy, &policy_size); + RUNNER_ASSERT_MSG((lib_retcode)result == expectedResult, + "Unexpected result" << std::endl + << " Result: " << result << ";"); + for (unsigned int i = 0; i < policy_size; ++i) { + PolicyEntry pe(*pp_privs_policy[i]); + policyEntries.push_back(pe); + }; +} + +void getPolicyForSelf(const PolicyEntry &filter, std::vector &policyEntries, lib_retcode expectedResult) +{ + getConfiguredPolicy(filter, policyEntries, expectedResult, false); +} + +void getPolicyForAdmin(const PolicyEntry &filter, std::vector &policyEntries, lib_retcode expectedResult) +{ + getConfiguredPolicy(filter, policyEntries, expectedResult, true); +} + } // namespace Api } // namespace SecurityManagerTest diff --git a/tests/security-manager-tests/common/sm_api.h b/tests/security-manager-tests/common/sm_api.h index a5f5921..8a99e32 100644 --- a/tests/security-manager-tests/common/sm_api.h +++ b/tests/security-manager-tests/common/sm_api.h @@ -19,6 +19,7 @@ #include #include +#include #include @@ -35,7 +36,10 @@ void dropProcessPrivileges(lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS void prepareApp(const char *appId, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); void addUser(const UserRequest &request, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); void deleteUser(const UserRequest &request, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); - +void sendPolicy(const PolicyRequest &request, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); +void getPolicy(const PolicyEntry &filter, std::vector &policyEntries, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); +void getPolicyForSelf(const PolicyEntry &filter, std::vector &policyEntries, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); +void getPolicyForAdmin(const PolicyEntry &filter, std::vector &policyEntries, lib_retcode expectedResult = SECURITY_MANAGER_SUCCESS); } // namespace Api } // namespace SecurityManagerTest -- 2.7.4