Skip to content

interop

interop #34

Workflow file for this run

name: interop
on: [ workflow_dispatch ]
jobs:
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
testcase: [ onlyTests, onlyMeasurements ]
steps:
- name: Install dependencies
run: |
sudo add-apt-repository ppa:wireshark-dev/nightly
sudo apt-get update
sudo apt-get install -y gnutls-dev
sudo apt-get install -y --no-install-recommends tshark
- name: Checkout linuxquic
uses: actions/checkout@v4
- name: Install quic module from linuxquic
run: |
./autogen.sh
./configure --prefix=/usr
make -C modules
sudo make -C modules install
# quic-interop-runner
- name: Checkout quic-interop-runner
uses: actions/checkout@v4
with:
repository: quic-interop/quic-interop-runner
path: quic-interop-runner
- name: Install quic-interop-runner
run: |
cd quic-interop-runner
pip3 install -r requirements.txt
echo ' res = ""' | tee ./result
echo ' trs = TestResult.SUCCEEDED' | tee -a ./result
echo ' greens = [test.abbreviation() for test in cell if cell[test] is trs]' | tee -a ./result
echo ' greens = [greens[i:i + 8] for i in range(0, len(greens), 8)]' | tee -a ./result
echo ' for green in greens:' | tee -a ./result
echo ' res += colored(trs.symbol() + "(" + ",".join(green), "green") + ")" + br' | tee -a ./result
sed -i '/res = colored(get_letters(TestResult.SUCCEEDED), "green") + br/{r ./result'$'\n''d;}' interop.py
cd ../
- name: Run ${{ matrix.testcase }}
run: |
cd quic-interop-runner
echo '{' | tee ./implementations.json
echo ' "linuxquic": {' | tee -a ./implementations.json
echo ' "image": "quay.io/lxin/linuxquic-interop:latest",' | tee -a ./implementations.json
echo ' "url": "https://github.com/lxin/quic",' | tee -a ./implementations.json
echo ' "role": "both"' | tee -a ./implementations.json
echo ' },' | tee -a ./implementations.json
echo ' "ngtcp2": {' | tee -a ./implementations.json
echo ' "image": "ghcr.io/ngtcp2/ngtcp2-interop:latest",' | tee -a ./implementations.json
echo ' "url": "https://github.com/ngtcp2/ngtcp2",' | tee -a ./implementations.json
echo ' "role": "both"' | tee -a ./implementations.json
echo ' },' | tee -a ./implementations.json
echo ' "quiche": {' | tee -a ./implementations.json
echo ' "image": "cloudflare/quiche-qns:latest",' | tee -a ./implementations.json
echo ' "url": "https://github.com/cloudflare/quiche",' | tee -a ./implementations.json
echo ' "role": "both"' | tee -a ./implementations.json
echo ' },' | tee -a ./implementations.json
echo ' "msquic": {' | tee -a ./implementations.json
echo ' "image": "ghcr.io/microsoft/msquic/qns:main",' | tee -a ./implementations.json
echo ' "url": "https://github.com/microsoft/msquic",' | tee -a ./implementations.json
echo ' "role": "both"' | tee -a ./implementations.json
echo ' }' | tee -a ./implementations.json
echo '}' | tee -a ./implementations.json
python3 run.py -t ${{ matrix.testcase }} || true