ubuntu 16.04 -> 20.04 (#309)

master
Adeeb Shihadeh 2020-10-29 13:53:48 -07:00 committed by GitHub
parent bfa00b535a
commit 244e8807df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 19 deletions

View File

@ -1,4 +1,4 @@
name: Tests name: tests
on: [push, pull_request] on: [push, pull_request]
@ -11,8 +11,7 @@ env:
jobs: jobs:
test: test:
runs-on: ubuntu-16.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Build Docker image - name: Build Docker image
@ -20,9 +19,6 @@ jobs:
- name: Static analysis - name: Static analysis
run: | run: |
docker run opendbc bash -c "cd opendbc && git init && git add -A && pre-commit run --all" docker run opendbc bash -c "cd opendbc && git init && git add -A && pre-commit run --all"
- name: Unit tests
run: |
docker run opendbc bash -c "python -m unittest discover opendbc"
- name: Python linter - name: Python linter
run: | run: |
docker run opendbc bash -c "cd opendbc/can/tests/linter_python; PYTHONPATH=/ ./flake8_opendbc.sh" docker run opendbc bash -c "cd opendbc/can/tests/linter_python; PYTHONPATH=/ ./flake8_opendbc.sh"
@ -30,6 +26,9 @@ jobs:
- name: Generator test - name: Generator test
run: | run: |
docker run opendbc bash -c "cd opendbc/can/tests/; PYTHONPATH=/ ./test_generator.sh" docker run opendbc bash -c "cd opendbc/can/tests/; PYTHONPATH=/ ./test_generator.sh"
- name: Unit tests
run: |
docker run opendbc bash -c "python -m unittest discover opendbc"
- name: Push to dockerhub - name: Push to dockerhub
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'commaai/opendbc' if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && github.repository == 'commaai/opendbc'
run: | run: |

View File

@ -36,6 +36,7 @@ repos:
exclude: 'can/dbc_template.cc' exclude: 'can/dbc_template.cc'
args: args:
- --error-exitcode=1 - --error-exitcode=1
- --language=c++
- --force - --force
- --quiet - --quiet
- -j4 - -j4

View File

@ -1,5 +1,6 @@
FROM ubuntu:16.04 FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
autoconf \ autoconf \
build-essential \ build-essential \
@ -30,8 +31,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
ENV PATH="/root/.pyenv/bin:/root/.pyenv/shims:${PATH}" ENV PATH="/root/.pyenv/bin:/root/.pyenv/shims:${PATH}"
RUN pyenv install 3.7.3 RUN pyenv install 3.8.2
RUN pyenv global 3.7.3 RUN pyenv global 3.8.2
RUN pyenv rehash RUN pyenv rehash
COPY requirements.txt /tmp/ COPY requirements.txt /tmp/

View File

@ -97,18 +97,17 @@ unsigned int volkswagen_crc(unsigned int address, uint64_t d, int l) {
// a magic variable padding byte tacked onto the end of the payload. // a magic variable padding byte tacked onto the end of the payload.
// https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_CRCLibrary.pdf // https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_CRCLibrary.pdf
uint8_t *dat = (uint8_t *)&d;
uint8_t crc = 0xFF; // Standard init value for CRC8 8H2F/AUTOSAR uint8_t crc = 0xFF; // Standard init value for CRC8 8H2F/AUTOSAR
// CRC the payload first, skipping over the first byte where the CRC lives. // CRC the payload first, skipping over the first byte where the CRC lives.
for (int i = 1; i < l; i++) { for (int i = 1; i < l; i++) {
crc ^= dat[i]; crc ^= (d >> (i*8)) & 0xFF;
crc = crc8_lut_8h2f[crc]; crc = crc8_lut_8h2f[crc];
} }
// Look up and apply the magic final CRC padding byte, which permutes by CAN // Look up and apply the magic final CRC padding byte, which permutes by CAN
// address, and additionally (for SOME addresses) by the message counter. // address, and additionally (for SOME addresses) by the message counter.
uint8_t counter = dat[1] & 0x0F; uint8_t counter = ((d >> 8) & 0xFF) & 0x0F;
switch(address) { switch(address) {
case 0x86: // LWI_01 Steering Angle case 0x86: // LWI_01 Steering Angle
crc ^= (uint8_t[]){0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86}[counter]; crc ^= (uint8_t[]){0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86}[counter];
@ -176,11 +175,9 @@ unsigned int pedal_checksum(uint64_t d, int l) {
d >>= ((8-l)*8); // remove padding d >>= ((8-l)*8); // remove padding
d >>= 8; // remove checksum d >>= 8; // remove checksum
uint8_t *dat = (uint8_t *)&d;
int i, j; int i, j;
for (i = 0; i < l - 1; i++) { for (i = 0; i < l - 1; i++) {
crc ^= dat[i]; crc ^= (d >> (i*8)) & 0xFF;
for (j = 0; j < 8; j++) { for (j = 0; j < 8; j++) {
if ((crc & 0x80) != 0) { if ((crc & 0x80) != 0) {
crc = (uint8_t)((crc << 1) ^ poly); crc = (uint8_t)((crc << 1) ^ poly);

View File

@ -1,11 +1,9 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import unittest import unittest
import cereal.messaging as messaging
from opendbc.can.parser import CANParser from opendbc.can.parser import CANParser
from opendbc.can.packer import CANPacker from opendbc.can.packer import CANPacker
import cereal.messaging as messaging
# Python implementation so we don't have to depend on boardd # Python implementation so we don't have to depend on boardd
def can_list_to_can_capnp(can_msgs, msgtype='can'): def can_list_to_can_capnp(can_msgs, msgtype='can'):
@ -70,7 +68,6 @@ class TestCanParserPacker(unittest.TestCase):
("LKAS_Output", "ES_LKAS", 0), ("LKAS_Output", "ES_LKAS", 0),
("LKAS_Request", "ES_LKAS", 0), ("LKAS_Request", "ES_LKAS", 0),
("SET_1", "ES_LKAS", 0), ("SET_1", "ES_LKAS", 0),
] ]
checks = [] checks = []