test_test.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package test
  2. import (
  3. "sync"
  4. "testing"
  5. "github.com/sirupsen/logrus"
  6. "github.com/stretchr/testify/assert"
  7. )
  8. func TestAllHooks(t *testing.T) {
  9. assert := assert.New(t)
  10. logger, hook := NewNullLogger()
  11. assert.Nil(hook.LastEntry())
  12. assert.Equal(0, len(hook.Entries))
  13. logger.Error("Hello error")
  14. assert.Equal(logrus.ErrorLevel, hook.LastEntry().Level)
  15. assert.Equal("Hello error", hook.LastEntry().Message)
  16. assert.Equal(1, len(hook.Entries))
  17. logger.Warn("Hello warning")
  18. assert.Equal(logrus.WarnLevel, hook.LastEntry().Level)
  19. assert.Equal("Hello warning", hook.LastEntry().Message)
  20. assert.Equal(2, len(hook.Entries))
  21. hook.Reset()
  22. assert.Nil(hook.LastEntry())
  23. assert.Equal(0, len(hook.Entries))
  24. hook = NewGlobal()
  25. logrus.Error("Hello error")
  26. assert.Equal(logrus.ErrorLevel, hook.LastEntry().Level)
  27. assert.Equal("Hello error", hook.LastEntry().Message)
  28. assert.Equal(1, len(hook.Entries))
  29. }
  30. func TestLoggingWithHooksRace(t *testing.T) {
  31. assert := assert.New(t)
  32. logger, hook := NewNullLogger()
  33. var wg sync.WaitGroup
  34. wg.Add(100)
  35. for i := 0; i < 100; i++ {
  36. go func() {
  37. logger.Info("info")
  38. wg.Done()
  39. }()
  40. }
  41. assert.Equal(logrus.InfoLevel, hook.LastEntry().Level)
  42. assert.Equal("info", hook.LastEntry().Message)
  43. wg.Wait()
  44. entries := hook.AllEntries()
  45. assert.Equal(100, len(entries))
  46. }