# This file is part of the sos project: https://github.com/sosreport/sos # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions of # version 2 of the GNU General Public License. # # See the LICENSE file in the source distribution for further information. from sos_tests import StageOneReportTest class CommandPriorityTest(StageOneReportTest): """Ensure that the priority parameter for command execution is functioning as expected :avocado: tags=stageone """ sos_cmd = '-o logs,process' def test_logs_full_journal_correct_priority(self): cmds = self.get_plugin_manifest('logs')['commands'] fullj = cmds[-1] self.assertEqual(fullj['priority'], 100) def test_logs_full_journal_run_last(self): cmds = self.get_plugin_manifest('logs')['commands'] cmds.sort(key=lambda x: x['start_time']) # journal_full should be the last command executed self.assertTrue('journal_full' in cmds[-1]['tags']) def test_process_correct_priorities(self): cmds = self.get_plugin_manifest('process')['commands'] # ensure root symlinked ps ran first self.assertTrue( cmds[0]['priority'] == 1 and 'ps_aux' in cmds[0]['tags'] ) # get lsof and iotop command entries _lsof = None _iotop = None for cmd in cmds: if cmd['command'] == 'lsof': _lsof = cmd elif cmd['command'] == 'iotop': _iotop = cmd self.assertTrue(_lsof and _iotop, "lsof or iotop output missing") self.assertEqual(_lsof['priority'], 50) self.assertEqual(_iotop['priority'], 100) self.assertTrue(_lsof['start_time'] < _iotop['start_time'])