[TESTS] add log.Level to test.NewLogChecker

So the caller can check log events at the desired level instead of
being limited to the default level log.INFO

(cherry picked from commit 2fbf5f9555)
This commit is contained in:
Earl Warren 2024-01-25 11:35:29 +01:00
parent 4e8f6b2ffd
commit e2137a3147
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
4 changed files with 22 additions and 7 deletions

View file

@ -91,7 +91,7 @@ func TestPrimaryKeys(t *testing.T) {
} }
func TestSlowQuery(t *testing.T) { func TestSlowQuery(t *testing.T) {
lc, cleanup := test.NewLogChecker("slow-query") lc, cleanup := test.NewLogChecker("slow-query", log.INFO)
lc.StopMark("[Slow SQL Query]") lc.StopMark("[Slow SQL Query]")
defer cleanup() defer cleanup()
@ -125,7 +125,7 @@ func TestSlowQuery(t *testing.T) {
} }
func TestErrorQuery(t *testing.T) { func TestErrorQuery(t *testing.T) {
lc, cleanup := test.NewLogChecker("error-query") lc, cleanup := test.NewLogChecker("error-query", log.INFO)
lc.StopMark("[Error SQL Query]") lc.StopMark("[Error SQL Query]")
defer cleanup() defer cleanup()

View file

@ -55,13 +55,15 @@ func (lc *LogChecker) checkLogEvent(event *log.EventFormatted) {
var checkerIndex int64 var checkerIndex int64
func NewLogChecker(namePrefix string) (logChecker *LogChecker, cancel func()) { func NewLogChecker(namePrefix string, level log.Level) (logChecker *LogChecker, cancel func()) {
logger := log.GetManager().GetLogger(namePrefix) logger := log.GetManager().GetLogger(namePrefix)
newCheckerIndex := atomic.AddInt64(&checkerIndex, 1) newCheckerIndex := atomic.AddInt64(&checkerIndex, 1)
writerName := namePrefix + "-" + fmt.Sprint(newCheckerIndex) writerName := namePrefix + "-" + fmt.Sprint(newCheckerIndex)
lc := &LogChecker{} lc := &LogChecker{}
lc.EventWriterBaseImpl = log.NewEventWriterBase(writerName, "test-log-checker", log.WriterMode{}) lc.EventWriterBaseImpl = log.NewEventWriterBase(writerName, "test-log-checker", log.WriterMode{
Level: level,
})
logger.AddWriters(lc) logger.AddWriters(lc)
return lc, func() { _ = logger.RemoveWriter(writerName) } return lc, func() { _ = logger.RemoveWriter(writerName) }
} }

View file

@ -12,8 +12,8 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func TestLogChecker(t *testing.T) { func TestLogCheckerInfo(t *testing.T) {
lc, cleanup := NewLogChecker(log.DEFAULT) lc, cleanup := NewLogChecker(log.DEFAULT, log.INFO)
defer cleanup() defer cleanup()
lc.Filter("First", "Third").StopMark("End") lc.Filter("First", "Third").StopMark("End")
@ -24,11 +24,13 @@ func TestLogChecker(t *testing.T) {
assert.False(t, stopped) assert.False(t, stopped)
log.Info("First") log.Info("First")
log.Debug("Third")
filtered, stopped = lc.Check(100 * time.Millisecond) filtered, stopped = lc.Check(100 * time.Millisecond)
assert.ElementsMatch(t, []bool{true, false}, filtered) assert.ElementsMatch(t, []bool{true, false}, filtered)
assert.False(t, stopped) assert.False(t, stopped)
log.Info("Second") log.Info("Second")
log.Debug("Third")
filtered, stopped = lc.Check(100 * time.Millisecond) filtered, stopped = lc.Check(100 * time.Millisecond)
assert.ElementsMatch(t, []bool{true, false}, filtered) assert.ElementsMatch(t, []bool{true, false}, filtered)
assert.False(t, stopped) assert.False(t, stopped)
@ -43,3 +45,14 @@ func TestLogChecker(t *testing.T) {
assert.ElementsMatch(t, []bool{true, true}, filtered) assert.ElementsMatch(t, []bool{true, true}, filtered)
assert.True(t, stopped) assert.True(t, stopped)
} }
func TestLogCheckerDebug(t *testing.T) {
lc, cleanup := NewLogChecker(log.DEFAULT, log.DEBUG)
defer cleanup()
lc.StopMark("End")
log.Debug("End")
_, stopped := lc.Check(100 * time.Millisecond)
assert.True(t, stopped)
}

View file

@ -496,7 +496,7 @@ func TestGiteaUploadUpdateGitForPullRequest(t *testing.T) {
t.Run(testCase.name, func(t *testing.T) { t.Run(testCase.name, func(t *testing.T) {
stopMark := fmt.Sprintf(">>>>>>>>>>>>>STOP: %s<<<<<<<<<<<<<<<", testCase.name) stopMark := fmt.Sprintf(">>>>>>>>>>>>>STOP: %s<<<<<<<<<<<<<<<", testCase.name)
logChecker, cleanup := test.NewLogChecker(log.DEFAULT) logChecker, cleanup := test.NewLogChecker(log.DEFAULT, log.INFO)
logChecker.Filter(testCase.logFilter...).StopMark(stopMark) logChecker.Filter(testCase.logFilter...).StopMark(stopMark)
defer cleanup() defer cleanup()