|
|
- package types
-
- import (
- "testing"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestABCIResults(t *testing.T) {
- a := ABCIResult{Code: 0, Data: nil}
- b := ABCIResult{Code: 0, Data: []byte{}}
- c := ABCIResult{Code: 0, Data: []byte("one")}
- d := ABCIResult{Code: 14, Data: nil}
- e := ABCIResult{Code: 14, Data: []byte("foo")}
- f := ABCIResult{Code: 14, Data: []byte("bar")}
-
- // nil and []byte{} should produce same hash
- assert.Equal(t, a.Hash(), b.Hash())
-
- // a and b should be the same, don't go in results
- results := ABCIResults{a, c, d, e, f}
-
- // make sure each result hashes properly
- var last []byte
- for i, res := range results {
- h := res.Hash()
- assert.NotEqual(t, last, h, "%d", i)
- last = h
- }
-
- // make sure that we can get a root hash from results
- // and verify proofs
- root := results.Hash()
- assert.NotEmpty(t, root)
-
- for i, res := range results {
- proof := results.ProveResult(i)
- valid := proof.Verify(i, len(results), res.Hash(), root)
- assert.True(t, valid, "%d", i)
- }
- }
|