1234567891011121314151617181920212223242526272829303132333435363738394041 |
- //go:build linux || darwin
- package proc
- import (
- "errors"
- "os"
- "strings"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/wuntsong-org/go-zero-plus/core/logx/logtest"
- )
- func TestDumpGoroutines(t *testing.T) {
- t.Run("real file", func(t *testing.T) {
- buf := logtest.NewCollector(t)
- dumpGoroutines(fileCreator{})
- assert.True(t, strings.Contains(buf.String(), ".dump"))
- })
- t.Run("fake file", func(t *testing.T) {
- const msg = "any message"
- buf := logtest.NewCollector(t)
- err := errors.New(msg)
- dumpGoroutines(fakeCreator{
- file: &os.File{},
- err: err,
- })
- assert.True(t, strings.Contains(buf.String(), msg))
- })
- }
- type fakeCreator struct {
- file *os.File
- err error
- }
- func (fc fakeCreator) Create(name string) (file *os.File, err error) {
- return fc.file, fc.err
- }
|