tendermint/abci/tests/benchmarks/simple/simple.go

70 lines
1.3 KiB
Go
Raw Normal View History

2016-01-18 14:37:42 -08:00
package main
import (
"bufio"
"fmt"
"log"
2016-01-18 14:37:42 -08:00
"net"
2016-05-14 00:09:47 -07:00
"reflect"
2016-01-18 14:37:42 -08:00
2017-01-12 12:47:55 -08:00
"github.com/tendermint/abci/types"
2017-04-21 15:25:13 -07:00
cmn "github.com/tendermint/tmlibs/common"
2016-01-18 14:37:42 -08:00
)
func main() {
2017-01-23 20:26:17 -08:00
conn, err := cmn.Connect("unix://test.sock")
2016-01-18 14:37:42 -08:00
if err != nil {
log.Fatal(err.Error())
2016-01-18 14:37:42 -08:00
}
// Make a bunch of requests
counter := 0
for i := 0; ; i++ {
2016-05-14 00:09:47 -07:00
req := types.ToRequestEcho("foobar")
2016-01-18 14:37:42 -08:00
_, err := makeRequest(conn, req)
if err != nil {
log.Fatal(err.Error())
2016-01-18 14:37:42 -08:00
}
2017-01-17 00:26:32 -08:00
counter++
2016-01-18 14:37:42 -08:00
if counter%1000 == 0 {
fmt.Println(counter)
}
}
}
2016-01-30 19:36:33 -08:00
func makeRequest(conn net.Conn, req *types.Request) (*types.Response, error) {
2016-01-18 14:37:42 -08:00
var bufWriter = bufio.NewWriter(conn)
// Write desired request
2016-01-30 19:36:33 -08:00
err := types.WriteMessage(req, bufWriter)
2016-01-18 14:37:42 -08:00
if err != nil {
return nil, err
}
2016-05-14 00:09:47 -07:00
err = types.WriteMessage(types.ToRequestFlush(), bufWriter)
2016-01-18 14:37:42 -08:00
if err != nil {
return nil, err
}
2016-01-30 19:44:04 -08:00
err = bufWriter.Flush()
if err != nil {
return nil, err
}
2016-01-18 14:37:42 -08:00
// Read desired response
2016-01-30 19:36:33 -08:00
var res = &types.Response{}
err = types.ReadMessage(conn, res)
2016-01-18 14:37:42 -08:00
if err != nil {
return nil, err
}
2016-01-30 19:36:33 -08:00
var resFlush = &types.Response{}
err = types.ReadMessage(conn, resFlush)
2016-01-18 14:37:42 -08:00
if err != nil {
return nil, err
}
2016-05-17 17:06:24 -07:00
if _, ok := resFlush.Value.(*types.Response_Flush); !ok {
2017-01-17 00:26:32 -08:00
return nil, fmt.Errorf("Expected flush response but got something else: %v", reflect.TypeOf(resFlush))
2016-01-18 14:37:42 -08:00
}
return res, nil
}