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) } }