X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fcommon%2Ftests_common.cpp;h=235b062cb254180e499d205d7fb62a29b945f8c6;hb=refs%2Fchanges%2F08%2F200708%2F5;hp=d08893ca3cfbc06a2c763091055b1557326abeb0;hpb=c42afaaba8b60252fc6aec22aa413a7b0d39a0e8;p=platform%2Fcore%2Ftest%2Fsecurity-tests.git diff --git a/src/common/tests_common.cpp b/src/common/tests_common.cpp index d08893c..235b062 100644 --- a/src/common/tests_common.cpp +++ b/src/common/tests_common.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2015 Samsung Electronics Co., Ltd All Rights Reserved + * Copyright (c) 2013 - 2019 Samsung Electronics Co., Ltd All Rights Reserved * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -65,12 +65,6 @@ int drop_root_privileges(uid_t appUid, gid_t appGid) return 1; } -void setLabelForSelf(const int line, const char *label) -{ - int ret = smack_set_label_for_self(label); - RUNNER_ASSERT_MSG(ret == 0, "Error in smack_set_label_for_self(): " << ret << ", line: " << line); -} - /* * Add a new group to the current process groups. */ @@ -240,9 +234,26 @@ void waitPid(pid_t pid) "Child process exited abnormally" << ": ret=" << ret << ", errno=" << errno << ", status=" << status); } -// changes process label -void change_label(const char* label) -{ - int ret = smack_set_label_for_self(label); - RUNNER_ASSERT_MSG(0 == ret, "Error in smack_set_label_for_self("< &process) { + pid_t pid = fork(); + RUNNER_ASSERT_ERRNO_MSG(pid >= 0, "fork failed"); + + if (pid == 0) { + process(); + exit(EXIT_SUCCESS); + } + return pid; } + +void runInChildParentWait(const std::function &process) { + pid_t pid = fork(); + RUNNER_ASSERT_ERRNO_MSG(pid >= 0, "fork failed"); + if (pid == 0) { + process(); + exit(EXIT_SUCCESS); + } else { + waitPid(pid); + } +} +