aboutsummaryrefslogtreecommitdiffstats
path: root/tests/report_tests/plugin_tests/logs.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/report_tests/plugin_tests/logs.py')
-rw-r--r--tests/report_tests/plugin_tests/logs.py27
1 files changed, 13 insertions, 14 deletions
diff --git a/tests/report_tests/plugin_tests/logs.py b/tests/report_tests/plugin_tests/logs.py
index d62ab8e2..49f1c592 100644
--- a/tests/report_tests/plugin_tests/logs.py
+++ b/tests/report_tests/plugin_tests/logs.py
@@ -30,7 +30,7 @@ class LogsPluginTest(StageOneReportTest):
self.assertFileGlobInArchive('/var/log/journal/*')
-class LogsSizeLimitTest(StageTwoReportTest):
+class JournalSizeLimitTest(StageTwoReportTest):
"""Test that journal size limiting is working and is independent of
--log-size
@@ -40,7 +40,7 @@ class LogsSizeLimitTest(StageTwoReportTest):
:avocado: tags=stagetwo
"""
- sos_cmd = '-o logs'
+ sos_cmd = '-o logs --journal-size=20 --log-size=10'
sos_timeout = 500
packages = {
'rhel': ['python3-systemd'],
@@ -48,36 +48,35 @@ class LogsSizeLimitTest(StageTwoReportTest):
}
def pre_sos_setup(self):
+ # if the journal is already over our size limit, don't write anything
+ # new to it
+ from systemd import journal
+ _reader = journal.Reader()
+ _size = _reader.get_usage() / 1024 / 1024
+ if _size > 20:
+ return
# write 20MB at a time to side-step rate/size limiting on some distros
- # write over 100MB to ensure we will actually size limit inside sos,
+ # write over 20MB to ensure we will actually size limit inside sos,
# allowing for any compression or de-dupe systemd does
- from systemd import journal
sosfd = journal.stream('sos-testing')
rsize = 10 * 1048576
- for i in range(6):
+ for i in range(2):
# generate 10MB, write it, then write it in reverse.
# Spend less time generating new strings
rand = ''.join(random.choice(ascii_uppercase + digits) for _ in range(rsize))
sosfd.write(rand + '\n')
# sleep to avoid burst rate-limiting
- sleep(10)
+ sleep(5)
sosfd.write(rand[::-1] + '\n')
def test_journal_size_limit(self):
journ = 'sos_commands/logs/journalctl_--no-pager'
self.assertFileCollected(journ)
jsize = os.stat(self.get_name_in_archive(journ)).st_size
- assert jsize <= 105906176, "Collected journal is larger than 100MB (size: %s)" % jsize
- assert jsize > 27262976, "Collected journal limited by --log-size (size: %s)" % jsize
+ assert jsize <= 20971520, "Collected journal is larger than 20MB (size: %s)" % jsize
def test_journal_tailed_and_linked(self):
tailed = self.get_name_in_archive('sos_strings/logs/journalctl_--no-pager.tailed')
self.assertFileExists(tailed)
journ = self.get_name_in_archive('sos_commands/logs/journalctl_--no-pager')
assert os.path.islink(journ), "Journal in sos_commands/logs is not a symlink"
-
- def test_string_not_in_manifest(self):
- # we don't want truncated collections appearing in the strings section
- # of the manifest for the plugin
- manifest = self.get_plugin_manifest('logs')
- self.assertFalse(manifest['strings'])