mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-24 02:01:43 +00:00
blockchain: test wip for hard to test functionality [ci skip]
This commit is contained in:
@ -49,7 +49,7 @@ func newBlockchainReactor(logger log.Logger, maxBlockHeight int64) *BlockchainRe
|
|||||||
return bcReactor
|
return bcReactor
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNoBlockMessageResponse(t *testing.T) {
|
func TestNoBlockResponse(t *testing.T) {
|
||||||
maxBlockHeight := int64(20)
|
maxBlockHeight := int64(20)
|
||||||
|
|
||||||
bcr := newBlockchainReactor(log.TestingLogger(), maxBlockHeight)
|
bcr := newBlockchainReactor(log.TestingLogger(), maxBlockHeight)
|
||||||
@ -73,7 +73,7 @@ func TestNoBlockMessageResponse(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// receive a request message from peer,
|
// receive a request message from peer,
|
||||||
// wait to hear response
|
// wait for our response to be received on the peer
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
reqBlockMsg := &bcBlockRequestMessage{tt.height}
|
reqBlockMsg := &bcBlockRequestMessage{tt.height}
|
||||||
reqBlockBytes := wire.BinaryBytes(struct{ BlockchainMessage }{reqBlockMsg})
|
reqBlockBytes := wire.BinaryBytes(struct{ BlockchainMessage }{reqBlockMsg})
|
||||||
@ -97,6 +97,49 @@ func TestNoBlockMessageResponse(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
// NOTE: This is too hard to test without
|
||||||
|
// an easy way to add test peer to switch
|
||||||
|
// or without significant refactoring of the module.
|
||||||
|
// Alternatively we could actually dial a TCP conn but
|
||||||
|
// that seems extreme.
|
||||||
|
func TestBadBlockStopsPeer(t *testing.T) {
|
||||||
|
maxBlockHeight := int64(20)
|
||||||
|
|
||||||
|
bcr := newBlockchainReactor(log.TestingLogger(), maxBlockHeight)
|
||||||
|
bcr.Start()
|
||||||
|
defer bcr.Stop()
|
||||||
|
|
||||||
|
// Add some peers in
|
||||||
|
peer := newbcrTestPeer(p2p.ID(cmn.RandStr(12)))
|
||||||
|
|
||||||
|
// XXX: This doesn't add the peer to anything,
|
||||||
|
// so it's hard to check that it's later removed
|
||||||
|
bcr.AddPeer(peer)
|
||||||
|
assert.True(t, bcr.Switch.Peers().Size() > 0)
|
||||||
|
|
||||||
|
// send a bad block from the peer
|
||||||
|
// default blocks already dont have commits, so should fail
|
||||||
|
block := bcr.store.LoadBlock(3)
|
||||||
|
msg := &bcBlockResponseMessage{Block: block}
|
||||||
|
peer.Send(BlockchainChannel, struct{ BlockchainMessage }{msg})
|
||||||
|
|
||||||
|
ticker := time.NewTicker(time.Millisecond * 10)
|
||||||
|
timer := time.NewTimer(time.Second * 2)
|
||||||
|
LOOP:
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-ticker.C:
|
||||||
|
if bcr.Switch.Peers().Size() == 0 {
|
||||||
|
break LOOP
|
||||||
|
}
|
||||||
|
case <-timer.C:
|
||||||
|
t.Fatal("Timed out waiting to disconnect peer")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
//----------------------------------------------
|
//----------------------------------------------
|
||||||
// utility funcs
|
// utility funcs
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user