Add tests for security manager's installer service 12/21612/11
authorJan Cybulski <j.cybulski@samsung.com>
Thu, 5 Jun 2014 13:00:42 +0000 (15:00 +0200)
committerJan Cybulski <j.cybulski@samsung.com>
Mon, 9 Jun 2014 08:52:44 +0000 (10:52 +0200)
Add more specific tests for security manager's
security_manager_app_inst_req_add_path:
Tests for SM_PUBLIC_PATH and SM_PUBLIC_RO_PATH added.

Change-Id: I505fca28ef992676f967fa6cf29bc2d6343388c1
Signed-off-by: Jan Cybulski <j.cybulski@samsung.com>
94 files changed:
packaging/security-tests.spec
tests/security-manager-tests/CMakeLists.txt
tests/security-manager-tests/security_manager_tests.cpp
tests/security-manager-tests/test_DIR/app_dir/.level_1/.level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir/.level_1/.level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir/.level_1/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir/.level_1/level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir/.level_1/level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir/.level_1/link_to_non_app_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir/.level_1/link_to_non_app_normal [new symlink]
tests/security-manager-tests/test_DIR/app_dir/.level_1/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir/level_1/.level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir/level_1/.level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir/level_1/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir/level_1/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir/level_1/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir/level_1/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_dir [new symlink]
tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_normal [new symlink]
tests/security-manager-tests/test_DIR/app_dir/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public/.level_1/.level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public/.level_1/.level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public/.level_1/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public/.level_1/level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public/.level_1/level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public/.level_1/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/.level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/.level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/level_1/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_dir [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_normal [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/.level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/.level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public_ro/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/.level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/.level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_dir [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_normal [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/app_dir_public_ro/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/non_app_dir/.level_1/.level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/non_app_dir/.level_1/.level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/non_app_dir/.level_1/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/non_app_dir/.level_1/level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/non_app_dir/.level_1/level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/non_app_dir/.level_1/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/non_app_dir/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/.level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/.level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/exec [new file with mode: 0755]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/non_app_dir/level_1/normal [new file with mode: 0644]
tests/security-manager-tests/test_DIR/non_app_dir/link_to_exec [new symlink]
tests/security-manager-tests/test_DIR/non_app_dir/link_to_non_exec [new symlink]
tests/security-manager-tests/test_DIR/non_app_dir/normal [new file with mode: 0644]

index 55cf105..47cf9d3 100644 (file)
@@ -45,6 +45,7 @@ ln -sf /etc/smack/test_smack_rules %{buildroot}/etc/smack/test_smack_rules_lnk
 
 %post
 find /etc/smack/test_privilege_control_DIR/ -type f -name exec -exec chmod 0755 {} +
+find /etc/smack/test_DIR/ -type f -name exec -exec chmod 0755 {} +
 
 # Load permissions templates
 api_feature_loader --verbose
@@ -81,6 +82,7 @@ echo "security-tests postinst done ..."
 /etc/smack/test_smack_rules_lnk
 /usr/share/privilege-control/*
 /etc/smack/test_privilege_control_DIR/*
+/etc/smack/test_DIR/*
 /usr/bin/test-app-efl
 /usr/bin/test-app-osp
 /usr/bin/test-app-wgt
index 59af8af..0ade860 100644 (file)
@@ -72,3 +72,8 @@ INSTALL(FILES
     ${PROJECT_SOURCE_DIR}/tests/security-manager-tests/WRT_security_manager_test_rules2_r.smack
     DESTINATION /usr/share/privilege-control/
   )
+
+INSTALL(DIRECTORY
+    ${PROJECT_SOURCE_DIR}/tests/security-manager-tests/test_DIR
+    DESTINATION /etc/smack/
+)
index d1d26a7..2421796 100644 (file)
@@ -4,6 +4,10 @@
 #include <memory.h>
 #include <summary_collector.h>
 
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/xattr.h>
+
 #include <libprivilege-control_test_common.h>
 #include <tests_common.h>
 
@@ -58,8 +62,79 @@ static const rules_t SM_DENIED_RULES = {
 static const char* SM_DENIED_PERMISSION1 = "security_manager_test_rules1";
 static const char* SM_DENIED_PERMISSION2 = "security_manager_test_rules2";
 
-static const char* SM_ALLOWED_PATH = TEST_APP_DIR;
-static const char* SM_DENIED_PATH = TEST_NON_APP_DIR;
+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 int nftw_check_sm_labels_app_dir(const char *fpath, const struct stat *sb,
+                              const char* correctLabel, bool transmute_test, bool exec_test)
+{
+    int result;
+    CStringPtr labelPtr;
+    char* label = NULL;
+
+    /* ACCESS */
+    result = smack_lgetlabel(fpath, &label, SMACK_LABEL_ACCESS);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Could not get label for the path");
+    labelPtr.reset(label);
+    RUNNER_ASSERT_MSG_BT(label != NULL, "ACCESS label on " << fpath << " is not set");
+    result = strcmp(correctLabel, label);
+    RUNNER_ASSERT_MSG_BT(result == 0, "ACCESS label on " << fpath << " is incorrect"
+            " (should be '" << correctLabel << "' and is '" << label << "')");
+
+
+    /* EXEC */
+    result = smack_lgetlabel(fpath, &label, SMACK_LABEL_EXEC);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Could not get label for the path");
+    labelPtr.reset(label);
+
+    if (S_ISREG(sb->st_mode) && (sb->st_mode & S_IXUSR) && exec_test) {
+        RUNNER_ASSERT_MSG_BT(label != NULL, "EXEC label on " << fpath << " is not set");
+        result = strcmp(correctLabel, label);
+        RUNNER_ASSERT_MSG_BT(result == 0, "Incorrect EXEC label on executable file " << fpath);
+    } else
+        RUNNER_ASSERT_MSG_BT(label == NULL, "EXEC label on " << fpath << " is set");
+
+
+    /* TRANSMUTE */
+    result = smack_lgetlabel(fpath, &label, SMACK_LABEL_TRANSMUTE);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Could not get label for the path");
+    labelPtr.reset(label);
+
+    if (S_ISDIR(sb->st_mode) && transmute_test == true) {
+        RUNNER_ASSERT_MSG_BT(label != NULL, "TRANSMUTE label on " << fpath << " is not set at all");
+        RUNNER_ASSERT_MSG_BT(strcmp(label,"TRUE") == 0,
+                "TRANSMUTE label on " << fpath << " is not set properly: '"<<label<<"'");
+    } else {
+        RUNNER_ASSERT_MSG_BT(label == NULL, "TRANSMUTE label on " << fpath << " is set");
+    }
+
+    return 0;
+}
+
+
+static int nftw_check_sm_labels_app_private_dir(const char *fpath, const struct stat *sb,
+                               int /*typeflag*/, struct FTW* /*ftwbuf*/)
+{
+    return nftw_check_sm_labels_app_dir(fpath, sb, USER_APP_ID, false, true);
+}
+
+static int nftw_check_sm_labels_app_public_dir(const char *fpath, const struct stat *sb,
+                               int /*typeflag*/, struct FTW* /*ftwbuf*/)
+{
+
+    return nftw_check_sm_labels_app_dir(fpath, sb, "User", true, false);
+}
+
+static int nftw_check_sm_labels_app_floor_dir(const char *fpath, const struct stat *sb,
+                               int /*typeflag*/, struct FTW* /*ftwbuf*/)
+{
+
+    return nftw_check_sm_labels_app_dir(fpath, sb, "_", false, false);
+}
+
 
 RUNNER_TEST_GROUP_INIT(SECURITY_MANAGER)
 
@@ -79,8 +154,14 @@ static void prepare_app_path()
 {
     int result;
 
-    result = nftw(SM_ALLOWED_PATH, &nftw_remove_labels, FTW_MAX_FDS, FTW_PHYS);
-    RUNNER_ASSERT_MSG_BT(result == 0, "Unable to clean Smack labels in " << SM_ALLOWED_PATH);
+    result = nftw(SM_PRIVATE_PATH, &nftw_remove_labels, FTW_MAX_FDS, FTW_PHYS);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Unable to clean Smack labels in " << SM_PRIVATE_PATH);
+
+    result = nftw(SM_PUBLIC_PATH, &nftw_remove_labels, FTW_MAX_FDS, FTW_PHYS);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Unable to clean Smack labels in " << SM_PUBLIC_PATH);
+
+    result = nftw(SM_PUBLIC_RO_PATH, &nftw_remove_labels, FTW_MAX_FDS, FTW_PHYS);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Unable to clean Smack labels in " << SM_PUBLIC_RO_PATH);
 
     result = nftw(SM_DENIED_PATH, &nftw_set_labels_non_app_dir, FTW_MAX_FDS, FTW_PHYS);
     RUNNER_ASSERT_MSG_BT(result == 0, "Unable to set Smack labels in " << SM_DENIED_PATH);
@@ -90,8 +171,14 @@ static void check_app_path_after_install()
 {
     int result;
 
-    result = nftw(SM_ALLOWED_PATH, &nftw_check_labels_app_private_dir, FTW_MAX_FDS, FTW_PHYS);
-    RUNNER_ASSERT_MSG_BT(result == 0, "Unable to check Smack labels for " << SM_ALLOWED_PATH);
+    result = nftw(SM_PRIVATE_PATH, &nftw_check_sm_labels_app_private_dir, FTW_MAX_FDS, FTW_PHYS);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Unable to check Smack labels for " << SM_PRIVATE_PATH);
+
+    result = nftw(SM_PUBLIC_PATH, &nftw_check_sm_labels_app_public_dir, FTW_MAX_FDS, FTW_PHYS);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Unable to check Smack labels for " << SM_PUBLIC_PATH);
+
+    result = nftw(SM_PUBLIC_RO_PATH, &nftw_check_sm_labels_app_floor_dir, FTW_MAX_FDS, FTW_PHYS);
+    RUNNER_ASSERT_MSG_BT(result == 0, "Unable to check Smack labels for " << SM_PUBLIC_RO_PATH);
 
     result = nftw(SM_DENIED_PATH, &nftw_check_labels_non_app_dir, FTW_MAX_FDS, FTW_PHYS);
     RUNNER_ASSERT_MSG_BT(result == 0, "Unable to check Smack labels for " << SM_DENIED_PATH);
@@ -154,11 +241,21 @@ RUNNER_TEST(security_manager_01_app_install_unsinstall)
     RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS,
             "setting allowed permission failed. Result: " << result);
 
-    result = security_manager_app_inst_req_add_path(request.get(), SM_ALLOWED_PATH,
+    result = security_manager_app_inst_req_add_path(request.get(), SM_PRIVATE_PATH,
                                                     SECURITY_MANAGER_PATH_PRIVATE);
     RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS,
             "setting allowed path failed. Result: " << result);
 
+    result = security_manager_app_inst_req_add_path(request.get(), SM_PUBLIC_PATH,
+                                                    SECURITY_MANAGER_PATH_PUBLIC);
+    RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS,
+            "setting allowed path failed. Result: " << result);
+
+    result = security_manager_app_inst_req_add_path(request.get(), SM_PUBLIC_RO_PATH,
+                                                    SECURITY_MANAGER_PATH_PUBLIC_RO);
+    RUNNER_ASSERT_MSG_BT((lib_retcode)result == SECURITY_MANAGER_SUCCESS,
+            "setting allowed path 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);
diff --git a/tests/security-manager-tests/test_DIR/app_dir/.level_1/.level_2/exec b/tests/security-manager-tests/test_DIR/app_dir/.level_1/.level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/.level_1/.level_2/normal b/tests/security-manager-tests/test_DIR/app_dir/.level_1/.level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/.level_1/exec b/tests/security-manager-tests/test_DIR/app_dir/.level_1/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/.level_1/level_2/exec b/tests/security-manager-tests/test_DIR/app_dir/.level_1/level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/.level_1/level_2/normal b/tests/security-manager-tests/test_DIR/app_dir/.level_1/level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/.level_1/link_to_non_app_exec b/tests/security-manager-tests/test_DIR/app_dir/.level_1/link_to_non_app_exec
new file mode 120000 (symlink)
index 0000000..a3a6771
--- /dev/null
@@ -0,0 +1 @@
+../../non_app_dir/exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/.level_1/link_to_non_app_normal b/tests/security-manager-tests/test_DIR/app_dir/.level_1/link_to_non_app_normal
new file mode 120000 (symlink)
index 0000000..1fdebec
--- /dev/null
@@ -0,0 +1 @@
+../../non_app_dir/normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/.level_1/normal b/tests/security-manager-tests/test_DIR/app_dir/.level_1/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/exec b/tests/security-manager-tests/test_DIR/app_dir/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/.level_2/exec b/tests/security-manager-tests/test_DIR/app_dir/level_1/.level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/.level_2/normal b/tests/security-manager-tests/test_DIR/app_dir/level_1/.level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/exec b/tests/security-manager-tests/test_DIR/app_dir/level_1/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/exec b/tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/normal b/tests/security-manager-tests/test_DIR/app_dir/level_1/level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir/level_1/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir/level_1/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/level_1/normal b/tests/security-manager-tests/test_DIR/app_dir/level_1/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_dir b/tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_dir
new file mode 120000 (symlink)
index 0000000..4c67b09
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_exec b/tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_exec
new file mode 120000 (symlink)
index 0000000..94e5405
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir/exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_normal b/tests/security-manager-tests/test_DIR/app_dir/link_to_non_app_normal
new file mode 120000 (symlink)
index 0000000..f7f5e53
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir/normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir/normal b/tests/security-manager-tests/test_DIR/app_dir/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/.level_2/exec b/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/.level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/.level_2/normal b/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/.level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/exec b/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/level_2/exec b/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/level_2/normal b/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/normal b/tests/security-manager-tests/test_DIR/app_dir_public/.level_1/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/exec b/tests/security-manager-tests/test_DIR/app_dir_public/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/.level_2/exec b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/.level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/.level_2/normal b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/.level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/exec b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/exec b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/normal b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/level_1/normal b/tests/security-manager-tests/test_DIR/app_dir_public/level_1/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir_public/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_dir b/tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_dir
new file mode 120000 (symlink)
index 0000000..4c67b09
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_exec b/tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_exec
new file mode 120000 (symlink)
index 0000000..94e5405
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir/exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_normal b/tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_app_normal
new file mode 120000 (symlink)
index 0000000..f7f5e53
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir/normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir_public/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public/normal b/tests/security-manager-tests/test_DIR/app_dir_public/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/.level_2/exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/.level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/.level_2/normal b/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/.level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/level_2/exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/level_2/normal b/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/normal b/tests/security-manager-tests/test_DIR/app_dir_public_ro/.level_1/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/.level_2/exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/.level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/.level_2/normal b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/.level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/normal b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/normal b/tests/security-manager-tests/test_DIR/app_dir_public_ro/level_1/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_dir b/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_dir
new file mode 120000 (symlink)
index 0000000..4c67b09
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_exec
new file mode 120000 (symlink)
index 0000000..94e5405
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir/exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_normal b/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_app_normal
new file mode 120000 (symlink)
index 0000000..f7f5e53
--- /dev/null
@@ -0,0 +1 @@
+../non_app_dir/normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_exec b/tests/security-manager-tests/test_DIR/app_dir_public_ro/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/app_dir_public_ro/normal b/tests/security-manager-tests/test_DIR/app_dir_public_ro/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/.level_2/exec b/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/.level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/.level_2/normal b/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/.level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/exec b/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/level_2/exec b/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/level_2/normal b/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/normal b/tests/security-manager-tests/test_DIR/non_app_dir/.level_1/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/exec b/tests/security-manager-tests/test_DIR/non_app_dir/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/.level_2/exec b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/.level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/.level_2/normal b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/.level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/exec b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/exec b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/exec
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/link_to_exec b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/link_to_non_exec b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/normal b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/level_2/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/link_to_exec b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/link_to_non_exec b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/level_1/normal b/tests/security-manager-tests/test_DIR/non_app_dir/level_1/normal
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/link_to_exec b/tests/security-manager-tests/test_DIR/non_app_dir/link_to_exec
new file mode 120000 (symlink)
index 0000000..f1b66f3
--- /dev/null
@@ -0,0 +1 @@
+exec
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/link_to_non_exec b/tests/security-manager-tests/test_DIR/non_app_dir/link_to_non_exec
new file mode 120000 (symlink)
index 0000000..5ae0346
--- /dev/null
@@ -0,0 +1 @@
+normal
\ No newline at end of file
diff --git a/tests/security-manager-tests/test_DIR/non_app_dir/normal b/tests/security-manager-tests/test_DIR/non_app_dir/normal
new file mode 100644 (file)
index 0000000..e69de29