Skip to content

tests: Add tests for easy-hard NAT combinations #929

tests: Add tests for easy-hard NAT combinations

tests: Add tests for easy-hard NAT combinations #929

Workflow file for this run

name: Wine Tests
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
concurrency:
group: wine-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
RUSTFLAGS: -Dwarnings
jobs:
wine_test:
name: Wine Sanity Check
runs-on: [self-hosted, linux, X64]
steps:
- uses: actions/checkout@v4
- name: Install Wine
run: |
# Use WineHQ for newer Wine with bcryptprimitives.dll support
sudo dpkg --add-architecture i386
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources
sudo apt-get update
sudo apt-get install -y --install-recommends winehq-stable || sudo apt-get install -y wine64 wine32
# Initialize Wine prefix
WINEARCH=win64 wineboot --init
- name: Install Rust + mingw target
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-gnu
- name: Install mingw-w64
run: sudo apt-get install -y mingw-w64
- name: Build tests
# Release mode required - debug builds exceed mingw's export ordinal limit (~65k symbols)
run: cargo build --target x86_64-pc-windows-gnu --tests --release
- name: List available tests
run: |
for exe in target/x86_64-pc-windows-gnu/release/deps/*.exe; do
echo "=== Tests in $exe ==="
wine "$exe" --list
done
- name: Run tests under Wine
run: |
for exe in target/x86_64-pc-windows-gnu/release/deps/*.exe; do
echo "=== Running $exe ==="
wine "$exe" --test-threads=1
done