Skip to content

Commit 126bcef

Browse files
AlexHentschelzhangchiqing
authored andcommitted
minor test cleanup:
* moved `NewContext` outside of `WithReaderBatchWriter` in a few more cases, so that it's only released after the batch is committed.
1 parent dd925c6 commit 126bcef

File tree

5 files changed

+23
-29
lines changed

5 files changed

+23
-29
lines changed

module/builder/collection/builder_test.go

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ type BuilderSuite struct {
8080
// runs before each test runs
8181
func (suite *BuilderSuite) SetupTest() {
8282
fmt.Println("SetupTest>>>>")
83-
lockManager := storage.NewTestingLockManager()
83+
suite.lockManager = storage.NewTestingLockManager()
8484
var err error
8585

8686
suite.genesis, err = unittest.ClusterBlock.Genesis()
@@ -92,7 +92,6 @@ func (suite *BuilderSuite) SetupTest() {
9292
suite.dbdir = unittest.TempDir(suite.T())
9393
suite.badgerDB = unittest.BadgerDB(suite.T(), suite.dbdir)
9494
suite.db = badgerimpl.ToDB(suite.badgerDB)
95-
suite.lockManager = lockManager
9695

9796
metrics := metrics.NewNoopCollector()
9897
tracer := trace.NewNoopTracer()
@@ -132,16 +131,16 @@ func (suite *BuilderSuite) SetupTest() {
132131
clusterQC := unittest.QuorumCertificateFixture(unittest.QCWithRootBlockID(suite.genesis.ID()))
133132
clusterStateRoot, err := clusterkv.NewStateRoot(suite.genesis, clusterQC, suite.epochCounter)
134133
suite.Require().NoError(err)
135-
clusterState, err := clusterkv.Bootstrap(suite.db, lockManager, clusterStateRoot)
134+
clusterState, err := clusterkv.Bootstrap(suite.db, suite.lockManager, clusterStateRoot)
136135
suite.Require().NoError(err)
137136

138-
suite.state, err = clusterkv.NewMutableState(clusterState, lockManager, tracer, suite.headers, suite.payloads)
137+
suite.state, err = clusterkv.NewMutableState(clusterState, suite.lockManager, tracer, suite.headers, suite.payloads)
139138
suite.Require().NoError(err)
140139

141140
state, err := pbadger.Bootstrap(
142141
metrics,
143142
suite.db,
144-
lockManager,
143+
suite.lockManager,
145144
all.Headers,
146145
all.Seals,
147146
all.Results,
@@ -178,7 +177,7 @@ func (suite *BuilderSuite) SetupTest() {
178177
suite.Assert().True(added)
179178
}
180179

181-
suite.builder, _ = builder.NewBuilder(suite.db, tracer, lockManager, suite.protoState, suite.state, suite.headers, suite.headers, suite.payloads, suite.pool, unittest.Logger(), suite.epochCounter)
180+
suite.builder, _ = builder.NewBuilder(suite.db, tracer, suite.lockManager, suite.protoState, suite.state, suite.headers, suite.headers, suite.payloads, suite.pool, unittest.Logger(), suite.epochCounter)
182181
}
183182

184183
// runs after each test finishes
@@ -201,17 +200,17 @@ func (suite *BuilderSuite) InsertBlock(block *model.Block) {
201200
}
202201

203202
func (suite *BuilderSuite) FinalizeBlock(block model.Block) {
204-
err := suite.db.WithReaderBatchWriter(func(rw storage.ReaderBatchWriter) error {
203+
lctx := suite.lockManager.NewContext()
204+
defer lctx.Release()
205+
err := lctx.AcquireLock(storage.LockInsertOrFinalizeClusterBlock)
206+
suite.Assert().NoError(err)
207+
208+
err = suite.db.WithReaderBatchWriter(func(rw storage.ReaderBatchWriter) error {
205209
var refBlock flow.Header
206210
err := operation.RetrieveHeader(rw.GlobalReader(), block.Payload.ReferenceBlockID, &refBlock)
207211
if err != nil {
208212
return err
209213
}
210-
lctx := suite.lockManager.NewContext()
211-
defer lctx.Release()
212-
if err := lctx.AcquireLock(storage.LockInsertOrFinalizeClusterBlock); err != nil {
213-
return err
214-
}
215214
err = procedure.FinalizeClusterBlock(lctx, rw, block.ID())
216215
if err != nil {
217216
return err
@@ -1208,7 +1207,6 @@ func benchmarkBuildOn(b *testing.B, size int) {
12081207
)
12091208
lctx := suite.lockManager.NewContext()
12101209
require.NoError(b, lctx.AcquireLock(storage.LockInsertOrFinalizeClusterBlock))
1211-
12121210
err := suite.db.WithReaderBatchWriter(func(rw storage.ReaderBatchWriter) error {
12131211
return procedure.InsertClusterBlock(lctx, rw, unittest.ClusterProposalFromBlock(block))
12141212
})

module/builder/consensus/builder_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,6 @@ func (bs *BuilderSuite) chainSeal(incorporatedResult *flow.IncorporatedResult) {
178178
// For the verifiers to start checking a result R, they need a source of randomness for the block _incorporating_
179179
// result R. The result for block [A3] is incorporated in [parent], which does _not_ have a child yet.
180180
func (bs *BuilderSuite) SetupTest() {
181-
182181
lockManager := storage.NewTestingLockManager()
183182
// set up no-op dependencies
184183
noopMetrics := metrics.NewNoopCollector()

module/finalizer/consensus/finalizer_test.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,13 @@ func TestMakeFinalValidChain(t *testing.T) {
6464
var list []flow.Identifier
6565

6666
unittest.RunWithBadgerDB(t, func(db *badger.DB) {
67+
dbImpl := badgerimpl.ToDB(db)
68+
6769
// set up lock context
6870
lockManager := storage.NewTestingLockManager()
6971
lctx := lockManager.NewContext()
7072
err := lctx.AcquireLock(storage.LockFinalizeBlock)
7173
require.NoError(t, err)
72-
defer lctx.Release()
73-
74-
dbImpl := badgerimpl.ToDB(db)
7574

7675
// insert the latest finalized height
7776
err = dbImpl.WithReaderBatchWriter(func(rw storage.ReaderBatchWriter) error {
@@ -84,9 +83,9 @@ func TestMakeFinalValidChain(t *testing.T) {
8483
return operation.IndexFinalizedBlockByHeight(lctx, rw, final.Height, final.ID())
8584
})
8685
require.NoError(t, err)
86+
lctx.Release()
8787

8888
// insert the finalized block header into the DB
89-
9089
insertLctx := lockManager.NewContext()
9190
require.NoError(t, insertLctx.AcquireLock(storage.LockInsertBlock))
9291
err = dbImpl.WithReaderBatchWriter(func(rw storage.ReaderBatchWriter) error {
@@ -145,14 +144,13 @@ func TestMakeFinalInvalidHeight(t *testing.T) {
145144
var list []flow.Identifier
146145

147146
unittest.RunWithBadgerDB(t, func(db *badger.DB) {
147+
dbImpl := badgerimpl.ToDB(db)
148+
148149
// set up lock context
149150
lockManager := storage.NewTestingLockManager()
150151
lctx := lockManager.NewContext()
151152
err := lctx.AcquireLock(storage.LockFinalizeBlock)
152153
require.NoError(t, err)
153-
defer lctx.Release()
154-
155-
dbImpl := badgerimpl.ToDB(db)
156154

157155
// insert the latest finalized height
158156
err = dbImpl.WithReaderBatchWriter(func(rw storage.ReaderBatchWriter) error {
@@ -165,6 +163,7 @@ func TestMakeFinalInvalidHeight(t *testing.T) {
165163
return operation.IndexFinalizedBlockByHeight(lctx, rw, final.Height, final.ID())
166164
})
167165
require.NoError(t, err)
166+
lctx.Release()
168167

169168
// insert the finalized block header into the DB
170169
insertLctx := lockManager.NewContext()
@@ -219,14 +218,12 @@ func TestMakeFinalDuplicate(t *testing.T) {
219218
var list []flow.Identifier
220219

221220
unittest.RunWithBadgerDB(t, func(db *badger.DB) {
221+
dbImpl := badgerimpl.ToDB(db)
222222
// set up lock context
223223
lockManager := storage.NewTestingLockManager()
224224
lctx := lockManager.NewContext()
225225
err := lctx.AcquireLock(storage.LockFinalizeBlock)
226226
require.NoError(t, err)
227-
defer lctx.Release()
228-
229-
dbImpl := badgerimpl.ToDB(db)
230227

231228
// insert the latest finalized height
232229
err = dbImpl.WithReaderBatchWriter(func(rw storage.ReaderBatchWriter) error {
@@ -239,6 +236,7 @@ func TestMakeFinalDuplicate(t *testing.T) {
239236
return operation.IndexFinalizedBlockByHeight(lctx, rw, final.Height, final.ID())
240237
})
241238
require.NoError(t, err)
239+
lctx.Release()
242240

243241
// insert the finalized block header into the DB
244242
insertLctx := lockManager.NewContext()

state/cluster/badger/mutator_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ func (suite *MutatorSuite) SetupTest() {
6666
suite.dbdir = unittest.TempDir(suite.T())
6767
suite.badgerdb = unittest.BadgerDB(suite.T(), suite.dbdir)
6868
suite.db = badgerimpl.ToDB(suite.badgerdb)
69-
lockManager := storage.NewTestingLockManager()
70-
suite.lockManager = lockManager
69+
suite.lockManager = storage.NewTestingLockManager()
7170

7271
metrics := metrics.NewNoopCollector()
7372
tracer := trace.NewNoopTracer()
@@ -105,7 +104,7 @@ func (suite *MutatorSuite) SetupTest() {
105104
state, err := pbadger.Bootstrap(
106105
metrics,
107106
suite.db,
108-
lockManager,
107+
suite.lockManager,
109108
all.Headers,
110109
all.Seals,
111110
all.Results,

storage/store/commits_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@ func TestCommitStoreAndRemove(t *testing.T) {
6262
// Create and store a commit
6363
blockID := unittest.IdentifierFixture()
6464
expected := unittest.StateCommitmentFixture()
65+
lctx := lockManager.NewContext()
66+
defer lctx.Release()
6567
err := db.WithReaderBatchWriter(func(rw storage.ReaderBatchWriter) error {
66-
lctx := lockManager.NewContext()
67-
defer lctx.Release()
6868
require.NoError(t, lctx.AcquireLock(storage.LockInsertOwnReceipt))
6969
return store.BatchStore(lctx, blockID, expected, rw)
7070
})

0 commit comments

Comments
 (0)