1
0
mirror of https://github.com/kellyjonbrazil/jc.git synced 2025-07-17 01:32:37 +02:00

add mpstat tests

This commit is contained in:
Kelly Brazil
2022-03-11 15:33:31 -08:00
parent d7efd25d88
commit 6f98b27a05
7 changed files with 168 additions and 0 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,86 @@
Linux 3.10.0-1062.1.2.el7.x86_64 (localhost) 03/11/2022 _x86_64_ (1 CPU)
03:16:15 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:16:17 PM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50
03:16:17 PM 0 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50
03:16:15 PM CPU intr/s
03:16:17 PM all 55.50
03:16:17 PM 0 54.00
03:16:15 PM CPU 0/s 1/s 4/s 8/s 9/s 12/s 14/s 15/s 16/s 17/s 18/s 19/s 24/s 25/s 26/s 27/s 28/s 29/s 30/s 31/s 32/s 33/s 34/s 35/s 36/s 37/s 38/s 39/s 40/s 41/s 42/s 43/s 44/s 45/s 46/s 47/s 48/s 49/s 50/s 51/s 52/s 53/s 54/s 55/s 56/s 57/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s DFR/s MCE/s MCP/s ERR/s MIS/s PIN/s NPI/s PIW/s
03:16:17 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 4.50 0.00 0.00 1.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 44.00 0.00 0.00 4.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:16:15 PM CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
03:16:17 PM 0 0.00 35.00 0.50 1.50 0.50 0.00 0.00 0.00 0.00 16.50
03:16:17 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:16:19 PM all 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
03:16:19 PM 0 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50
03:16:17 PM CPU intr/s
03:16:19 PM all 56.50
03:16:19 PM 0 51.50
03:16:17 PM CPU 0/s 1/s 4/s 8/s 9/s 12/s 14/s 15/s 16/s 17/s 18/s 19/s 24/s 25/s 26/s 27/s 28/s 29/s 30/s 31/s 32/s 33/s 34/s 35/s 36/s 37/s 38/s 39/s 40/s 41/s 42/s 43/s 44/s 45/s 46/s 47/s 48/s 49/s 50/s 51/s 52/s 53/s 54/s 55/s 56/s 57/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s DFR/s MCE/s MCP/s ERR/s MIS/s PIN/s NPI/s PIW/s
03:16:19 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 5.00 0.00 0.00 1.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 43.50 0.00 0.00 5.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:16:17 PM CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
03:16:19 PM 0 0.00 33.50 0.00 1.50 0.50 0.00 0.00 0.00 0.00 16.00
03:16:19 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:16:21 PM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50
03:16:21 PM 0 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50
03:16:19 PM CPU intr/s
03:16:21 PM all 59.00
03:16:21 PM 0 55.00
03:16:19 PM CPU 0/s 1/s 4/s 8/s 9/s 12/s 14/s 15/s 16/s 17/s 18/s 19/s 24/s 25/s 26/s 27/s 28/s 29/s 30/s 31/s 32/s 33/s 34/s 35/s 36/s 37/s 38/s 39/s 40/s 41/s 42/s 43/s 44/s 45/s 46/s 47/s 48/s 49/s 50/s 51/s 52/s 53/s 54/s 55/s 56/s 57/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s DFR/s MCE/s MCP/s ERR/s MIS/s PIN/s NPI/s PIW/s
03:16:21 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 5.00 0.00 0.00 1.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 47.00 0.00 0.00 6.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:16:19 PM CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
03:16:21 PM 0 0.00 35.50 0.50 1.50 0.00 0.00 0.00 0.00 0.00 17.50
03:16:21 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:16:23 PM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50
03:16:23 PM 0 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50
03:16:21 PM CPU intr/s
03:16:23 PM all 56.50
03:16:23 PM 0 53.50
03:16:21 PM CPU 0/s 1/s 4/s 8/s 9/s 12/s 14/s 15/s 16/s 17/s 18/s 19/s 24/s 25/s 26/s 27/s 28/s 29/s 30/s 31/s 32/s 33/s 34/s 35/s 36/s 37/s 38/s 39/s 40/s 41/s 42/s 43/s 44/s 45/s 46/s 47/s 48/s 49/s 50/s 51/s 52/s 53/s 54/s 55/s 56/s 57/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s DFR/s MCE/s MCP/s ERR/s MIS/s PIN/s NPI/s PIW/s
03:16:23 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 5.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 43.50 0.00 0.00 6.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:16:21 PM CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
03:16:23 PM 0 0.00 34.50 0.00 1.00 0.50 0.00 0.00 0.00 0.00 17.50
03:16:23 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:16:25 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
03:16:25 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
03:16:23 PM CPU intr/s
03:16:25 PM all 56.28
03:16:25 PM 0 50.75
03:16:23 PM CPU 0/s 1/s 4/s 8/s 9/s 12/s 14/s 15/s 16/s 17/s 18/s 19/s 24/s 25/s 26/s 27/s 28/s 29/s 30/s 31/s 32/s 33/s 34/s 35/s 36/s 37/s 38/s 39/s 40/s 41/s 42/s 43/s 44/s 45/s 46/s 47/s 48/s 49/s 50/s 51/s 52/s 53/s 54/s 55/s 56/s 57/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s DFR/s MCE/s MCP/s ERR/s MIS/s PIN/s NPI/s PIW/s
03:16:25 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.01 4.52 1.01 0.00 1.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 43.22 0.00 0.00 5.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:16:23 PM CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
03:16:25 PM 0 0.00 32.16 0.00 1.51 1.51 0.00 0.00 0.00 0.00 15.58
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 0.10 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00 99.60
Average: 0 0.10 0.00 0.30 0.00 0.00 0.00 0.00 0.00 0.00 99.60
Average: CPU intr/s
Average: all 56.76
Average: 0 52.95
Average: CPU 0/s 1/s 4/s 8/s 9/s 12/s 14/s 15/s 16/s 17/s 18/s 19/s 24/s 25/s 26/s 27/s 28/s 29/s 30/s 31/s 32/s 33/s 34/s 35/s 36/s 37/s 38/s 39/s 40/s 41/s 42/s 43/s 44/s 45/s 46/s 47/s 48/s 49/s 50/s 51/s 52/s 53/s 54/s 55/s 56/s 57/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s DFR/s MCE/s MCP/s ERR/s MIS/s PIN/s NPI/s PIW/s
Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.80 4.80 0.20 0.00 1.40 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 44.24 0.00 0.00 5.51 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
Average: 0 0.00 34.13 0.20 1.40 0.60 0.00 0.00 0.00 0.00 16.62

