make buffer thread safe for testing

This commit is contained in:
Tyler 2025-04-30 10:35:44 -07:00
parent 09e5efa103
commit ace6394053

View File

@ -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...)