gitlab.com/jfprevost/gitlab-runner-notlscheck@v11.11.4+incompatible/log/dump_unix_test.go (about) 1 // +build darwin dragonfly freebsd linux netbsd openbsd 2 3 package log 4 5 import ( 6 "os" 7 "syscall" 8 "testing" 9 10 "github.com/sirupsen/logrus" 11 "github.com/sirupsen/logrus/hooks/test" 12 "github.com/stretchr/testify/assert" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestStackDumping(t *testing.T) { 17 logger, hook := test.NewNullLogger() 18 logger.SetFormatter(new(logrus.TextFormatter)) 19 20 stopCh := make(chan bool) 21 22 dumpedCh, finishedCh := watchForGoroutinesDump(logger, stopCh) 23 require.NotNil(t, dumpedCh) 24 require.NotNil(t, finishedCh) 25 26 proc, err := os.FindProcess(os.Getpid()) 27 require.NoError(t, err) 28 proc.Signal(syscall.SIGUSR1) 29 30 <-dumpedCh 31 logrusOutput, err := hook.LastEntry().String() 32 require.NoError(t, err) 33 assert.Contains(t, logrusOutput, "=== received SIGUSR1 ===") 34 assert.Contains(t, logrusOutput, "*** goroutine dump...") 35 36 close(stopCh) 37 <-finishedCh 38 }