| Index: client/site_tests/platform_ProcessPrivileges/platform_ProcessPrivileges.py
|
| diff --git a/client/site_tests/platform_ProcessPrivileges/platform_ProcessPrivileges.py b/client/site_tests/platform_ProcessPrivileges/platform_ProcessPrivileges.py
|
| index a4d99273c6f11492bb228cd937bcd1743e5e405b..8cbbc02096ecd4f3a89999e6079967444570b558 100644
|
| --- a/client/site_tests/platform_ProcessPrivileges/platform_ProcessPrivileges.py
|
| +++ b/client/site_tests/platform_ProcessPrivileges/platform_ProcessPrivileges.py
|
| @@ -3,15 +3,13 @@
|
| # found in the LICENSE file.
|
|
|
| import time
|
| -from autotest_lib.client.bin import site_login, test, utils
|
| +from autotest_lib.client.bin import site_login, site_ui_test, utils
|
| from autotest_lib.client.common_lib import error
|
|
|
| -class platform_ProcessPrivileges(test.test):
|
| +class platform_ProcessPrivileges(site_ui_test.UITest):
|
| version = 1
|
|
|
| - def setup(self):
|
| - site_login.setup_autox(self)
|
| -
|
| + auto_login = False
|
|
|
| def run_once(self, process='X', user=None, run_as_root=False,
|
| do_login=False, any=False):
|
| @@ -24,67 +22,58 @@ class platform_ProcessPrivileges(test.test):
|
| do_login: login before getting process information?
|
| any: Test succeeds if any of processes satisfy the conditions.
|
| """
|
| - logged_in = site_login.logged_in()
|
| -
|
| - if do_login and not logged_in:
|
| - # Test account information embedded into json file.
|
| - site_login.attempt_login(self, 'autox_script.json')
|
| + if do_login:
|
| + self.login()
|
| # Wait for processes for user-session are started.
|
| time.sleep(10)
|
|
|
| - try:
|
| - # Get the process information
|
| - pscmd = 'ps -o f,euser,ruser,suser,fuser,comm -C %s --no-headers'
|
| - ps = utils.system_output(pscmd % process, retain_output=True)
|
| -
|
| - pslines = ps.splitlines()
|
| + # Get the process information
|
| + pscmd = 'ps -o f,euser,ruser,suser,fuser,comm -C %s --no-headers'
|
| + ps = utils.system_output(pscmd % process, retain_output=True)
|
|
|
| - # Fail if process is not running
|
| - if not len(pslines):
|
| - raise error.TestFail('Process %s is not running' % process)
|
| + pslines = ps.splitlines()
|
|
|
| - # Check all instances of the process
|
| - for psline in pslines:
|
| - ps = psline.split()
|
| + # Fail if process is not running
|
| + if not len(pslines):
|
| + raise error.TestFail('Process %s is not running' % process)
|
|
|
| - # Assume process meets conditions until proven otherwise
|
| - user_satisfied = True
|
| - run_as_root_satisfied = True
|
| + # Check all instances of the process
|
| + for psline in pslines:
|
| + ps = psline.split()
|
|
|
| - # Fail if not running as the specified user
|
| - if user is not None:
|
| - for uid in ps[1:5]:
|
| - if uid != user:
|
| - if any:
|
| - user_satisfied = False
|
| - break
|
| - raise error.TestFail(
|
| - 'Process %s running as %s; expected %s' %
|
| - (process, uid, user))
|
| + # Assume process meets conditions until proven otherwise
|
| + user_satisfied = True
|
| + run_as_root_satisfied = True
|
|
|
| - # Check if process has super-user privileges
|
| - if not run_as_root:
|
| - # TODO(yusukes): Uncomment this once issue 2253 is resolved
|
| - # if int(ps[0]) & 0x04:
|
| - # raise error.TestFail(
|
| - # 'Process %s running with super-user flag' %
|
| - # process)
|
| - if 'root' in ps:
|
| + # Fail if not running as the specified user
|
| + if user is not None:
|
| + for uid in ps[1:5]:
|
| + if uid != user:
|
| if any:
|
| - run_as_root_satisfied = False
|
| - continue
|
| + user_satisfied = False
|
| + break
|
| raise error.TestFail(
|
| - 'Process %s running as root' % process)
|
| -
|
| - # Check if conditions are met for "any" mode.
|
| - if any and user_satisfied and run_as_root_satisfied:
|
| - break
|
| - else:
|
| - if any:
|
| + 'Process %s running as %s; expected %s' %
|
| + (process, uid, user))
|
| +
|
| + # Check if process has super-user privileges
|
| + if not run_as_root:
|
| + # TODO(yusukes): Uncomment this once issue 2253 is resolved
|
| + # if int(ps[0]) & 0x04:
|
| + # raise error.TestFail(
|
| + # 'Process %s running with super-user flag' %
|
| + # process)
|
| + if 'root' in ps:
|
| + if any:
|
| + run_as_root_satisfied = False
|
| + continue
|
| raise error.TestFail(
|
| - 'Conditions are not met for any process %s' % process)
|
| -
|
| - finally:
|
| - # If we started logged out, log back out.
|
| - if do_login and not logged_in:
|
| - site_login.attempt_logout()
|
| + 'Process %s running as root' % process)
|
| +
|
| + # Check if conditions are met for "any" mode.
|
| + if any and user_satisfied and run_as_root_satisfied:
|
| + break
|
| + else:
|
| + if any:
|
| + raise error.TestFail(
|
| + 'Conditions are not met for any process %s' % process)
|
|
|