View File

@ -0,0 +1 @@
[{"cpu":"all","percent_usr":0.22,"percent_nice":0.0,"percent_sys":0.37,"percent_iowait":0.01,"percent_irq":0.0,"percent_soft":0.0,"percent_steal":0.0,"percent_guest":0.0,"percent_gnice":0.0,"percent_idle":99.4,"type":"cpu","time":"03:15:06 PM"},{"cpu":"0","percent_usr":0.22,"percent_nice":0.0,"percent_sys":0.37,"percent_iowait":0.01,"percent_irq":0.0,"percent_soft":0.0,"percent_steal":0.0,"percent_guest":0.0,"percent_gnice":0.0,"percent_idle":99.4,"type":"cpu","time":"03:15:06 PM"},{"cpu":"all","intr_s":37.61,"type":"interrupts","time":"03:15:06 PM"},{"cpu":"0","intr_s":33.15,"type":"interrupts","time":"03:15:06 PM"},{"cpu":"0","0_s":0.02,"1_s":0.02,"4_s":0.01,"8_s":0.0,"9_s":0.0,"12_s":0.01,"14_s":0.0,"15_s":1.0,"16_s":0.75,"17_s":1.14,"18_s":0.03,"19_s":0.69,"24_s":0.0,"25_s":0.0,"26_s":0.0,"27_s":0.0,"28_s":0.0,"29_s":0.0,"30_s":0.0,"31_s":0.0,"32_s":0.0,"33_s":0.0,"34_s":0.0,"35_s":0.0,"36_s":0.0,"37_s":0.0,"38_s":0.0,"39_s":0.0,"40_s":0.0,"41_s":0.0,"42_s":0.0,"43_s":0.0,"44_s":0.0,"45_s":0.0,"46_s":0.0,"47_s":0.0,"48_s":0.0,"49_s":0.0,"50_s":0.0,"51_s":0.0,"52_s":0.0,"53_s":0.0,"54_s":0.0,"55_s":0.0,"56_s":0.0,"57_s":0.0,"nmi_s":0.0,"loc_s":32.69,"spu_s":0.0,"pmi_s":0.0,"iwi_s":1.24,"rtr_s":0.0,"res_s":0.0,"cal_s":0.0,"tlb_s":0.0,"trm_s":0.0,"thr_s":0.0,"dfr_s":0.0,"mce_s":0.0,"mcp_s":0.0,"err_s":0.0,"mis_s":0.0,"pin_s":0.0,"npi_s":0.0,"piw_s":0.0,"type":"interrupts","time":"03:15:06 PM"},{"cpu":"0","hi_s":0.0,"timer_s":21.26,"net_tx_s":0.2,"net_rx_s":0.69,"block_s":1.58,"block_iopoll_s":0.0,"tasklet_s":0.03,"sched_s":0.0,"hrtimer_s":0.0,"rcu_s":9.39,"type":"interrupts","time":"03:15:06 PM"}]

