...
1 package main
2
3 import (
4 "os"
5 "path/filepath"
6 "testing"
7 )
8
9 func TestEmptyProfiler(t *testing.T) {
10 dir := t.TempDir()
11 tests := []struct {
12 name string
13 cpuProfile string
14 memProfile string
15 }{
16 {
17 name: "cpuProfile",
18 cpuProfile: filepath.Join(dir, "cpu.prof"),
19 },
20 {
21 name: "memProfile",
22 memProfile: filepath.Join(dir, "mem.prof"),
23 },
24 {
25 name: "empty",
26 },
27 }
28
29 for _, test := range tests {
30 t.Run("", func(t *testing.T) {
31 p, err := newProfiler(test.cpuProfile, test.memProfile)
32 if err != nil {
33 t.Fatalf("newProfiler failed: %v", err)
34 }
35 if err := p.stop(); err != nil {
36 t.Fatalf("stop failed: %v", err)
37 }
38 })
39 }
40 }
41
42 func TestProfiler(t *testing.T) {
43 dir := t.TempDir()
44 cpuProfileName := filepath.Join(dir, "cpu.prof")
45 memProfileName := filepath.Join(dir, "mem.prof")
46 t.Cleanup(func() {
47 os.Remove(cpuProfileName)
48 os.Remove(memProfileName)
49 })
50
51 p, err := newProfiler(cpuProfileName, memProfileName)
52 if err != nil {
53 t.Fatalf("newProfiler failed: %v", err)
54 }
55 if p.cpuProfile == nil {
56 t.Fatal("Expected cpuProfile to be non-nil")
57 }
58 if p.memProfile != memProfileName {
59 t.Fatalf("Expected memProfile to be %s, got %s", memProfileName, p.memProfile)
60 }
61
62 if err := p.stop(); err != nil {
63 t.Fatalf("stop failed: %v", err)
64 }
65
66 if _, err := os.Stat(cpuProfileName); os.IsNotExist(err) {
67 t.Fatalf("CPU profile file %s was not created", cpuProfileName)
68 }
69
70 if _, err := os.Stat(memProfileName); os.IsNotExist(err) {
71 t.Fatalf("Memory profile file %s was not created", memProfileName)
72 }
73 }
74
View as plain text