Index: third_party/psutil/test/_posix.py |
diff --git a/third_party/psutil/test/_posix.py b/third_party/psutil/test/_posix.py |
deleted file mode 100644 |
index ad0db64a003f8d621f0043f845257744f50e588f..0000000000000000000000000000000000000000 |
--- a/third_party/psutil/test/_posix.py |
+++ /dev/null |
@@ -1,148 +0,0 @@ |
-#!/usr/bin/env python |
-# |
-# $Id: _posix.py 1142 2011-10-05 18:45:49Z g.rodola $ |
-# |
-# Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-"""POSIX specific tests. These are implicitly run by test_psutil.py.""" |
- |
-import unittest |
-import subprocess |
-import time |
-import sys |
-import os |
- |
-import psutil |
- |
-from test_psutil import (get_test_subprocess, reap_children, PYTHON, LINUX, OSX, |
- ignore_access_denied, sh) |
- |
- |
-def ps(cmd): |
- """Expects a ps command with a -o argument and parse the result |
- returning only the value of interest. |
- """ |
- if not LINUX: |
- cmd = cmd.replace(" --no-headers ", " ") |
- p = subprocess.Popen(cmd, shell=1, stdout=subprocess.PIPE) |
- output = p.communicate()[0].strip() |
- if sys.version_info >= (3,): |
- output = str(output, sys.stdout.encoding) |
- if not LINUX: |
- output = output.split('\n')[1] |
- try: |
- return int(output) |
- except ValueError: |
- return output |
- |
- |
-class PosixSpecificTestCase(unittest.TestCase): |
- """Compare psutil results against 'ps' command line utility.""" |
- |
- # for ps -o arguments see: http://unixhelp.ed.ac.uk/CGI/man-cgi?ps |
- |
- def setUp(self): |
- self.pid = get_test_subprocess([PYTHON, "-E", "-O"]).pid |
- |
- def tearDown(self): |
- reap_children() |
- |
- def test_process_parent_pid(self): |
- ppid_ps = ps("ps --no-headers -o ppid -p %s" %self.pid) |
- ppid_psutil = psutil.Process(self.pid).ppid |
- self.assertEqual(ppid_ps, ppid_psutil) |
- |
- def test_process_uid(self): |
- uid_ps = ps("ps --no-headers -o uid -p %s" %self.pid) |
- uid_psutil = psutil.Process(self.pid).uids.real |
- self.assertEqual(uid_ps, uid_psutil) |
- |
- def test_process_gid(self): |
- gid_ps = ps("ps --no-headers -o rgid -p %s" %self.pid) |
- gid_psutil = psutil.Process(self.pid).gids.real |
- self.assertEqual(gid_ps, gid_psutil) |
- |
- def test_process_username(self): |
- username_ps = ps("ps --no-headers -o user -p %s" %self.pid) |
- username_psutil = psutil.Process(self.pid).username |
- self.assertEqual(username_ps, username_psutil) |
- |
- @ignore_access_denied |
- def test_process_rss_memory(self): |
- # give python interpreter some time to properly initialize |
- # so that the results are the same |
- time.sleep(0.1) |
- rss_ps = ps("ps --no-headers -o rss -p %s" %self.pid) |
- rss_psutil = psutil.Process(self.pid).get_memory_info()[0] / 1024 |
- self.assertEqual(rss_ps, rss_psutil) |
- |
- @ignore_access_denied |
- def test_process_vsz_memory(self): |
- # give python interpreter some time to properly initialize |
- # so that the results are the same |
- time.sleep(0.1) |
- vsz_ps = ps("ps --no-headers -o vsz -p %s" %self.pid) |
- vsz_psutil = psutil.Process(self.pid).get_memory_info()[1] / 1024 |
- self.assertEqual(vsz_ps, vsz_psutil) |
- |
- def test_process_name(self): |
- # use command + arg since "comm" keyword not supported on all platforms |
- name_ps = ps("ps --no-headers -o command -p %s" %self.pid).split(' ')[0] |
- # remove path if there is any, from the command |
- name_ps = os.path.basename(name_ps).lower() |
- name_psutil = psutil.Process(self.pid).name.lower() |
- self.assertEqual(name_ps, name_psutil) |
- |
- def test_process_exe(self): |
- ps_pathname = ps("ps --no-headers -o command -p %s" %self.pid).split(' ')[0] |
- psutil_pathname = psutil.Process(self.pid).exe |
- try: |
- self.assertEqual(ps_pathname, psutil_pathname) |
- except AssertionError: |
- # certain platforms such as BSD are more accurate returning: |
- # "/usr/local/bin/python2.7" |
- # ...instead of: |
- # "/usr/local/bin/python" |
- # We do not want to consider this difference in accuracy |
- # an error. |
- adjusted_ps_pathname = ps_pathname[:len(ps_pathname)] |
- self.assertEqual(ps_pathname, adjusted_ps_pathname) |
- |
- def test_process_cmdline(self): |
- ps_cmdline = ps("ps --no-headers -o command -p %s" %self.pid) |
- psutil_cmdline = " ".join(psutil.Process(self.pid).cmdline) |
- self.assertEqual(ps_cmdline, psutil_cmdline) |
- |
- def test_get_pids(self): |
- # Note: this test might fail if the OS is starting/killing |
- # other processes in the meantime |
- p = get_test_subprocess(["ps", "ax", "-o", "pid"], stdout=subprocess.PIPE) |
- output = p.communicate()[0].strip() |
- if sys.version_info >= (3,): |
- output = str(output, sys.stdout.encoding) |
- output = output.replace('PID', '') |
- p.wait() |
- pids_ps = [] |
- for pid in output.split('\n'): |
- if pid: |
- pids_ps.append(int(pid.strip())) |
- # remove ps subprocess pid which is supposed to be dead in meantime |
- pids_ps.remove(p.pid) |
- pids_psutil = psutil.get_pid_list() |
- pids_ps.sort() |
- pids_psutil.sort() |
- |
- if pids_ps != pids_psutil: |
- difference = [x for x in pids_psutil if x not in pids_ps] + \ |
- [x for x in pids_ps if x not in pids_psutil] |
- self.fail("difference: " + str(difference)) |
- |
- |
-if __name__ == '__main__': |
- test_suite = unittest.TestSuite() |
- test_suite.addTest(unittest.makeSuite(PosixSpecificTestCase)) |
- unittest.TextTestRunner(verbosity=2).run(test_suite) |
- |
- |