runs:
  using: "composite"
  steps:
    - name: increase the UDP receive buffer size # see https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size
      shell: bash
      run: sysctl -w net.core.rmem_max=2500000
      if: ${{ matrix.os == 'ubuntu' }}
    - name: Run nocover tests. These are tests that require the coverage analysis to be off # See https://github.com/protocol/.github/issues/460
      shell: bash
      # This matches only tests with "NoCover" in their test name to avoid running all tests again.
      run: go test -tags nocover -run NoCover -v ./...
    - name: Run synctests tests. These are tests that require go 1.24 and the experimental testing/synctest package
      shell: bash
      if: ${{ contains(matrix.go, '1.24') }}
      run: go test -tags goexperiment.synctest -run "_synctest$" -v ./...
    - name: Install testing tools
      shell: bash
      run: cd scripts/test_analysis && go install ./cmd/gotest2sql
    - name: Install test_analysis
      shell: bash
      run: cd scripts/test_analysis && go install .
