name: test

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        go-versions: [ '1.18', '1.19', '1.20', '1.21', '1.22', '1.23', '1.24' ]
    steps:
      - uses: actions/checkout@v3
      - name: Setup Go ${{ matrix.go-version }}
        uses: actions/setup-go@v4
        with:
          go-version: ${{ matrix.go-version }}
      - name: Test
        run: go test ./...

  debug:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Go 1.18
        uses: actions/setup-go@v4
        with:
          go-version: 1.18
      - name: Test
        run: go test -tags=expr_debug -run=TestDebugger -v ./vm

  race:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Go 1.21
        uses: actions/setup-go@v4
        with:
          go-version: 1.21
      - name: Test
        run: go test -race .
