diff --git a/selfdrive/test/test_onroad.py b/selfdrive/test/test_onroad.py index a1ac95d419..ef93d6003e 100755 --- a/selfdrive/test/test_onroad.py +++ b/selfdrive/test/test_onroad.py @@ -1,8 +1,10 @@ #!/usr/bin/env python3 +import json import os -import time import subprocess +import time import unittest +from collections import Counter from pathlib import Path import cereal.messaging as messaging @@ -128,6 +130,16 @@ class TestOnroad(unittest.TestCase): cls.lr = list(LogReader(os.path.join(str(cls.segments[1]), "rlog.bz2"))) + def test_cloudlog_size(self): + msgs = [m for m in self.lr if m.which() == 'logMessage'] + + total_size = sum(len(m.as_builder().to_bytes()) for m in msgs) + self.assertLess(total_size, 2.5e5) + + cnt = Counter([json.loads(m.logMessage)['filename'] for m in msgs]) + big_logs = [f for f, n in cnt.most_common(3) if n / sum(cnt.values()) > 30.] + self.assertEqual(len(big_logs), 0, f"Log spam: {big_logs}") + def test_cpu_usage(self): proclogs = [m for m in self.lr if m.which() == 'procLog'] self.assertGreater(len(proclogs), service_list['procLog'].frequency * 45, "insufficient samples")