name: test

on: [push, pull_request]

jobs:
  ubuntu:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4
      - name: install brotli
        run: sudo apt-get update && sudo apt-get install -y libbrotli-dev
      - name: build and run tests
        run: cd test && make -j4
      - name: run fuzz test target
        run: cd test && make fuzz_test

  macos:
    runs-on: macos-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4
      - name: build and run tests
        run: |
          cd test && make -j2

  windows:
    runs-on: windows-latest
    steps:
    - name: prepare git for checkout on windows
      run: |
        git config --global core.autocrlf false
        git config --global core.eol lf
    - name: checkout
      uses: actions/checkout@v4
    - name: setup msbuild on windows
      uses: microsoft/setup-msbuild@v2
    - name: make-windows
      run: |
        cd test
        msbuild.exe test.sln /verbosity:minimal /t:Build "/p:Configuration=Release;Platform=x64"
        x64\Release\test.exe

