diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/report_tests/plugin_tests/logs.py | 27 |
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']) |