code.gitea.io/gitea@v1.22.3/modules/test/logchecker_test.go (about)

     1  // Copyright 2023 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package test
     5  
     6  import (
     7  	"testing"
     8  	"time"
     9  
    10  	"code.gitea.io/gitea/modules/log"
    11  
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestLogChecker(t *testing.T) {
    16  	lc, cleanup := NewLogChecker(log.DEFAULT)
    17  	defer cleanup()
    18  
    19  	lc.Filter("First", "Third").StopMark("End")
    20  	log.Info("test")
    21  
    22  	filtered, stopped := lc.Check(100 * time.Millisecond)
    23  	assert.ElementsMatch(t, []bool{false, false}, filtered)
    24  	assert.False(t, stopped)
    25  
    26  	log.Info("First")
    27  	filtered, stopped = lc.Check(100 * time.Millisecond)
    28  	assert.ElementsMatch(t, []bool{true, false}, filtered)
    29  	assert.False(t, stopped)
    30  
    31  	log.Info("Second")
    32  	filtered, stopped = lc.Check(100 * time.Millisecond)
    33  	assert.ElementsMatch(t, []bool{true, false}, filtered)
    34  	assert.False(t, stopped)
    35  
    36  	log.Info("Third")
    37  	filtered, stopped = lc.Check(100 * time.Millisecond)
    38  	assert.ElementsMatch(t, []bool{true, true}, filtered)
    39  	assert.False(t, stopped)
    40  
    41  	log.Info("End")
    42  	filtered, stopped = lc.Check(100 * time.Millisecond)
    43  	assert.ElementsMatch(t, []bool{true, true}, filtered)
    44  	assert.True(t, stopped)
    45  }