github.com/status-im/status-go@v1.1.0/profiling/profiling_test.go (about) 1 package profiling 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 "time" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestProfilingCPU(t *testing.T) { 13 dir := t.TempDir() 14 15 err := StartCPUProfile(dir) 16 require.NoError(t, err) 17 18 // Block for a bit to collect some metrics. 19 time.Sleep(time.Second) 20 21 err = StopCPUProfile() 22 require.NoError(t, err) 23 24 // Verify that the file has some content. 25 file, err := os.Open(filepath.Join(dir, CPUFilename)) 26 require.NoError(t, err) 27 defer func() { 28 err := file.Close() 29 require.NoError(t, err) 30 }() 31 32 t.Logf("CPU profile saved in %s for %s", filepath.Join(dir, CPUFilename), os.Args[0]) 33 34 info, err := file.Stat() 35 require.NoError(t, err) 36 require.True(t, info.Size() > 0, "a file with CPU profile is empty") 37 } 38 39 func TestProfilingMem(t *testing.T) { 40 dir := t.TempDir() 41 42 err := WriteHeapFile(dir) 43 require.NoError(t, err) 44 45 // Verify that the file has some content. 46 file, err := os.Open(filepath.Join(dir, MemFilename)) 47 require.NoError(t, err) 48 defer func() { 49 err := file.Close() 50 require.NoError(t, err) 51 }() 52 53 t.Logf("Memory profile saved in %s for %s", filepath.Join(dir, MemFilename), os.Args[0]) 54 55 info, err := file.Stat() 56 require.NoError(t, err) 57 require.True(t, info.Size() > 0, "a file with memory profile is empty") 58 }