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 = {
{ "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)
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;
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;
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);
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);