Skip to content

Commit

Permalink
pkg/logging: Replace gocheck with built-in go test
Browse files Browse the repository at this point in the history
Signed-off-by: Tam Mach <tam.mach@cilium.io>
  • Loading branch information
sayboras committed Apr 28, 2024
1 parent 0d03c8a commit 9bb995f
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 52 deletions.
41 changes: 21 additions & 20 deletions pkg/logging/limiter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,43 +4,44 @@
package logging

import (
"testing"
"time"

. "github.com/cilium/checkmate"
"github.com/stretchr/testify/require"
)

func (s *LoggingSuite) TestLimiter(c *C) {
func TestLimiter(t *testing.T) {
// Set up a limiter that allows one event every half second with the burts of 3.
// The underlying token bucket has the capacity of three and fill rate of
// 2 per second.
limiter := NewLimiter(500*time.Millisecond, 3)

// Initially tree events should be allowed and the rest denied.
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, false)
c.Assert(limiter.Allow(), Equals, false)
c.Assert(limiter.Allow(), Equals, false)
require.True(t, limiter.Allow())
require.True(t, limiter.Allow())
require.True(t, limiter.Allow())
require.False(t, limiter.Allow())
require.False(t, limiter.Allow())
require.False(t, limiter.Allow())

// After half second one more event should be allowed, the rest denied
time.Sleep(500 * time.Millisecond)
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, false)
c.Assert(limiter.Allow(), Equals, false)
require.True(t, limiter.Allow())
require.False(t, limiter.Allow())
require.False(t, limiter.Allow())

// After one more second two events should be allowed, the rest denied
time.Sleep(1 * time.Second)
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, false)
c.Assert(limiter.Allow(), Equals, false)
require.True(t, limiter.Allow())
require.True(t, limiter.Allow())
require.False(t, limiter.Allow())
require.False(t, limiter.Allow())

// After two more seconds three events should be allowed, the rest denied
time.Sleep(2 * time.Second)
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, true)
c.Assert(limiter.Allow(), Equals, false)
c.Assert(limiter.Allow(), Equals, false)
require.True(t, limiter.Allow())
require.True(t, limiter.Allow())
require.True(t, limiter.Allow())
require.False(t, limiter.Allow())
require.False(t, limiter.Allow())
}
55 changes: 23 additions & 32 deletions pkg/logging/logging_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,82 +8,73 @@ import (
"testing"
"time"

. "github.com/cilium/checkmate"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/require"
)

// Hook up gocheck into the "go test" runner.
func Test(t *testing.T) {
TestingT(t)
}

type LoggingSuite struct{}

var _ = Suite(&LoggingSuite{})

