Index: third_party/psutil/test/_linux.py |
diff --git a/third_party/psutil/test/_linux.py b/third_party/psutil/test/_linux.py |
index 187c058a4843735a7567002e886b8ebf38738f0f..a20d8dc227b4a8e62eff3d4239748964fb2ae76e 100644 |
--- a/third_party/psutil/test/_linux.py |
+++ b/third_party/psutil/test/_linux.py |
@@ -1,12 +1,18 @@ |
#!/usr/bin/env python |
# |
-# $Id: _linux.py 707 2010-10-19 18:16:08Z g.rodola $ |
+# $Id: _linux.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. |
+ |
+"""Linux specific tests. These are implicitly run by test_psutil.py.""" |
import unittest |
import subprocess |
import sys |
+from test_psutil import sh |
import psutil |
@@ -34,12 +40,33 @@ class LinuxSpecificTestCase(unittest.TestCase): |
psutil_cmem = psutil.phymem_buffers() / 1024 |
self.assertEqual(free_cmem, psutil_cmem) |
+ def test_disks(self): |
+ # test psutil.disk_usage() and psutil.disk_partitions() |
+ # against "df -a" |
+ def df(path): |
+ out = sh('df -P -B 1 "%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, used, free = int(total), int(used), int(free) |
+ 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(LinuxSpecificTestCase)) |
unittest.TextTestRunner(verbosity=2).run(test_suite) |
- |
- |
- |
- |