Skip to content

Commit

Permalink
[chore] Log less output on failed test (#2804)
Browse files Browse the repository at this point in the history
* [chore] Log less output on failed test

This changes the testrig log level to be error by default instead of
info. This makes test failures a lot easier to read, as we don't have
the parade of info logs for each failure to scroll through.

It speeds up the test suite by a couple of seconds since we need
to buffer and flush a lot less messages. On a clean run, so no test
failures, it's about a 3s difference on my machine. Depending on the
amount of test failures, total time saved can vary.

This also introduces a GTS_TESTRIG_LOG_LEVEL environment variable that
we explicitly check for, making it easy to override the log level should
we have a need for it. This would be primarily for running locally, and
not so much as part of go test.

Lastly, it updates the syslog tests to use log.Error because if the log
level is set to error but we call log.Info no message is emitted and we
hang indefinitely on the channel read.

* [chore] Rename the testrig log level env var
  • Loading branch information
daenney authored Apr 4, 2024
1 parent 8ed1b81 commit 236604b
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 11 deletions.
14 changes: 7 additions & 7 deletions internal/log/syslog_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@ func (suite *SyslogTestSuite) TearDownTest() {
}

func (suite *SyslogTestSuite) TestSyslog() {
log.Info(nil, "this is a test of the emergency broadcast system!")
log.Error(nil, "this is a test of the emergency broadcast system!")

entry := <-suite.syslogChannel
suite.Regexp(regexp.MustCompile(`timestamp=.* func=.* level=INFO msg="this is a test of the emergency broadcast system!"`), entry["content"])
suite.Regexp(regexp.MustCompile(`timestamp=.* func=.* level=ERROR msg="this is a test of the emergency broadcast system!"`), entry["content"])
}

func (suite *SyslogTestSuite) TestSyslogDisableTimestamp() {
Expand All @@ -78,20 +78,20 @@ func (suite *SyslogTestSuite) TestSyslogDisableTimestamp() {
// Set old timestamp on return.
defer log.SetTimeFormat(timefmt)

log.Info(nil, "this is a test of the emergency broadcast system!")
log.Error(nil, "this is a test of the emergency broadcast system!")

entry := <-suite.syslogChannel
suite.Regexp(regexp.MustCompile(`func=.* level=INFO msg="this is a test of the emergency broadcast system!"`), entry["content"])
suite.Regexp(regexp.MustCompile(`func=.* level=ERROR msg="this is a test of the emergency broadcast system!"`), entry["content"])
}

func (suite *SyslogTestSuite) TestSyslogLongMessage() {
log.Warn(nil, longMessage)
log.Error(nil, longMessage)

funcName := log.Caller(2)
prefix := fmt.Sprintf(`timestamp="02/01/2006 15:04:05.000" func=%s level=WARN msg="`, funcName)
prefix := fmt.Sprintf(`timestamp="02/01/2006 15:04:05.000" func=%s level=ERROR msg="`, funcName)

entry := <-suite.syslogChannel
regex := fmt.Sprintf(`timestamp=.* func=.* level=WARN msg="%s`, longMessage[:2048-len(prefix)])
regex := fmt.Sprintf(`timestamp=.* func=.* level=ERROR msg="%s`, longMessage[:2048-len(prefix)])
suite.Regexp(regexp.MustCompile(regex), entry["content"])
}

Expand Down
6 changes: 3 additions & 3 deletions internal/log/sysloglongunixgram_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,13 @@ func (suite *SyslogTestSuite) TestSyslogLongMessageUnixgram() {

testrig.InitTestLog()

log.Warn(nil, longMessage)
log.Error(nil, longMessage)

funcName := log.Caller(2)
prefix := fmt.Sprintf(`timestamp="02/01/2006 15:04:05.000" func=%s level=WARN msg="`, funcName)
prefix := fmt.Sprintf(`timestamp="02/01/2006 15:04:05.000" func=%s level=ERROR msg="`, funcName)

entry := <-syslogChannel
regex := fmt.Sprintf(`timestamp=.* func=.* level=WARN msg="%s`, longMessage[:2048-len(prefix)])
regex := fmt.Sprintf(`timestamp=.* func=.* level=ERROR msg="%s`, longMessage[:2048-len(prefix)])

suite.Regexp(regexp.MustCompile(regex), entry["content"])

Expand Down
11 changes: 10 additions & 1 deletion testrig/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package testrig

import (
"os"
"time"

"codeberg.org/gruf/go-bytesize"
Expand All @@ -33,8 +34,16 @@ func InitTestConfig() {
})
}

func logLevel() string {
level := "error"
if lv := os.Getenv("GTS_LOG_LEVEL"); lv != "" {
level = lv
}
return level
}

var testDefaults = config.Configuration{
LogLevel: "info",
LogLevel: logLevel(),
LogTimestampFormat: "02/01/2006 15:04:05.000",
LogDbQueries: true,
ApplicationName: "gotosocial",
Expand Down

0 comments on commit 236604b

Please sign in to comment.