#!/bin/bash # test-all.sh - Run comprehensive tests for OpenCode echo "Running comprehensive tests for OpenCode..." # Create results directory if it doesn't exist mkdir -p .opencode/results # Run Go unit tests echo "Running Go unit tests..." go test -v ./... | tee .opencode/results/go-unit-tests.log # Run Go integration tests echo "Running Go integration tests..." go test -v ./test/integration/... | tee .opencode/results/go-integration-tests.log # Run Go property-based tests echo "Running Go property-based tests..." go test -v -run=Property ./... | tee .opencode/results/go-property-tests.log # Run Go fuzz tests (limited time) echo "Running Go fuzz tests (60 seconds)..." timeout 60s go test -fuzz=Fuzz ./... | tee .opencode/results/go-fuzz-tests.log # Run Go benchmarks echo "Running Go benchmarks..." go test -bench=. -benchmem ./... | tee .opencode/results/go-benchmarks.log # Check for errors if [ $? -eq 0 ]; then echo "All tests completed successfully!" echo "Results saved to .opencode/results/" else echo "Some tests failed!" echo "Check .opencode/results/ for details" exit 1 fi