<filesystem path="/usr/bin/security-server-tests-password" exec_label="_" />
<filesystem path="/usr/bin/security-server-tests-stress" exec_label="_" />
<filesystem path="/usr/bin/security-server-tests-dbus" exec_label="_" />
+
+ <filesystem path="/usr/bin/hello-tizen" exec_label="hello-tizen" />
</assign>
<request>
<domain name="_" />
/usr/bin/uqNfgEjqc7-1.0.0-arm.tpk
/usr/bin/j4RuPsZrNt-1.0.0-arm.tpk
/usr/bin/V5LKqDFBXm-1.0.0-arm.tpk
+/usr/bin/hello-tizen
# @brief
#
INCLUDE(FindPkgConfig)
+
+SET(HELLO_TIZEN_TEST "hello-tizen")
+SET(HELLO_TIZEN_TEST_SOURCES
+ ${PROJECT_SOURCE_DIR}/tests/libprivilege-control-tests/hello-tizen.cpp
+ )
+ADD_EXECUTABLE( ${HELLO_TIZEN_TEST} ${HELLO_TIZEN_TEST_SOURCES} )
+INSTALL(TARGETS ${HELLO_TIZEN_TEST}
+ DESTINATION /usr/bin
+ PERMISSIONS OWNER_READ
+ OWNER_WRITE
+ OWNER_EXECUTE
+ GROUP_READ
+ GROUP_EXECUTE
+ WORLD_READ
+ WORLD_EXECUTE
+ )
+
+
SET(LPC_TARGET_TEST "libprivilege-control-test")
#dependencies
${PROJECT_SOURCE_DIR}/tests/libprivilege-control-tests/EFL_test_privilege_control_rules_efl.smack
DESTINATION /usr/share/privilege-control/
)
+
+INSTALL(FILES
+ ${PROJECT_SOURCE_DIR}/tests/libprivilege-control-tests/EFL_test_privilege_control_rules_efl.dac
+ DESTINATION /usr/share/privilege-control/
+ )
--- /dev/null
+24567
+75678
#define APP_TEST "app_test"
-#define EFL_APP_ID "EFL_APP_ID"
+#define EFL_APP_ID "hello-tizen"
#define APP_FRIEND_1 "app_friend_1"
#define APP_FRIEND_2 "app_friend_2"
#define LIBPRIVILEGE_TEST_DAC_FILE "/usr/share/privilege-control/test_privilege_control_rules.dac"
#define LIBPRIVILEGE_TEST_DAC_FILE_WGT "/usr/share/privilege-control/WRT_test_privilege_control_rules_wgt.dac"
#define LIBPRIVILEGE_TEST_DAC_FILE_OSP "/usr/share/privilege-control/OSP_test_privilege_control_rules_osp.dac"
+#define LIBPRIVILEGE_TEST_DAC_FILE_EFL "/usr/share/privilege-control/EFL_test_privilege_control_rules_efl.dac"
#define APP_TEST_APP_1 "test-application1"
#define APP_TEST_APP_2 "test-application_2"
#define OSP_PARTNER_APP_PATH "/opt/usr/apps/j4RuPsZrNt/bin/PysiuMisiu123OspPartner"
#define OSP_PLATFORM_APP_PATH "/opt/usr/apps/V5LKqDFBXm/bin/PysiuMisiu123OspPlatform"
+#define EFL_APP_PATH "/usr/bin/hello-tizen"
+
#define APP_SET_PRIV_PATH "/etc/smack/test_privilege_control_DIR/test_set_app_privilege/test_APP"
#define APP_NPRUNTIME "app_np_test"
{ "test_subject_15", WGT_APP_ID, "r" }
};
-// Rules from EFL_test_privilege_control_rules_osp.smack for osp_platform
+// Rules from EFL_test_privilege_control_rules_efl.smack for rpm
const rules_t rules_efl = {
- { APP_ID, "test_book_efl", "r" }
+ { EFL_APP_ID, "test_book_efl", "r" }
};
// Rules from WRT_test_privilege_control_rules_wgt.smack for wgt
void check_groups(const char *dac_file);
int file_exists(const char *path);
-void check_app_installed(int line_no, const char *app_path);
+void check_app_installed(const char *app_path);
int nftw_remove_labels(const char *fpath, const struct stat* /*sb*/,
int /*typeflag*/, struct FTW* /*ftwbuf*/);
--- /dev/null
+#include <iostream>
+
+int main() {
+ std::cout << "Hello Tizen!" << std::endl;
+ return 0;
+}
return -1;
}
-void check_app_installed(int line_no, const char *app_path)
+void check_app_installed(const char *app_path)
{
- RUNNER_ASSERT_MSG_BT(file_exists(app_path) == 0, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(file_exists(app_path) == 0,
" App not installed: " << app_path);
}
int result = 0;
DB_BEGIN
- result = perm_app_uninstall(APP_ID);
+ result = perm_app_uninstall(EFL_APP_ID);
RUNNER_ASSERT_MSG_BT(result == 0, "perm_app_uninstall returned " << result << ". Errno: " << strerror(errno));
- result = perm_app_install(APP_ID);
+ result = perm_app_install(EFL_APP_ID);
RUNNER_ASSERT_MSG_BT(result == 0, "perm_app_install returned " << result << ". Errno: " << strerror(errno));
- result = perm_app_setup_permissions(APP_ID, APP_TYPE_EFL, PRIVS_EFL);
+ result = perm_app_setup_permissions(EFL_APP_ID, APP_TYPE_EFL, PRIVS_EFL);
RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS,
" perm_app_setup_permissions failed with result: " << result);
DB_END
// Check if permission is assigned to app in db
- check_app_has_permission(APP_ID, APP_TYPE_EFL, PRIVS_EFL, true);
+ check_app_has_permission(EFL_APP_ID, APP_TYPE_EFL, PRIVS_EFL, true);
// Check if the accesses are realy applied..
result = test_have_all_accesses(rules_efl);
DB_BEGIN
- result = perm_app_uninstall(APP_ID);
+ result = perm_app_uninstall(EFL_APP_ID);
RUNNER_ASSERT_MSG_BT(result == 0, "perm_app_uninstall returned " << result << ". Errno: " << strerror(errno));
DB_END
test_revoke_permissions(__LINE__, OSP_PLATFORM_APP_ID, rules_osp_platform, true);
}
-
-void set_app_privilege(int line_no,
+void test_set_app_privilege(
const char* app_id, app_type_t APP_TYPE,
const char** privileges, const char* type,
const char* app_path, const char* dac_file,
const rules_t &rules) {
- check_app_installed(line_no, app_path);
+ check_app_installed(app_path);
int result;
DB_BEGIN
result = perm_app_uninstall(app_id);
- RUNNER_ASSERT_MSG_BT(result == 0, "Line: " << line_no <<
- " perm_app_uninstall returned " << result << ". Errno: " << strerror(errno));
+ RUNNER_ASSERT_MSG_BT(result == 0,
+ " perm_app_uninstall returned " << result << ". "
+ "Errno: " << strerror(errno));
result = perm_app_install(app_id);
- RUNNER_ASSERT_MSG_BT(result == 0, "Line: " << line_no <<
- " perm_app_install returned " << result << ". Errno: " << strerror(errno));
+ RUNNER_ASSERT_MSG_BT(result == 0,
+ " perm_app_install returned " << result << ". "
+ "Errno: " << strerror(errno));
// TEST:
result = perm_app_setup_permissions(app_id, APP_TYPE, privileges);
- RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS,
" Error registering app permissions. Result: " << result);
DB_END
RUNNER_ASSERT_MSG_BT(result == 1, "Permissions not added.");
result = perm_app_set_privilege(app_id, type, app_path);
- RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS,
" Error in perm_app_set_privilege. Error: " << result);
// Check if SMACK label really set
char *label;
result = smack_new_label_from_self(&label);
- RUNNER_ASSERT_MSG_BT(result >= 0, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(result >= 0,
" Error getting current process label");
- RUNNER_ASSERT_MSG_BT(label != NULL, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(label != NULL,
" Process label is not set");
result = strcmp(app_id, label);
- RUNNER_ASSERT_MSG_BT(result == 0, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(result == 0,
" Process label " << label << " is incorrect");
check_groups(dac_file);
*/
RUNNER_CHILD_TEST_SMACK(privilege_control05_set_app_privilege_wgt)
{
- set_app_privilege(__LINE__,WGT_APP_ID, APP_TYPE_WGT, PRIVS_WGT, "wgt", WGT_APP_PATH,
+ test_set_app_privilege(WGT_APP_ID, APP_TYPE_WGT, PRIVS_WGT, "wgt", WGT_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_WGT, rules_wgt);
}
*/
RUNNER_CHILD_TEST_SMACK(privilege_control05_set_app_privilege_wgt_partner)
{
- set_app_privilege(__LINE__, WGT_PARTNER_APP_ID, APP_TYPE_WGT_PARTNER, PRIVS_WGT,
+ test_set_app_privilege(WGT_PARTNER_APP_ID, APP_TYPE_WGT_PARTNER, PRIVS_WGT,
"wgt_partner", WGT_PARTNER_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_WGT, rules_wgt_partner);
}
*/
RUNNER_CHILD_TEST_SMACK(privilege_control05_set_app_privilege_wgt_platform)
{
- set_app_privilege(__LINE__, WGT_PLATFORM_APP_ID, APP_TYPE_WGT_PLATFORM, PRIVS_WGT,
+ test_set_app_privilege(WGT_PLATFORM_APP_ID, APP_TYPE_WGT_PLATFORM, PRIVS_WGT,
"wgt_platform", WGT_PLATFORM_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_WGT, rules_wgt_platform);
}
*/
RUNNER_CHILD_TEST_SMACK(privilege_control05_set_app_privilege_osp)
{
- set_app_privilege(__LINE__, OSP_APP_ID, APP_TYPE_OSP, PRIVS_OSP, NULL, OSP_APP_PATH,
+ test_set_app_privilege(OSP_APP_ID, APP_TYPE_OSP, PRIVS_OSP, "tpk", OSP_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_OSP, rules_osp);
}
*/
RUNNER_CHILD_TEST_SMACK(privilege_control05_set_app_privilege_osp_partner)
{
- set_app_privilege(__LINE__, OSP_PARTNER_APP_ID, APP_TYPE_OSP_PARTNER, PRIVS_OSP,
- NULL, OSP_PARTNER_APP_PATH, LIBPRIVILEGE_TEST_DAC_FILE_OSP, rules_osp_partner);
+ test_set_app_privilege(OSP_PARTNER_APP_ID, APP_TYPE_OSP_PARTNER, PRIVS_OSP,
+ "tpk", OSP_PARTNER_APP_PATH, LIBPRIVILEGE_TEST_DAC_FILE_OSP, rules_osp_partner);
}
/**
*/
RUNNER_CHILD_TEST_SMACK(privilege_control05_set_app_privilege_osp_platform)
{
- set_app_privilege(__LINE__, OSP_PLATFORM_APP_ID, APP_TYPE_OSP_PLATFORM, PRIVS_OSP,
- NULL, OSP_PLATFORM_APP_PATH,
+ test_set_app_privilege(OSP_PLATFORM_APP_ID, APP_TYPE_OSP_PLATFORM, PRIVS_OSP,
+ "tpk", OSP_PLATFORM_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_OSP, rules_osp_platform);
}
+
+RUNNER_CHILD_TEST_SMACK(privilege_control05_set_app_privilege_efl)
+{
+ test_set_app_privilege(EFL_APP_ID, PERM_APP_TYPE_EFL, PRIVS_EFL,
+ "rpm", EFL_APP_PATH,
+ LIBPRIVILEGE_TEST_DAC_FILE_EFL, rules_efl);
+}
+
/**
* Check perm_get_permissions()
*/
"perm_app_install returned " << result << ". Errno: " << strerror(errno));
//Add permissions
- result = perm_app_enable_permissions(APP_ID, APP_TYPE_EFL, PRIVS_EFL, TRUE);
+ result = perm_app_enable_permissions(APP_ID, APP_TYPE_EFL, PRIVS_EFL, true);
RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS,
"Error adding app permissions. Result: " << result);
TestLibPrivilegeControlDatabase db_test;
db_test.test_db_after__perm_app_install(APP_ID);
- db_test.test_db_after__perm_app_enable_permissions(APP_ID, APP_TYPE_EFL, PRIVS_EFL, TRUE);
+ db_test.test_db_after__perm_app_enable_permissions(APP_ID, APP_TYPE_EFL, PRIVS_EFL, true);
+
+ DB_BEGIN
+
+ result = perm_app_disable_permissions(APP_ID, APP_TYPE_EFL, PRIVS_EFL);
+ RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS,
+ "Error disabling permissions: " << perm_strerror(result));
+ DB_END
}
-void set_app_privilege_nosmack(int line_no,
+void test_set_app_privilege_nosmack(
const char* app_id, app_type_t app_type,
const char** privileges, const char* type,
const char* app_path, const char* dac_file,
const rules_t &rules)
{
- check_app_installed(line_no, app_path);
+ check_app_installed(app_path);
int result;
"perm_app_install returned " << result << ". Errno: " << strerror(errno));
result = perm_app_enable_permissions(app_id, app_type, privileges, 1);
- RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS,
" Error enabling app permissions. Result: " << result);
DB_END
result = test_have_nosmack_accesses(rules);
- RUNNER_ASSERT_MSG_BT(result == -1, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(result == -1,
" Permissions shouldn't be added. Result: " << result);
result = perm_app_set_privilege(app_id, type, app_path);
- RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS,
" Error in perm_app_set_privilege. Error: " << result);
//Even though app privileges are set, no smack label should be extracted.
char* label = NULL;
result = smack_new_label_from_self(&label);
- RUNNER_ASSERT_MSG_BT(result == -1, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(result == -1,
" new_label_from_self should return error (SMACK is off). Result: " << result);
- RUNNER_ASSERT_MSG_BT(label == NULL, "Line: " << line_no <<
+ RUNNER_ASSERT_MSG_BT(label == NULL,
" new_label_from_self shouldn't allocate memory for label.");
check_groups(dac_file);
{
int result;
- check_app_installed(__LINE__, APP_SET_PRIV_PATH);
+ check_app_installed(APP_SET_PRIV_PATH);
//Preset exec label
smack_lsetlabel(APP_SET_PRIV_PATH_REAL, APP_ID, SMACK_LABEL_EXEC);
smack_lsetlabel(APP_SET_PRIV_PATH, APP_ID "_symlink", SMACK_LABEL_EXEC);
+ DB_BEGIN
+ perm_app_uninstall(APP_ID);
+ DB_END
+
//Set app privileges
result = perm_app_set_privilege(APP_ID, NULL, APP_SET_PRIV_PATH);
RUNNER_ASSERT_MSG_BT(result == PC_OPERATION_SUCCESS,
*/
RUNNER_CHILD_TEST_NOSMACK(privilege_control05_set_app_privilege_wgt_nosmack)
{
- set_app_privilege_nosmack(__LINE__, WGT_APP_ID, APP_TYPE_WGT, PRIVS_WGT, "wgt", WGT_APP_PATH,
+ test_set_app_privilege_nosmack(WGT_APP_ID, APP_TYPE_WGT, PRIVS_WGT, "wgt", WGT_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_WGT, rules_wgt);
}
*/
RUNNER_CHILD_TEST_NOSMACK(privilege_control05_set_app_privilege_wgt_partner_nosmack)
{
- set_app_privilege_nosmack(__LINE__, WGT_PARTNER_APP_ID, APP_TYPE_WGT_PARTNER, PRIVS_WGT,
+ test_set_app_privilege_nosmack(WGT_PARTNER_APP_ID, APP_TYPE_WGT_PARTNER, PRIVS_WGT,
"wgt_partner", WGT_PARTNER_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_WGT, rules_wgt_partner);
}
*/
RUNNER_CHILD_TEST_NOSMACK(privilege_control05_set_app_privilege_wgt_platform_nosmack)
{
- set_app_privilege_nosmack(__LINE__, WGT_PLATFORM_APP_ID, APP_TYPE_WGT_PLATFORM, PRIVS_WGT,
+ test_set_app_privilege_nosmack(WGT_PLATFORM_APP_ID, APP_TYPE_WGT_PLATFORM, PRIVS_WGT,
"wgt_platform", WGT_PLATFORM_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_WGT, rules_wgt_platform);
}
*/
RUNNER_CHILD_TEST_NOSMACK(privilege_control05_set_app_privilege_osp_nosmack)
{
- set_app_privilege_nosmack(__LINE__, OSP_APP_ID, APP_TYPE_OSP, PRIVS_OSP, NULL, OSP_APP_PATH,
+ test_set_app_privilege_nosmack(OSP_APP_ID, APP_TYPE_OSP, PRIVS_OSP, "tpk", OSP_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_OSP, rules_osp);
}
*/
RUNNER_CHILD_TEST_NOSMACK(privilege_control05_set_app_privilege_osp_partner_nosmack)
{
- set_app_privilege_nosmack(__LINE__, OSP_PARTNER_APP_ID, APP_TYPE_OSP_PARTNER, PRIVS_OSP,
- NULL, OSP_PARTNER_APP_PATH, LIBPRIVILEGE_TEST_DAC_FILE_OSP, rules_osp_partner);
+ test_set_app_privilege_nosmack(OSP_PARTNER_APP_ID, APP_TYPE_OSP_PARTNER, PRIVS_OSP,
+ "tpk", OSP_PARTNER_APP_PATH, LIBPRIVILEGE_TEST_DAC_FILE_OSP, rules_osp_partner);
}
/**
*/
RUNNER_CHILD_TEST_NOSMACK(privilege_control05_set_app_privilege_osp_platform_nosmack)
{
- set_app_privilege_nosmack(__LINE__, OSP_PLATFORM_APP_ID, APP_TYPE_OSP_PLATFORM, PRIVS_OSP,
- NULL, OSP_PLATFORM_APP_PATH,
+ test_set_app_privilege_nosmack(OSP_PLATFORM_APP_ID, APP_TYPE_OSP_PLATFORM, PRIVS_OSP,
+ "tpk", OSP_PLATFORM_APP_PATH,
LIBPRIVILEGE_TEST_DAC_FILE_OSP, rules_osp_platform);
}
+RUNNER_CHILD_TEST_NOSMACK(privilege_control05_set_app_privilege_efl_nosmack)
+{
+ test_set_app_privilege_nosmack(EFL_APP_ID, PERM_APP_TYPE_EFL, PRIVS_EFL,
+ "rpm", EFL_APP_PATH,
+ LIBPRIVILEGE_TEST_DAC_FILE_EFL, rules_efl);
+}
+
/**
* Revoke permissions from the list. Should be executed as privileged user.
*/