Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/psutil/tests/test_aix.py @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:32:28 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:d30785e31577 | 1:56ad4e20f292 |
---|---|
1 #!/usr/bin/env python3 | |
2 | |
3 # Copyright (c) 2009, Giampaolo Rodola' | |
4 # Copyright (c) 2017, Arnon Yaari | |
5 # All rights reserved. | |
6 # Use of this source code is governed by a BSD-style license that can be | |
7 # found in the LICENSE file. | |
8 | |
9 """AIX specific tests.""" | |
10 | |
11 import re | |
12 | |
13 from psutil import AIX | |
14 from psutil.tests import PsutilTestCase | |
15 from psutil.tests import sh | |
16 from psutil.tests import unittest | |
17 import psutil | |
18 | |
19 | |
20 @unittest.skipIf(not AIX, "AIX only") | |
21 class AIXSpecificTestCase(PsutilTestCase): | |
22 | |
23 def test_virtual_memory(self): | |
24 out = sh('/usr/bin/svmon -O unit=KB') | |
25 re_pattern = r"memory\s*" | |
26 for field in ("size inuse free pin virtual available mmode").split(): | |
27 re_pattern += r"(?P<%s>\S+)\s+" % (field,) | |
28 matchobj = re.search(re_pattern, out) | |
29 | |
30 self.assertIsNotNone( | |
31 matchobj, "svmon command returned unexpected output") | |
32 | |
33 KB = 1024 | |
34 total = int(matchobj.group("size")) * KB | |
35 available = int(matchobj.group("available")) * KB | |
36 used = int(matchobj.group("inuse")) * KB | |
37 free = int(matchobj.group("free")) * KB | |
38 | |
39 psutil_result = psutil.virtual_memory() | |
40 | |
41 # TOLERANCE_SYS_MEM from psutil.tests is not enough. For some reason | |
42 # we're seeing differences of ~1.2 MB. 2 MB is still a good tolerance | |
43 # when compared to GBs. | |
44 TOLERANCE_SYS_MEM = 2 * KB * KB # 2 MB | |
45 self.assertEqual(psutil_result.total, total) | |
46 self.assertAlmostEqual( | |
47 psutil_result.used, used, delta=TOLERANCE_SYS_MEM) | |
48 self.assertAlmostEqual( | |
49 psutil_result.available, available, delta=TOLERANCE_SYS_MEM) | |
50 self.assertAlmostEqual( | |
51 psutil_result.free, free, delta=TOLERANCE_SYS_MEM) | |
52 | |
53 def test_swap_memory(self): | |
54 out = sh('/usr/sbin/lsps -a') | |
55 # From the man page, "The size is given in megabytes" so we assume | |
56 # we'll always have 'MB' in the result | |
57 # TODO maybe try to use "swap -l" to check "used" too, but its units | |
58 # are not guaranteed to be "MB" so parsing may not be consistent | |
59 matchobj = re.search(r"(?P<space>\S+)\s+" | |
60 r"(?P<vol>\S+)\s+" | |
61 r"(?P<vg>\S+)\s+" | |
62 r"(?P<size>\d+)MB", out) | |
63 | |
64 self.assertIsNotNone( | |
65 matchobj, "lsps command returned unexpected output") | |
66 | |
67 total_mb = int(matchobj.group("size")) | |
68 MB = 1024 ** 2 | |
69 psutil_result = psutil.swap_memory() | |
70 # we divide our result by MB instead of multiplying the lsps value by | |
71 # MB because lsps may round down, so we round down too | |
72 self.assertEqual(int(psutil_result.total / MB), total_mb) | |
73 | |
74 def test_cpu_stats(self): | |
75 out = sh('/usr/bin/mpstat -a') | |
76 | |
77 re_pattern = r"ALL\s*" | |
78 for field in ("min maj mpcs mpcr dev soft dec ph cs ics bound rq " | |
79 "push S3pull S3grd S0rd S1rd S2rd S3rd S4rd S5rd " | |
80 "sysc").split(): | |
81 re_pattern += r"(?P<%s>\S+)\s+" % (field,) | |
82 matchobj = re.search(re_pattern, out) | |
83 | |
84 self.assertIsNotNone( | |
85 matchobj, "mpstat command returned unexpected output") | |
86 | |
87 # numbers are usually in the millions so 1000 is ok for tolerance | |
88 CPU_STATS_TOLERANCE = 1000 | |
89 psutil_result = psutil.cpu_stats() | |
90 self.assertAlmostEqual( | |
91 psutil_result.ctx_switches, | |
92 int(matchobj.group("cs")), | |
93 delta=CPU_STATS_TOLERANCE) | |
94 self.assertAlmostEqual( | |
95 psutil_result.syscalls, | |
96 int(matchobj.group("sysc")), | |
97 delta=CPU_STATS_TOLERANCE) | |
98 self.assertAlmostEqual( | |
99 psutil_result.interrupts, | |
100 int(matchobj.group("dev")), | |
101 delta=CPU_STATS_TOLERANCE) | |
102 self.assertAlmostEqual( | |
103 psutil_result.soft_interrupts, | |
104 int(matchobj.group("soft")), | |
105 delta=CPU_STATS_TOLERANCE) | |
106 | |
107 def test_cpu_count_logical(self): | |
108 out = sh('/usr/bin/mpstat -a') | |
109 mpstat_lcpu = int(re.search(r"lcpu=(\d+)", out).group(1)) | |
110 psutil_lcpu = psutil.cpu_count(logical=True) | |
111 self.assertEqual(mpstat_lcpu, psutil_lcpu) | |
112 | |
113 def test_net_if_addrs_names(self): | |
114 out = sh('/etc/ifconfig -l') | |
115 ifconfig_names = set(out.split()) | |
116 psutil_names = set(psutil.net_if_addrs().keys()) | |
117 self.assertSetEqual(ifconfig_names, psutil_names) | |
118 | |
119 | |
120 if __name__ == '__main__': | |
121 from psutil.tests.runner import run_from_name | |
122 run_from_name(__file__) |