|
|
- package main
-
- import (
- "strconv"
- "strings"
- "testing"
-
- abcicli "github.com/tendermint/abci/client"
- "github.com/tendermint/abci/server"
- "github.com/tendermint/abci/types"
- "github.com/tendermint/tmlibs/log"
- )
-
- func TestChainAware(t *testing.T) {
- app := NewChainAwareApplication()
-
- // Start the listener
- srv, err := server.NewServer("unix://test.sock", "socket", app)
- if err != nil {
- t.Fatal(err)
- }
- srv.SetLogger(log.TestingLogger().With("module", "abci-server"))
- if _, err := srv.Start(); err != nil {
- t.Fatal(err.Error())
- }
- defer srv.Stop()
-
- // Connect to the socket
- client := abcicli.NewSocketClient("unix://test.sock", false)
- client.SetLogger(log.TestingLogger().With("module", "abci-client"))
- if _, err := client.Start(); err != nil {
- t.Fatalf("Error starting socket client: %v", err.Error())
- }
- defer client.Stop()
-
- n := uint64(5)
- hash := []byte("fake block hash")
- header := &types.Header{}
- for i := uint64(0); i < n; i++ {
- client.BeginBlockSync(types.RequestBeginBlock{hash, header})
- client.EndBlockSync(i)
- client.CommitSync()
- }
-
- r := app.Query(types.RequestQuery{})
- spl := strings.Split(string(r.Value), ",")
- if len(spl) != 2 {
- t.Fatal("expected %d,%d ; got %s", n, n, string(r.Value))
- }
- beginCount, _ := strconv.Atoi(spl[0])
- endCount, _ := strconv.Atoi(spl[1])
- if uint64(beginCount) != n {
- t.Fatalf("expected beginCount of %d, got %d", n, beginCount)
- } else if uint64(endCount) != n {
- t.Fatalf("expected endCount of %d, got %d", n, endCount)
- }
- }
|