code.gitea.io/gitea@v1.22.3/modules/log/manager_test.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package log 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestSharedWorker(t *testing.T) { 13 RegisterEventWriter("dummy", func(writerName string, writerMode WriterMode) EventWriter { 14 return newDummyWriter(writerName, writerMode.Level, 0) 15 }) 16 17 m := NewManager() 18 _, err := m.NewSharedWriter("dummy-1", "dummy", WriterMode{Level: DEBUG, Flags: FlagsFromBits(0)}) 19 assert.NoError(t, err) 20 21 w := m.GetSharedWriter("dummy-1") 22 assert.NotNil(t, w) 23 loggerTest := m.GetLogger("test") 24 loggerTest.AddWriters(w) 25 loggerTest.Info("msg-1") 26 loggerTest.ReplaceAllWriters() // the shared writer is not closed here 27 loggerTest.Info("never seen") 28 29 // the shared writer can still be used later 30 w = m.GetSharedWriter("dummy-1") 31 assert.NotNil(t, w) 32 loggerTest.AddWriters(w) 33 loggerTest.Info("msg-2") 34 35 m.GetLogger("test-another").AddWriters(w) 36 m.GetLogger("test-another").Info("msg-3") 37 38 m.Close() 39 40 logs := w.(*dummyWriter).GetLogs() 41 assert.Equal(t, []string{"msg-1\n", "msg-2\n", "msg-3\n"}, logs) 42 }