diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/log/syslog_test.go | 39 | ||||
| -rw-r--r-- | internal/log/sysloglongunixgram_test.go | 69 | 
2 files changed, 69 insertions, 39 deletions
diff --git a/internal/log/syslog_test.go b/internal/log/syslog_test.go index 7432e61b3..391d5b49b 100644 --- a/internal/log/syslog_test.go +++ b/internal/log/syslog_test.go @@ -19,12 +19,9 @@ package log_test  import (  	"fmt" -	"os" -	"path"  	"regexp"  	"testing" -	"github.com/google/uuid"  	"github.com/stretchr/testify/suite"  	"github.com/superseriousbusiness/gotosocial/internal/config"  	"github.com/superseriousbusiness/gotosocial/internal/log" @@ -98,42 +95,6 @@ func (suite *SyslogTestSuite) TestSyslogLongMessage() {  	suite.Regexp(regexp.MustCompile(regex), entry["content"])  } -func (suite *SyslogTestSuite) TestSyslogLongMessageUnixgram() { -	socketPath := path.Join(os.TempDir(), uuid.NewString()) -	defer func() { -		if err := os.Remove(socketPath); err != nil { -			panic(err) -		} -	}() - -	server, channel, err := testrig.InitTestSyslogUnixgram(socketPath) -	if err != nil { -		panic(err) -	} -	syslogServer := server -	syslogChannel := channel - -	config.SetSyslogEnabled(true) -	config.SetSyslogProtocol("unixgram") -	config.SetSyslogAddress(socketPath) - -	testrig.InitTestLog() - -	log.Warn(nil, longMessage) - -	funcName := log.Caller(2) -	prefix := fmt.Sprintf(`timestamp="02/01/2006 15:04:05.000" func=%s level=WARN msg="`, funcName) - -	entry := <-syslogChannel -	regex := fmt.Sprintf(`timestamp=.* func=.* level=WARN msg="%s`, longMessage[:2048-len(prefix)]) - -	suite.Regexp(regexp.MustCompile(regex), entry["content"]) - -	if err := syslogServer.Kill(); err != nil { -		panic(err) -	} -} -  func TestSyslogTestSuite(t *testing.T) {  	suite.Run(t, &SyslogTestSuite{})  } diff --git a/internal/log/sysloglongunixgram_test.go b/internal/log/sysloglongunixgram_test.go new file mode 100644 index 000000000..11aecfd14 --- /dev/null +++ b/internal/log/sysloglongunixgram_test.go @@ -0,0 +1,69 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program.  If not, see <http://www.gnu.org/licenses/>. + +//go:build !darwin + +package log_test + +import ( +	"fmt" +	"os" +	"path" +	"regexp" + +	"github.com/google/uuid" +	"github.com/superseriousbusiness/gotosocial/internal/config" +	"github.com/superseriousbusiness/gotosocial/internal/log" +	"github.com/superseriousbusiness/gotosocial/testrig" +) + +// TestSyslogLongMessageUnixgram is known to hang on macOS for messages longer than about 1500 bytes. +func (suite *SyslogTestSuite) TestSyslogLongMessageUnixgram() { +	socketPath := path.Join(os.TempDir(), uuid.NewString()) +	defer func() { +		if err := os.Remove(socketPath); err != nil { +			panic(err) +		} +	}() + +	server, channel, err := testrig.InitTestSyslogUnixgram(socketPath) +	if err != nil { +		panic(err) +	} +	syslogServer := server +	syslogChannel := channel + +	config.SetSyslogEnabled(true) +	config.SetSyslogProtocol("unixgram") +	config.SetSyslogAddress(socketPath) + +	testrig.InitTestLog() + +	log.Warn(nil, longMessage) + +	funcName := log.Caller(2) +	prefix := fmt.Sprintf(`timestamp="02/01/2006 15:04:05.000" func=%s level=WARN msg="`, funcName) + +	entry := <-syslogChannel +	regex := fmt.Sprintf(`timestamp=.* func=.* level=WARN msg="%s`, longMessage[:2048-len(prefix)]) + +	suite.Regexp(regexp.MustCompile(regex), entry["content"]) + +	if err := syslogServer.Kill(); err != nil { +		panic(err) +	} +}  | 
