CI: codecov for multiprocessing (#30432)

pull/30439/head
Justin Newberry 1 year ago committed by GitHub
parent e94c3c5569
commit 2629417320
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      .github/workflows/selfdrive_tests.yaml
  2. 3
      pyproject.toml
  3. 17
      selfdrive/athena/tests/test_athenad.py

@ -213,6 +213,7 @@ jobs:
run: | run: |
${{ env.RUN }} "CI=1 coverage run selfdrive/test/process_replay/test_processes.py -j$(nproc) && \ ${{ env.RUN }} "CI=1 coverage run selfdrive/test/process_replay/test_processes.py -j$(nproc) && \
chmod -R 777 /tmp/comma_download_cache && \ chmod -R 777 /tmp/comma_download_cache && \
coverage combine && \
coverage xml" coverage xml"
- name: Print diff - name: Print diff
id: print-diff id: print-diff
@ -282,6 +283,7 @@ jobs:
run: | run: |
${{ env.RUN_CL }} "unset PYTHONWARNINGS && \ ${{ env.RUN_CL }} "unset PYTHONWARNINGS && \
ONNXCPU=1 CI=1 NO_NAV=1 coverage run selfdrive/test/process_replay/model_replay.py && \ ONNXCPU=1 CI=1 NO_NAV=1 coverage run selfdrive/test/process_replay/model_replay.py && \
coverage combine && \
coverage xml" coverage xml"
- name: Run unit tests - name: Run unit tests
timeout-minutes: 4 timeout-minutes: 4

@ -199,3 +199,6 @@ flake8-implicit-str-concat.allow-multiline=false
"system".msg = "Use openpilot.system" "system".msg = "Use openpilot.system"
"third_party".msg = "Use openpilot.third_party" "third_party".msg = "Use openpilot.third_party"
"tools".msg = "Use openpilot.tools" "tools".msg = "Use openpilot.tools"
[tool.coverage.run]
concurrency = ["multiprocessing", "thread"]

@ -1,5 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import json import json
import multiprocessing
import os import os
import requests import requests
import shutil import shutil
@ -12,7 +13,6 @@ from datetime import datetime, timedelta
from parameterized import parameterized from parameterized import parameterized
from typing import Optional from typing import Optional
from multiprocessing import Process
from pympler.tracker import SummaryTracker from pympler.tracker import SummaryTracker
from unittest import mock from unittest import mock
from websocket import ABNF from websocket import ABNF
@ -75,24 +75,25 @@ class TestAthenadMethods(unittest.TestCase):
with self.assertRaises(TimeoutError) as _: with self.assertRaises(TimeoutError) as _:
dispatcher["getMessage"]("controlsState") dispatcher["getMessage"]("controlsState")
def send_deviceState(): end_event = multiprocessing.Event()
messaging.context = messaging.Context()
pub_sock = messaging.pub_sock("deviceState") pub_sock = messaging.pub_sock("deviceState")
start = time.time()
while time.time() - start < 1: def send_deviceState():
while not end_event.is_set():
msg = messaging.new_message('deviceState') msg = messaging.new_message('deviceState')
pub_sock.send(msg.to_bytes()) pub_sock.send(msg.to_bytes())
time.sleep(0.01) time.sleep(0.01)
p = Process(target=send_deviceState) p = multiprocessing.Process(target=send_deviceState)
p.start() p.start()
time.sleep(0.1) time.sleep(0.1)
try: try:
deviceState = dispatcher["getMessage"]("deviceState") deviceState = dispatcher["getMessage"]("deviceState")
assert deviceState['deviceState'] assert deviceState['deviceState']
finally: finally:
p.terminate() end_event.set()
p.join()
def test_listDataDirectory(self): def test_listDataDirectory(self):
route = '2021-03-29--13-32-47' route = '2021-03-29--13-32-47'

Loading…
Cancel
Save