Index: third_party/psutil/test/_bsd.py |
diff --git a/third_party/psutil/test/_bsd.py b/third_party/psutil/test/_bsd.py |
deleted file mode 100644 |
index 0296b05239a5cb78d5a14dd49b04c16a2e1f8679..0000000000000000000000000000000000000000 |
--- a/third_party/psutil/test/_bsd.py |
+++ /dev/null |
@@ -1,165 +0,0 @@ |
-#!/usr/bin/env python |
-# |
-# $Id: _bsd.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. |
- |
-"""BSD specific tests. These are implicitly run by test_psutil.py.""" |
- |
-import unittest |
-import subprocess |
-import time |
-import re |
-import sys |
- |
-import psutil |
- |
-from test_psutil import reap_children, get_test_subprocess, sh |
- |
-def sysctl(cmdline): |
- """Expects a sysctl command with an argument and parse the result |
- returning only the value of interest. |
- """ |
- result = sh("sysctl " + cmdline) |
- result = result[result.find(": ") + 2:] |
- try: |
- return int(result) |
- except ValueError: |
- return result |
- |
-def parse_sysctl_vmtotal(output): |
- """Parse sysctl vm.vmtotal output returning total and free memory |
- values. |
- """ |
- line = output.split('\n')[4] # our line of interest |
- mobj = re.match(r'Virtual\s+Memory.*Total:\s+(\d+)K,\s+Active\s+(\d+)K.*', line) |
- total, active = mobj.groups() |
- # values are represented in kilo bytes |
- total = int(total) * 1024 |
- active = int(active) * 1024 |
- free = total - active |
- return total, free |
- |
- |
-class BSDSpecificTestCase(unittest.TestCase): |
- |
- def setUp(self): |
- self.pid = get_test_subprocess().pid |
- |
- def tearDown(self): |
- reap_children() |
- |
- def test_TOTAL_PHYMEM(self): |
- sysctl_hwphymem = sysctl('sysctl hw.physmem') |
- self.assertEqual(sysctl_hwphymem, psutil.TOTAL_PHYMEM) |
- |
- def test_BOOT_TIME(self): |
- s = sysctl('sysctl kern.boottime') |
- s = s[s.find(" sec = ") + 7:] |
- s = s[:s.find(',')] |
- btime = int(s) |
- self.assertEqual(btime, psutil.BOOT_TIME) |
- |
- def test_avail_phymem(self): |
- # This test is not particularly accurate and may fail if the OS is |
- # consuming memory for other applications. |
- # We just want to test that the difference between psutil result |
- # and sysctl's is not too high. |
- _sum = sum((sysctl("sysctl vm.stats.vm.v_inactive_count"), |
- sysctl("sysctl vm.stats.vm.v_cache_count"), |
- sysctl("sysctl vm.stats.vm.v_free_count") |
- )) |
- _pagesize = sysctl("sysctl hw.pagesize") |
- sysctl_avail_phymem = _sum * _pagesize |
- psutil_avail_phymem = psutil.phymem_usage().free |
- difference = abs(psutil_avail_phymem - sysctl_avail_phymem) |
- # On my system both sysctl and psutil report the same values. |
- # Let's use a tollerance of 0.5 MB and consider the test as failed |
- # if we go over it. |
- if difference > (0.5 * 2**20): |
- self.fail("sysctl=%s; psutil=%s; difference=%s;" %( |
- sysctl_avail_phymem, psutil_avail_phymem, difference)) |
- |
- def test_total_virtmem(self): |
- # This test is not particularly accurate and may fail if the OS is |
- # consuming memory for other applications. |
- # We just want to test that the difference between psutil result |
- # and sysctl's is not too high. |
- p = subprocess.Popen("sysctl vm.vmtotal", shell=1, stdout=subprocess.PIPE) |
- result = p.communicate()[0].strip() |
- if sys.version_info >= (3,): |
- result = str(result, sys.stdout.encoding) |
- sysctl_total_virtmem, _ = parse_sysctl_vmtotal(result) |
- psutil_total_virtmem = psutil.virtmem_usage().total |
- difference = abs(sysctl_total_virtmem - psutil_total_virtmem) |
- |
- # On my system I get a difference of 4657152 bytes, probably because |
- # the system is consuming memory for this same test. |
- # Assuming psutil is right, let's use a tollerance of 10 MB and consider |
- # the test as failed if we go over it. |
- if difference > (10 * 2**20): |
- self.fail("sysctl=%s; psutil=%s; difference=%s;" %( |
- sysctl_total_virtmem, psutil_total_virtmem, difference)) |
- |
- def test_avail_virtmem(self): |
- # This test is not particularly accurate and may fail if the OS is |
- # consuming memory for other applications. |
- # We just want to test that the difference between psutil result |
- # and sysctl's is not too high. |
- p = subprocess.Popen("sysctl vm.vmtotal", shell=1, stdout=subprocess.PIPE) |
- result = p.communicate()[0].strip() |
- if sys.version_info >= (3,): |
- result = str(result, sys.stdout.encoding) |
- _, sysctl_avail_virtmem = parse_sysctl_vmtotal(result) |
- psutil_avail_virtmem = psutil.virtmem_usage().free |
- difference = abs(sysctl_avail_virtmem - psutil_avail_virtmem) |
- # let's assume the test is failed if difference is > 0.5 MB |
- if difference > (0.5 * 2**20): |
- self.fail(difference) |
- |
- def test_process_create_time(self): |
- cmdline = "ps -o lstart -p %s" %self.pid |
- p = subprocess.Popen(cmdline, shell=1, stdout=subprocess.PIPE) |
- output = p.communicate()[0] |
- if sys.version_info >= (3,): |
- output = str(output, sys.stdout.encoding) |
- start_ps = output.replace('STARTED', '').strip() |
- start_psutil = psutil.Process(self.pid).create_time |
- start_psutil = time.strftime("%a %b %e %H:%M:%S %Y", |
- time.localtime(start_psutil)) |
- self.assertEqual(start_ps, start_psutil) |
- |
- def test_disks(self): |
- # test psutil.disk_usage() and psutil.disk_partitions() |
- # against "df -a" |
- def df(path): |
- out = sh('df -k "%s"' % path).strip() |
- lines = out.split('\n') |
- lines.pop(0) |
- line = lines.pop(0) |
- dev, total, used, free = line.split()[:4] |
- if dev == 'none': |
- dev = '' |
- total = int(total) * 1024 |
- used = int(used) * 1024 |
- free = int(free) * 1024 |
- return dev, total, used, free |
- |
- for part in psutil.disk_partitions(all=False): |
- usage = psutil.disk_usage(part.mountpoint) |
- dev, total, used, free = df(part.mountpoint) |
- self.assertEqual(part.device, dev) |
- self.assertEqual(usage.total, total) |
- # 10 MB tollerance |
- if abs(usage.free - free) > 10 * 1024 * 1024: |
- self.fail("psutil=%s, df=%s" % usage.free, free) |
- if abs(usage.used - used) > 10 * 1024 * 1024: |
- self.fail("psutil=%s, df=%s" % usage.used, used) |
- |
- |
-if __name__ == '__main__': |
- test_suite = unittest.TestSuite() |
- test_suite.addTest(unittest.makeSuite(BSDSpecificTestCase)) |
- unittest.TextTestRunner(verbosity=2).run(test_suite) |