name: Tests

on: [ push, pull_request ]

jobs:
  unit-benchmark-test:
    strategy:
      matrix:
        go: [ 1.17.x, 1.18.x, 1.19.x, 1.20.x, 1.21.x, 1.22.x, 1.23.x]
        os: [ X64 ]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v3

      - name: Set up Go
        uses: actions/setup-go@v3
        with:
          go-version: ${{ matrix.go }}

      - name: Unit Test
        run: go test -race -covermode=atomic -coverprofile=coverage.out ./...

      - name: Benchmark
        run: cd ./bench && go test -bench=. -benchmem -run=none ./...
