blob: f18b7b38272a1935a9dce69202ad08c52f39819d (
plain) (
tree)
|
|
# 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 StageTwoReportTest
class PluginTimeoutTest(StageTwoReportTest):
"""Test that whole plugin timeout control is working
:avocado: tags=stagetwo
"""
install_plugins = ['timeout_test']
sos_cmd = '-o timeout_test -vvv --plugin-timeout=10'
def test_correct_plugin_timeout(self):
man = self.get_plugin_manifest('timeout_test')
self.assertEqual(man['timeout'], 10)
def test_plugin_timed_out(self):
self.assertSosLogNotContains('collected plugin \'timeout_test\' in')
self.assertSosUILogContains('Plugin timeout_test timed out')
def test_no_output_collected(self):
self.assertFileNotExists('sos_commands/timeout_test/echo_out')
class NativeCmdTimeoutTest(StageTwoReportTest):
"""Test that the native timeout control for the plugin API is working
:avocado: tags=stagetwo
"""
install_plugins = ['timeout_test']
sos_cmd = '-o timeout_test,host -vvv'
def test_correct_plugin_timeout(self):
man = self.get_plugin_manifest('timeout_test')
self.assertEqual(man['timeout'], 100)
hman = self.get_plugin_manifest('host')
self.assertEqual(hman['timeout'], 300)
def test_plugin_completed(self):
self.assertSosLogContains('collected plugin \'timeout_test\' in')
self.assertFileCollected('sos_commands/timeout_test/echo_good')
def test_command_timed_out(self):
self.assertSosLogContains(
r"\[plugin:timeout_test\] command 'sleep 30' timed out after 10s"
)
self.assertFileCollected('sos_commands/timeout_test/sleep_30')
class MultipleTimeoutValues(NativeCmdTimeoutTest):
"""Test that our plugin timeout option priority is functioning correctly
:avocado: tags=stagetwo
"""
install_plugins = ['timeout_test']
sos_cmd = ('-o timeout_test,host --plugin-timeout=30 -k '
'timeout_test.timeout=60')
def test_correct_plugin_timeout(self):
man = self.get_plugin_manifest('timeout_test')
self.assertEqual(man['timeout'], 60)
hman = self.get_plugin_manifest('host')
self.assertEqual(hman['timeout'], 30)
|