interfaces: csp_if_zmqhub: Free memory after failure #465
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Test | |
on: [push, pull_request] | |
jobs: | |
run-tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-24.04 | |
- ubuntu-22.04 | |
- ubuntu-20.04 | |
buildsystem: | |
- meson | |
- cmake | |
- waf | |
compiler: | |
- CC: gcc | |
CXX: g++ | |
- CC: clang | |
CXX: clang++ | |
csp_version: | |
- 1 | |
- 2 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Setup packages on Linux | |
if: ${{ runner.os == 'Linux' }} | |
run: | | |
sudo apt-get update | |
sudo apt-get install libzmq3-dev libsocketcan-dev socat iproute2 | |
sudo apt-get install linux-modules-extra-$(uname -r) | |
- name: Setup build system packages on Linux | |
if: ${{ runner.os == 'Linux' && matrix.buildsystem != 'waf' }} | |
run: | | |
sudo apt-get install ninja-build ${{ matrix.buildsystem }} | |
- name: Setup packages on MacOS | |
if: ${{ runner.os == 'macOS' && matrix.buildsystem != 'waf' }} | |
run: | | |
brew update | |
brew install ninja ${{ matrix.buildsystem }} | |
brew install zeromq | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Build | |
env: | |
CC: ${{ matrix.compiler.CC }} | |
CXX: ${{ matrix.compiler.CXX }} | |
run: python3 ./examples/buildall.py --build-system=${{ matrix.buildsystem }} | |
- name: Run Loopback Test | |
run: | | |
./build/examples/csp_arch | |
./build/examples/csp_server_client -T 10 | |
- name: Run KISS Client Test | |
run: | | |
socat -d -d -d pty,raw,echo=0,link=/tmp/pty1 pty,raw,echo=0,link=/tmp/pty2 & | |
sleep 1 | |
./build/examples/csp_server -k /tmp/pty1 -a 1 -T 10 -v ${{ matrix.csp_version }} & | |
./build/examples/csp_client -k /tmp/pty2 -a 2 -C 1 -t -v ${{ matrix.csp_version }} | |
pkill socat | |
- name: Run KISS Server Test | |
run: | | |
socat -d -d -d pty,raw,echo=0,link=/tmp/pty1 pty,raw,echo=0,link=/tmp/pty2 & | |
sleep 1 | |
./build/examples/csp_client -k /tmp/pty2 -a 2 -C 1 -T 10 -v ${{ matrix.csp_version }} & | |
./build/examples/csp_server -k /tmp/pty1 -a 1 -t -v ${{ matrix.csp_version }} | |
pkill socat | |
- name: Run ZMQ Client Test | |
run: | | |
./build/examples/zmqproxy & | |
./build/examples/csp_server -z localhost -a 1 -T 10 -v ${{ matrix.csp_version }} & | |
./build/examples/csp_client -z localhost -a 2 -C 1 -t -v ${{ matrix.csp_version }} | |
pkill zmqproxy | |
- name: Run ZMQ Server Test | |
run: | | |
./build/examples/zmqproxy & | |
./build/examples/csp_client -z localhost -a 2 -C 1 -T 10 -v ${{ matrix.csp_version }} & | |
./build/examples/csp_server -z localhost -a 1 -t -v ${{ matrix.csp_version }} | |
pkill zmqproxy | |
- name: Setup vcan0 | |
run: | | |
sudo modprobe vcan | |
sudo ip link add dev vcan0 type vcan | |
sudo ip link set up vcan0 | |
echo "Waiting for vcan0 to be up..." | |
while ! ip -br link show vcan0 | grep -q "UP"; do | |
sleep 0.1 | |
done | |
echo "vcan0 is up" | |
- name: Run CAN Server Test | |
run: | | |
./build/examples/csp_server -c vcan0 -a 1 -T 10 -v ${{ matrix.csp_version }} & | |
./build/examples/csp_client -c vcan0 -a 2 -C 1 -t -v ${{ matrix.csp_version }} | |
- name: Run CAN Client Test | |
run: | | |
./build/examples/csp_client -c vcan0 -a 2 -C 1 -T 10 -v ${{ matrix.csp_version }} & | |
./build/examples/csp_server -c vcan0 -a 1 -t -v ${{ matrix.csp_version }} |