diff --git a/baseapp/baseapp_test.go b/baseapp/baseapp_test.go index 2813dfc3ea..5896e6ac0a 100644 --- a/baseapp/baseapp_test.go +++ b/baseapp/baseapp_test.go @@ -6,6 +6,7 @@ import ( "crypto/sha256" "fmt" "math/rand" + "sync" "testing" "time" @@ -51,7 +52,7 @@ type ( baseApp *baseapp.BaseApp cdc *codec.ProtoCodec txConfig client.TxConfig - logBuffer *bytes.Buffer + logBuffer *safeBuffer } SnapshotsConfig struct { @@ -63,6 +64,31 @@ type ( } ) +type safeBuffer struct { + b *bytes.Buffer + mu sync.Mutex +} + +func newSafeBuffer() *safeBuffer { + return &safeBuffer{ + b: new(bytes.Buffer), + mu: sync.Mutex{}, + } +} + +func (b *safeBuffer) Write(p []byte) (n int, err error) { + b.mu.Lock() + defer b.mu.Unlock() + return b.b.Write(p) +} + +// Add any other methods you need to access +func (b *safeBuffer) String() string { + b.mu.Lock() + defer b.mu.Unlock() + return b.b.String() +} + func NewBaseAppSuite(t *testing.T, opts ...func(*baseapp.BaseApp)) *BaseAppSuite { t.Helper() @@ -71,7 +97,7 @@ func NewBaseAppSuite(t *testing.T, opts ...func(*baseapp.BaseApp)) *BaseAppSuite txConfig := authtx.NewTxConfig(cdc, authtx.DefaultSignModes) db := dbm.NewMemDB() - logBuffer := new(bytes.Buffer) + logBuffer := newSafeBuffer() logger := log.NewLogger(logBuffer, log.ColorOption(false)) app := baseapp.NewBaseApp(t.Name(), logger, db, txConfig.TxDecoder(), opts...)