Add test for security-manager installer service. 73/22773/3
authorMarcin Niesluchowski <m.niesluchow@samsung.com>
Tue, 3 Jun 2014 12:36:59 +0000 (14:36 +0200)
committerMarcin Niesluchowski <m.niesluchow@samsung.com>
Mon, 16 Jun 2014 10:41:02 +0000 (12:41 +0200)
Verification:
-> secuirty-tests.sh security-manager --output=text --runignored
   (all should pass)

Change-Id: I43b10b0032300cbf4b21faceae85d1f1dc1a982f

tests/security-manager-tests/security_manager_tests.cpp

index 66dbf62..bdbef5a 100644 (file)
 
 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);