42 lines
1.4 KiB
Bash
Executable File
42 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# perf-test.sh - Run comprehensive performance tests for Gemini
|
|
|
|
echo "Running comprehensive performance tests for Gemini..."
|
|
|
|
# Create results directory if it doesn't exist
|
|
mkdir -p .gemini/results
|
|
|
|
# Run unit tests
|
|
echo "Running unit tests..."
|
|
go test -v ./... | tee .gemini/results/unit-tests.log
|
|
|
|
# Run concurrency tests
|
|
echo "Running concurrency tests..."
|
|
go test -v -run=Concurrent ./... | tee .gemini/results/concurrency-tests.log
|
|
|
|
# Run benchmarks
|
|
echo "Running benchmarks..."
|
|
go test -bench=. -benchmem ./... | tee .gemini/results/benchmarks.log
|
|
|
|
# Run benchmarks with CPU profiling
|
|
echo "Running benchmarks with CPU profiling..."
|
|
go test -bench=. -cpuprofile=.gemini/results/cpu.prof ./... | tee .gemini/results/cpu-bench.log
|
|
|
|
# Run benchmarks with memory profiling
|
|
echo "Running benchmarks with memory profiling..."
|
|
go test -bench=. -memprofile=.gemini/results/mem.prof ./... | tee .gemini/results/mem-bench.log
|
|
|
|
# Run benchmarks with goroutine profiling
|
|
echo "Running benchmarks with goroutine profiling..."
|
|
go test -bench=. -blockprofile=.gemini/results/block.prof ./... | tee .gemini/results/block-bench.log
|
|
|
|
# Check for errors
|
|
if [ $? -eq 0 ]; then
|
|
echo "All performance tests completed successfully!"
|
|
echo "Results saved to .gemini/results/"
|
|
else
|
|
echo "Some performance tests failed!"
|
|
echo "Check .gemini/results/ for details"
|
|
exit 1
|
|
fi |