mirror of
https://github.com/fluencelabs/tendermint
synced 2025-07-31 20:21:56 +00:00
add test for MConnection TrySend and Send
This commit is contained in:
committed by
Ethan Buchman
parent
e8e512f1fa
commit
51c9211cf4
@@ -271,3 +271,37 @@ func TestMConnectionReadErrorUnknownMsgType(t *testing.T) {
|
|||||||
wire.WriteByte(0x04, mconnClient.conn, &n, &err)
|
wire.WriteByte(0x04, mconnClient.conn, &n, &err)
|
||||||
assert.True(expectSend(chOnErr), "unknown msg type")
|
assert.True(expectSend(chOnErr), "unknown msg type")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMConnectionTrySend(t *testing.T) {
|
||||||
|
assert, require := assert.New(t), require.New(t)
|
||||||
|
|
||||||
|
server, client := net.Pipe()
|
||||||
|
defer server.Close()
|
||||||
|
defer client.Close()
|
||||||
|
|
||||||
|
mconn := createTestMConnection(client)
|
||||||
|
_, err := mconn.Start()
|
||||||
|
require.Nil(err)
|
||||||
|
defer mconn.Stop()
|
||||||
|
|
||||||
|
msg := "Semicolon-Woman"
|
||||||
|
resultCh := make(chan string, 2)
|
||||||
|
assert.True(mconn.TrySend(0x01, msg))
|
||||||
|
server.Read(make([]byte, len(msg)))
|
||||||
|
assert.True(mconn.CanSend(0x01))
|
||||||
|
assert.True(mconn.TrySend(0x01, msg))
|
||||||
|
assert.False(mconn.CanSend(0x01))
|
||||||
|
go func() {
|
||||||
|
mconn.TrySend(0x01, msg)
|
||||||
|
resultCh <- "TrySend"
|
||||||
|
}()
|
||||||
|
go func() {
|
||||||
|
mconn.Send(0x01, msg)
|
||||||
|
resultCh <- "Send"
|
||||||
|
}()
|
||||||
|
assert.False(mconn.CanSend(0x01))
|
||||||
|
assert.False(mconn.TrySend(0x01, msg))
|
||||||
|
assert.Equal("TrySend", <-resultCh)
|
||||||
|
server.Read(make([]byte, len(msg)))
|
||||||
|
assert.Equal("Send", <-resultCh) // Order constrained by parallel blocking above
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user