Skip to content

Commit b2f43b7

Browse files
author
Alexander Hentschel
committed
substantially extended tests:
• cover FinalityProof; • test correct ordering of finalization events when a single additional block results in finalization of multiple known blocks • test API consistency under re-entry
1 parent 9024f61 commit b2f43b7

File tree

2 files changed

+417
-219
lines changed

2 files changed

+417
-219
lines changed

consensus/hotstuff/forks/forks2.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@ type FinalityProof struct {
2525
// https://developers.diem.com/papers/diem-consensus-state-machine-replication-in-the-diem-blockchain/2021-08-17.pdf
2626
// Forks is NOT safe for concurrent use by multiple goroutines.
2727
type Forks2 struct {
28-
notifier hotstuff.FinalizationConsumer
29-
forest forest.LevelledForest
30-
31-
trustedRoot *model.CertifiedBlock
3228
finalizationCallback module.Finalizer
29+
notifier hotstuff.FinalizationConsumer
30+
forest forest.LevelledForest
31+
trustedRoot *model.CertifiedBlock
3332

3433
// finalityProof holds the latest finalized block including the certified child as proof of finality.
3534
// CAUTION: is nil, when Forks has not yet finalized any blocks beyond the finalized root block it was initialized with
@@ -48,8 +47,8 @@ func NewForks2(trustedRoot *model.CertifiedBlock, finalizationCallback module.Fi
4847
}
4948

5049
forks := Forks2{
51-
notifier: notifier,
5250
finalizationCallback: finalizationCallback,
51+
notifier: notifier,
5352
forest: *forest.NewLevelledForest(trustedRoot.Block.View),
5453
trustedRoot: trustedRoot,
5554
finalityProof: nil,
@@ -85,7 +84,7 @@ func (f *Forks2) FinalizedBlock() *model.Block {
8584
// CAUTION: method returns (nil, false), when Forks has not yet finalized any
8685
// blocks beyond the finalized root block it was initialized with.
8786
func (f *Forks2) FinalityProof() (*FinalityProof, bool) {
88-
return f.finalityProof, f.finalityProof == nil
87+
return f.finalityProof, f.finalityProof != nil
8988
}
9089

9190
// GetBlock returns block for given ID

0 commit comments

Comments
 (0)