name: Stability Tests on: push: branches: [ main, master ] pull_request: branches: [ main, master ] jobs: stability-tests: name: Stability Tests runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] go-version: ['1.24'] include: - os: ubuntu-latest go-version: '1.24' run-long-tests: true steps: - name: Checkout uses: actions/checkout@v3 - name: Install Go ${{ matrix.go-version }} uses: actions/setup-go@v3 with: go-version: ${{ matrix.go-version }} - name: Display Go Version run: go version - name: Install Dependencies run: go mod download - name: Run Basic Tests run: go test -v -race - name: Run XCipher Stream Tests run: go test -v -run 'TestStream(EncryptDecrypt|EncryptDecryptWithOptions|ParallelProcessing|Cancellation|Errors)' - name: Run XCipher Feature Tests run: go test -v -run 'Test(CPUFeatureDetection|DynamicParameterAdjustment|OptimizedStreamOptions|ZeroCopyMechanism|AutoParallelDecision)' - name: Run Concurrent Load Test if: ${{ matrix.run-long-tests }} run: go test -v -run TestConcurrentLoad -timeout 30m - name: Run Fault Tolerance Test if: ${{ matrix.run-long-tests }} run: go test -v -run TestFaultTolerance -timeout 10m - name: Run Resource Constraints Test if: ${{ matrix.run-long-tests }} run: go test -v -run TestResourceConstraints -timeout 20m - name: Run Long-term Stability Test if: ${{ matrix.run-long-tests }} run: go test -v -run TestLongRunningStability -timeout 20m - name: Run Benchmark Tests if: ${{ matrix.run-long-tests }} run: go test -bench=. -benchmem -timeout 30m