MCPcopy
hub / github.com/github/gh-ost / TestServerRunCPUProfile

Function TestServerRunCPUProfile

go/logic/server_test.go:13–70  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestServerRunCPUProfile(t *testing.T) {
14 t.Parallel()
15
16 t.Run("failed already running", func(t *testing.T) {
17 s := &Server{isCPUProfiling: 1}
18 profile, err := s.runCPUProfile("15ms")
19 require.Equal(t, err, ErrCPUProfilingInProgress)
20 require.Nil(t, profile)
21 })
22
23 t.Run("failed bad duration", func(t *testing.T) {
24 s := &Server{isCPUProfiling: 0}
25 profile, err := s.runCPUProfile("should-fail")
26 require.Error(t, err)
27 require.Nil(t, profile)
28 })
29
30 t.Run("failed bad option", func(t *testing.T) {
31 s := &Server{isCPUProfiling: 0}
32 profile, err := s.runCPUProfile("10ms,badoption")
33 require.Equal(t, err, ErrCPUProfilingBadOption)
34 require.Nil(t, profile)
35 })
36
37 t.Run("success", func(t *testing.T) {
38 s := &Server{
39 isCPUProfiling: 0,
40 migrationContext: base.NewMigrationContext(),
41 }
42 defaultCPUProfileDuration = time.Millisecond * 10
43 profile, err := s.runCPUProfile("")
44 require.NoError(t, err)
45 require.NotNil(t, profile)
46 require.Equal(t, int64(0), s.isCPUProfiling)
47 })
48
49 t.Run("success with block", func(t *testing.T) {
50 s := &Server{
51 isCPUProfiling: 0,
52 migrationContext: base.NewMigrationContext(),
53 }
54 profile, err := s.runCPUProfile("10ms,block")
55 require.NoError(t, err)
56 require.NotNil(t, profile)
57 require.Equal(t, int64(0), s.isCPUProfiling)
58 })
59
60 t.Run("success with block and gzip", func(t *testing.T) {
61 s := &Server{
62 isCPUProfiling: 0,
63 migrationContext: base.NewMigrationContext(),
64 }
65 profile, err := s.runCPUProfile("10ms,block,gzip")
66 require.NoError(t, err)
67 require.NotNil(t, profile)
68 require.Equal(t, int64(0), s.isCPUProfiling)
69 })
70}

Callers

nothing calls this directly

Calls 3

runCPUProfileMethod · 0.95
NewMigrationContextFunction · 0.92
ErrorMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…