MCPcopy Create free account
hub / github.com/DeAI-Artist/Linkis / validatePrecommit

Function validatePrecommit

consensus/common_test.go:281–327  ·  view source on GitHub ↗
(
	t *testing.T,
	cs *State,
	thisRound,
	lockRound int32,
	privVal *validatorStub,
	votedBlockHash,
	lockedBlockHash []byte,
)

Source from the content-addressed store, hash-verified

279}
280
281func validatePrecommit(
282 t *testing.T,
283 cs *State,
284 thisRound,
285 lockRound int32,
286 privVal *validatorStub,
287 votedBlockHash,
288 lockedBlockHash []byte,
289) {
290 precommits := cs.Votes.Precommits(thisRound)
291 pv, err := privVal.GetPubKey()
292 require.NoError(t, err)
293 address := pv.Address()
294 var vote *types.Vote
295 if vote = precommits.GetByAddress(address); vote == nil {
296 panic("Failed to find precommit from validator")
297 }
298
299 if votedBlockHash == nil {
300 if vote.BlockID.Hash != nil {
301 panic("Expected precommit to be for nil")
302 }
303 } else {
304 if !bytes.Equal(vote.BlockID.Hash, votedBlockHash) {
305 panic("Expected precommit to be for proposal block")
306 }
307 }
308
309 if lockedBlockHash == nil {
310 if cs.LockedRound != lockRound || cs.LockedBlock != nil {
311 panic(fmt.Sprintf(
312 "Expected to be locked on nil at round %d. Got locked at round %d with block %v",
313 lockRound,
314 cs.LockedRound,
315 cs.LockedBlock))
316 }
317 } else {
318 if cs.LockedRound != lockRound || !bytes.Equal(cs.LockedBlock.Hash(), lockedBlockHash) {
319 panic(fmt.Sprintf(
320 "Expected block to be locked on round %d, got %d. Got locked block %X, expected %X",
321 lockRound,
322 cs.LockedRound,
323 cs.LockedBlock.Hash(),
324 lockedBlockHash))
325 }
326 }
327}
328
329func validatePrevoteAndPrecommit(
330 t *testing.T,

Callers 15

TestStateBadProposalFunction · 0.85
TestStateOversizedBlockFunction · 0.85
TestStateFullRound2Function · 0.85
TestStateLockNoPOLFunction · 0.85
TestStateLockPOLRelockFunction · 0.85
TestStateLockPOLUnlockFunction · 0.85
TestStateLockPOLSafety1Function · 0.85
TestStateLockPOLSafety2Function · 0.85
TestProposeValidBlockFunction · 0.85

Calls 6

PrecommitsMethod · 0.80
GetPubKeyMethod · 0.65
AddressMethod · 0.65
EqualMethod · 0.65
HashMethod · 0.65
GetByAddressMethod · 0.45

Tested by

no test coverage detected