blob: e9d0706fb5d1698e3446f9552997cdfe53965339 [file] [log] [blame]
package main
import (
"os"
"path/filepath"
"testing"
)
func TestEmptyProfiler(t *testing.T) {
dir := t.TempDir()
tests := []struct {
name string
cpuProfile string
memProfile string
}{
{
name: "cpuProfile",
cpuProfile: filepath.Join(dir, "cpu.prof"),
},
{
name: "memProfile",
memProfile: filepath.Join(dir, "mem.prof"),
},
{
name: "empty",
},
}
for _, test := range tests {
t.Run("", func(t *testing.T) {
p, err := newProfiler(test.cpuProfile, test.memProfile)
if err != nil {
t.Fatalf("newProfiler failed: %v", err)
}
if err := p.stop(); err != nil {
t.Fatalf("stop failed: %v", err)
}
})
}
}
func TestProfiler(t *testing.T) {
dir := t.TempDir()
cpuProfileName := filepath.Join(dir, "cpu.prof")
memProfileName := filepath.Join(dir, "mem.prof")
t.Cleanup(func() {
os.Remove(cpuProfileName)
os.Remove(memProfileName)
})
p, err := newProfiler(cpuProfileName, memProfileName)
if err != nil {
t.Fatalf("newProfiler failed: %v", err)
}
if p.cpuProfile == nil {
t.Fatal("Expected cpuProfile to be non-nil")
}
if p.memProfile != memProfileName {
t.Fatalf("Expected memProfile to be %s, got %s", memProfileName, p.memProfile)
}
if err := p.stop(); err != nil {
t.Fatalf("stop failed: %v", err)
}
if _, err := os.Stat(cpuProfileName); os.IsNotExist(err) {
t.Fatalf("CPU profile file %s was not created", cpuProfileName)
}
if _, err := os.Stat(memProfileName); os.IsNotExist(err) {
t.Fatalf("Memory profile file %s was not created", memProfileName)
}
}