logcatd bugfix + tests (#19689)
* hack to exit cleanly
* move the hack
* add test
* run in ci
* unused
Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 49d4d58201
commatwo_master
parent
b7245e4cf5
commit
88566ec71c
4 changed files with 50 additions and 3 deletions
@ -0,0 +1,46 @@ |
||||
#!/usr/bin/env python3 |
||||
import os |
||||
import random |
||||
import string |
||||
import time |
||||
import unittest |
||||
|
||||
import cereal.messaging as messaging |
||||
from selfdrive.test.helpers import with_processes |
||||
|
||||
class TestLogcatdAndroid(unittest.TestCase): |
||||
|
||||
@with_processes(['logcatd']) |
||||
def test_log(self): |
||||
sock = messaging.sub_sock("androidLog", conflate=False) |
||||
|
||||
# make sure sockets are ready |
||||
time.sleep(1) |
||||
messaging.drain_sock(sock) |
||||
|
||||
# write some log messages |
||||
sent_msgs = {} |
||||
for _ in range(random.randint(5, 50)): |
||||
msg = ''.join([random.choice(string.ascii_letters) for _ in range(random.randrange(2, 200))]) |
||||
sent_msgs[msg] = ''.join([random.choice(string.ascii_letters) for _ in range(random.randrange(2, 20))]) |
||||
os.system(f"log -t {sent_msgs[msg]} {msg}") |
||||
|
||||
time.sleep(1) |
||||
msgs = messaging.drain_sock(sock) |
||||
for m in msgs: |
||||
self.assertTrue(m.valid) |
||||
self.assertLess(time.monotonic() - (m.logMonoTime / 1e9), 30) |
||||
|
||||
recv_msg = m.androidLog.message.strip() |
||||
if recv_msg not in sent_msgs: |
||||
continue |
||||
|
||||
self.assertEqual(m.androidLog.tag, sent_msgs[recv_msg]) |
||||
del sent_msgs[recv_msg] |
||||
|
||||
# ensure we received all the logs we sent |
||||
self.assertEqual(len(sent_msgs), 0) |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
unittest.main() |
Loading…
Reference in new issue