15
tests/fixtures/centos-7.7/mpstat-A.out vendored Normal file
View File

@ -0,0 +1,15 @@
Linux 3.10.0-1062.1.2.el7.x86_64 (localhost) 03/11/2022 _x86_64_ (1 CPU)
03:15:06 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:15:06 PM all 0.22 0.00 0.37 0.01 0.00 0.00 0.00 0.00 0.00 99.40
03:15:06 PM 0 0.22 0.00 0.37 0.01 0.00 0.00 0.00 0.00 0.00 99.40
03:15:06 PM CPU intr/s
03:15:06 PM all 37.61
03:15:06 PM 0 33.15
03:15:06 PM CPU 0/s 1/s 4/s 8/s 9/s 12/s 14/s 15/s 16/s 17/s 18/s 19/s 24/s 25/s 26/s 27/s 28/s 29/s 30/s 31/s 32/s 33/s 34/s 35/s 36/s 37/s 38/s 39/s 40/s 41/s 42/s 43/s 44/s 45/s 46/s 47/s 48/s 49/s 50/s 51/s 52/s 53/s 54/s 55/s 56/s 57/s NMI/s LOC/s SPU/s PMI/s IWI/s RTR/s RES/s CAL/s TLB/s TRM/s THR/s DFR/s MCE/s MCP/s ERR/s MIS/s PIN/s NPI/s PIW/s
03:15:06 PM 0 0.02 0.02 0.01 0.00 0.00 0.01 0.00 1.00 0.75 1.14 0.03 0.69 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 32.69 0.00 0.00 1.24 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
03:15:06 PM CPU HI/s TIMER/s NET_TX/s NET_RX/s BLOCK/s BLOCK_IOPOLL/s TASKLET/s SCHED/s HRTIMER/s RCU/s
03:15:06 PM 0 0.00 21.26 0.20 0.69 1.58 0.00 0.03 0.00 0.00 9.39

1
tests/fixtures/centos-7.7/mpstat.json vendored Normal file
View File

@ -0,0 +1 @@
[{"cpu":"all","percent_usr":0.23,"percent_nice":0.0,"percent_sys":0.37,"percent_iowait":0.01,"percent_irq":0.0,"percent_soft":0.0,"percent_steal":0.0,"percent_guest":0.0,"percent_gnice":0.0,"percent_idle":99.39,"type":"cpu","time":"03:14:20 PM"}]

5
tests/fixtures/centos-7.7/mpstat.out vendored Normal file
View File

@ -0,0 +1,5 @@
Linux 3.10.0-1062.1.2.el7.x86_64 (localhost) 03/11/2022 _x86_64_ (1 CPU)
03:14:20 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:14:20 PM all 0.23 0.00 0.37 0.01 0.00 0.00 0.00 0.00 0.00 99.39

59
tests/test_mpstat.py Normal file
View File

@ -0,0 +1,59 @@
import os
import unittest
import json
import jc.parsers.mpstat
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
class MyTests(unittest.TestCase):
def setUp(self):
# input
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_mpstat = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_mpstat_A = f.read()
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5.out'), 'r', encoding='utf-8') as f:
self.centos_7_7_mpstat_A_2_5 = f.read()
# output
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_mpstat_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_mpstat_A_json = json.loads(f.read())
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/mpstat-A-2-5.json'), 'r', encoding='utf-8') as f:
self.centos_7_7_mpstat_A_2_5_json = json.loads(f.read())
def test_mpstat_nodata(self):
"""
Test 'mpstat' with no data
"""
self.assertEqual(jc.parsers.mpstat.parse('', quiet=True), [])
def test_mpstat_centos_7_7(self):
"""
Test 'mpstat' on Centos 7.7
"""
self.assertEqual(jc.parsers.mpstat.parse(self.centos_7_7_mpstat, quiet=True), self.centos_7_7_mpstat_json)
def test_mpstat_A_centos_7_7(self):
"""
Test 'mpstat -A' on Centos 7.7
"""
self.assertEqual(jc.parsers.mpstat.parse(self.centos_7_7_mpstat_A, quiet=True), self.centos_7_7_mpstat_A_json)
def test_mpstat_A_2_5_centos_7_7(self):
"""
Test 'mpstat -A 2 5' on Centos 7.7
"""
self.assertEqual(jc.parsers.mpstat.parse(self.centos_7_7_mpstat_A_2_5, quiet=True), self.centos_7_7_mpstat_A_2_5_json)
if __name__ == '__main__':
unittest.main()