From 236604bd6beb50d84ac1df193a3dbe5b482948d9 Mon Sep 17 00:00:00 2001 From: Daenney Date: Thu, 4 Apr 2024 17:42:42 +0200 Subject: [PATCH] [chore] Log less output on failed test (#2804) * [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 --- internal/log/syslog_test.go | 14 +++++++------- internal/log/sysloglongunixgram_test.go | 6 +++--- testrig/config.go | 11 ++++++++++- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/internal/log/syslog_test.go b/internal/log/syslog_test.go index 391d5b49b..354c81556 100644 --- a/internal/log/syslog_test.go +++ b/internal/log/syslog_test.go @@ -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() { @@ -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"]) } diff --git a/internal/log/sysloglongunixgram_test.go b/internal/log/sysloglongunixgram_test.go index 11aecfd14..e64a9fef9 100644 --- a/internal/log/sysloglongunixgram_test.go +++ b/internal/log/sysloglongunixgram_test.go @@ -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"]) diff --git a/testrig/config.go b/testrig/config.go index c3a62aed4..d33c4ac8c 100644 --- a/testrig/config.go +++ b/testrig/config.go @@ -18,6 +18,7 @@ package testrig import ( + "os" "time" "codeberg.org/gruf/go-bytesize" @@ -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",