func (s *LoggingSuite) TestGetLogLevel(c *C) {
func TestGetLogLevel(t *testing.T) {
opts := LogOptions{}

// case doesn't matter with log options
opts[LevelOpt] = "DeBuG"
c.Assert(opts.GetLogLevel(), Equals, logrus.DebugLevel)
require.Equal(t, opts.GetLogLevel(), logrus.DebugLevel)

opts[LevelOpt] = "Invalid"
c.Assert(opts.GetLogLevel(), Equals, DefaultLogLevel)
require.Equal(t, opts.GetLogLevel(), DefaultLogLevel)
}

func (s *LoggingSuite) TestGetLogFormat(c *C) {
func TestGetLogFormat(t *testing.T) {
opts := LogOptions{}

// case doesn't matter with log options
opts[FormatOpt] = "JsOn"
c.Assert(opts.GetLogFormat(), Equals, LogFormatJSON)
require.Equal(t, LogFormatJSON, opts.GetLogFormat())

opts[FormatOpt] = "Invalid"
c.Assert(opts.GetLogFormat(), Equals, DefaultLogFormatTimestamp)
require.Equal(t, DefaultLogFormatTimestamp, opts.GetLogFormat())

opts[FormatOpt] = "JSON-TS"
c.Assert(opts.GetLogFormat(), Equals, LogFormatJSONTimestamp)
require.Equal(t, LogFormatJSONTimestamp, opts.GetLogFormat())
}

func (s *LoggingSuite) TestSetLogLevel(c *C) {
func TestSetLogLevel(t *testing.T) {
oldLevel := DefaultLogger.GetLevel()
defer DefaultLogger.SetLevel(oldLevel)

SetLogLevel(logrus.TraceLevel)
c.Assert(DefaultLogger.GetLevel(), Equals, logrus.TraceLevel)
require.Equal(t, logrus.TraceLevel, DefaultLogger.GetLevel())
}

func (s *LoggingSuite) TestSetDefaultLogLevel(c *C) {
func TestSetDefaultLogLevel(t *testing.T) {
oldLevel := DefaultLogger.GetLevel()
defer DefaultLogger.SetLevel(oldLevel)

SetDefaultLogLevel()
c.Assert(DefaultLogger.GetLevel(), Equals, DefaultLogLevel)
require.Equal(t, DefaultLogLevel, DefaultLogger.GetLevel())
}

func (s *LoggingSuite) TestSetLogFormat(c *C) {
func TestSetLogFormat(t *testing.T) {
oldFormatter := DefaultLogger.Formatter
defer DefaultLogger.SetFormatter(oldFormatter)

SetLogFormat(LogFormatJSON)
c.Assert(reflect.TypeOf(DefaultLogger.Formatter).String(), Equals, "*logrus.JSONFormatter")
require.Equal(t, "*logrus.JSONFormatter", reflect.TypeOf(DefaultLogger.Formatter).String())

SetLogFormat(LogFormatJSONTimestamp)
c.Assert(reflect.TypeOf(DefaultLogger.Formatter).String(), Equals, "*logrus.JSONFormatter")
c.Assert(DefaultLogger.Formatter.(*logrus.JSONFormatter).DisableTimestamp, Equals, false)
c.Assert(DefaultLogger.Formatter.(*logrus.JSONFormatter).TimestampFormat, Equals, time.RFC3339Nano)
require.Equal(t, "*logrus.JSONFormatter", reflect.TypeOf(DefaultLogger.Formatter).String())
require.False(t, DefaultLogger.Formatter.(*logrus.JSONFormatter).DisableTimestamp)
require.Equal(t, time.RFC3339Nano, DefaultLogger.Formatter.(*logrus.JSONFormatter).TimestampFormat)
}

func (s *LoggingSuite) TestSetDefaultLogFormat(c *C) {
func TestSetDefaultLogFormat(t *testing.T) {
oldFormatter := DefaultLogger.Formatter
defer DefaultLogger.SetFormatter(oldFormatter)

SetDefaultLogFormat()
c.Assert(reflect.TypeOf(DefaultLogger.Formatter).String(), Equals, "*logrus.TextFormatter")
require.Equal(t, "*logrus.TextFormatter", reflect.TypeOf(DefaultLogger.Formatter).String())
}

func (s *LoggingSuite) TestSetupLogging(c *C) {
func TestSetupLogging(t *testing.T) {
oldLevel := DefaultLogger.GetLevel()
defer DefaultLogger.SetLevel(oldLevel)

Expand All @@ -94,10 +85,10 @@ func (s *LoggingSuite) TestSetupLogging(c *C) {
}

SetupLogging([]string{}, logOpts, "", false)
c.Assert(DefaultLogger.GetLevel(), Equals, logrus.ErrorLevel)
c.Assert(reflect.TypeOf(DefaultLogger.Formatter).String(), Equals, "*logrus.JSONFormatter")
require.Equal(t, logrus.ErrorLevel, DefaultLogger.GetLevel())
require.Equal(t, "*logrus.JSONFormatter", reflect.TypeOf(DefaultLogger.Formatter).String())

// Validate that the 'debug' flag/arg overrides the logOptions
SetupLogging([]string{}, logOpts, "", true)
c.Assert(DefaultLogger.GetLevel(), Equals, logrus.DebugLevel)
require.Equal(t, logrus.DebugLevel, DefaultLogger.GetLevel())
}

0 comments on commit 9bb995f

Please sign in to comment.