From 5797b330674db21f90befbf9f4d54da25aa16eca Mon Sep 17 00:00:00 2001 From: Marcin Niesluchowski Date: Tue, 3 Jun 2014 14:36:59 +0200 Subject: [PATCH] Add test for security-manager installer service. Verification: -> secuirty-tests.sh security-manager --output=text --runignored (all should pass) Change-Id: I43b10b0032300cbf4b21faceae85d1f1dc1a982f --- .../security_manager_tests.cpp | 73 +++++++++++++++++----- 1 file changed, 57 insertions(+), 16 deletions(-) diff --git a/tests/security-manager-tests/security_manager_tests.cpp b/tests/security-manager-tests/security_manager_tests.cpp index 66dbf62..bdbef5a 100644 --- a/tests/security-manager-tests/security_manager_tests.cpp +++ b/tests/security-manager-tests/security_manager_tests.cpp @@ -16,14 +16,17 @@ DEFINE_SMARTPTR(security_manager_app_inst_req_free, app_inst_req, AppInstReqUniquePtr); -static const char* SM_APP_ID = "sm_test_app_id"; -static const char* SM_PKG_ID = "sm_test_pkg_id"; +static const char *const SM_APP_ID1 = "sm_test_app_id_double"; +static const char *const SM_PKG_ID1 = "sm_test_pkg_id_double"; -static uid_t SM_ALLOWED_UID1 = 6666; -static uid_t SM_ALLOWED_UID2 = 7777; +static const char *const SM_APP_ID2 = "sm_test_app_id_full"; +static const char *const SM_PKG_ID2 = "sm_test_pkg_id_full"; -static const char* SM_ALLOWED_PERMISSION1 = "security_manager_test_rules2_r"; -static const char* SM_ALLOWED_PERMISSION2 = "security_manager_test_rules2_no_r"; +static const uid_t SM_ALLOWED_UID1 = 6666; +static const uid_t SM_ALLOWED_UID2 = 7777; + +static const char *const SM_ALLOWED_PERMISSION1 = "security_manager_test_rules2_r"; +static const char *const SM_ALLOWED_PERMISSION2 = "security_manager_test_rules2_no_r"; static const char *const XATTR_NAME_TIZENEXEC = XATTR_SECURITY_PREFIX "TIZEN_EXEC_LABEL"; static const rules_t SM_ALLOWED_RULES = { @@ -61,13 +64,13 @@ static const rules_t SM_DENIED_RULES = { { "test_sm_subject_7", USER_APP_ID, "rwx" } }; -static const char* SM_DENIED_PERMISSION1 = "security_manager_test_rules1"; -static const char* SM_DENIED_PERMISSION2 = "security_manager_test_rules2"; +static const char *const SM_DENIED_PERMISSION1 = "security_manager_test_rules1"; +static const char *const SM_DENIED_PERMISSION2 = "security_manager_test_rules2"; -static const char* SM_PRIVATE_PATH = "/etc/smack/test_DIR/app_dir"; -static const char* SM_PUBLIC_PATH = "/etc/smack/test_DIR/app_dir_public"; -static const char* SM_PUBLIC_RO_PATH = "/etc/smack/test_DIR/app_dir_public_ro"; -static const char* SM_DENIED_PATH = "/etc/smack/test_DIR/non_app_dir"; +static const char *const SM_PRIVATE_PATH = "/etc/smack/test_DIR/app_dir"; +static const char *const SM_PUBLIC_PATH = "/etc/smack/test_DIR/app_dir_public"; +static const char *const SM_PUBLIC_RO_PATH = "/etc/smack/test_DIR/app_dir_public_ro"; +static const char *const SM_DENIED_PATH = "/etc/smack/test_DIR/non_app_dir"; static bool isLinkToExec(const char *fpath, const struct stat *sb) @@ -190,6 +193,44 @@ static app_inst_req* do_app_inst_req_new() return req; } +RUNNER_TEST(security_manager_01_app_double_install_double_uninstall) +{ + int result; + AppInstReqUniquePtr request; + + request.reset(do_app_inst_req_new()); + + result = security_manager_app_inst_req_set_app_id(request.get(), SM_APP_ID1); + RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, + "setting app id failed. Result: " << result); + + result = security_manager_app_inst_req_set_pkg_id(request.get(), SM_PKG_ID1); + RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, + "setting pkg id failed. Result: " << result); + + result = security_manager_app_install(request.get()); + RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, + "installing app failed. Result: " << result); + + result = security_manager_app_install(request.get()); + RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, + "installing already installed app failed. Result: " << result); + + request.reset(do_app_inst_req_new()); + + result = security_manager_app_inst_req_set_app_id(request.get(), SM_APP_ID1); + RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, + "setting app id failed. Result: " << result); + + result = security_manager_app_uninstall(request.get()); + RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, + "uninstalling app failed. Result: " << result); + + result = security_manager_app_uninstall(request.get()); + RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, + "uninstalling already uninstalled app failed. Result: " << result); +} + static void prepare_app_path() { int result; @@ -250,7 +291,7 @@ static void check_app_env_after_install() check_app_permission_after_install(); } -RUNNER_TEST(security_manager_01_app_install_unsinstall) +RUNNER_TEST(security_manager_02_app_install_uninstall_full) { int result; AppInstReqUniquePtr request; @@ -259,11 +300,11 @@ RUNNER_TEST(security_manager_01_app_install_unsinstall) request.reset(do_app_inst_req_new()); - result = security_manager_app_inst_req_set_app_id(request.get(), SM_APP_ID); + result = security_manager_app_inst_req_set_app_id(request.get(), SM_APP_ID2); RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, "setting app id failed. Result: " << result); - result = security_manager_app_inst_req_set_pkg_id(request.get(), SM_PKG_ID); + result = security_manager_app_inst_req_set_pkg_id(request.get(), SM_PKG_ID2); RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, "setting pkg id failed. Result: " << result); @@ -304,7 +345,7 @@ RUNNER_TEST(security_manager_01_app_install_unsinstall) request.reset(do_app_inst_req_new()); - result = security_manager_app_inst_req_set_app_id(request.get(), SM_APP_ID); + result = security_manager_app_inst_req_set_app_id(request.get(), SM_APP_ID2); RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS, "setting app id failed. Result: " << result); -- 2.7.4