|
|
@ -1,7 +1,94 @@ |
|
|
|
package types |
|
|
|
|
|
|
|
import "testing" |
|
|
|
import ( |
|
|
|
"testing" |
|
|
|
|
|
|
|
func TestBlockMetaValidateBasic(t *testing.T) { |
|
|
|
// TODO
|
|
|
|
"github.com/stretchr/testify/require" |
|
|
|
"github.com/tendermint/tendermint/crypto/tmhash" |
|
|
|
tmrand "github.com/tendermint/tendermint/libs/rand" |
|
|
|
) |
|
|
|
|
|
|
|
func TestBlockMeta_ToProto(t *testing.T) { |
|
|
|
h := makeRandHeader() |
|
|
|
bi := BlockID{Hash: h.Hash(), PartsHeader: PartSetHeader{Total: 123, Hash: tmrand.Bytes(tmhash.Size)}} |
|
|
|
|
|
|
|
bm := &BlockMeta{ |
|
|
|
BlockID: bi, |
|
|
|
BlockSize: 200, |
|
|
|
Header: h, |
|
|
|
NumTxs: 0, |
|
|
|
} |
|
|
|
|
|
|
|
tests := []struct { |
|
|
|
testName string |
|
|
|
bm *BlockMeta |
|
|
|
expErr bool |
|
|
|
}{ |
|
|
|
{"success", bm, false}, |
|
|
|
{"failure nil", nil, true}, |
|
|
|
} |
|
|
|
|
|
|
|
for _, tt := range tests { |
|
|
|
tt := tt |
|
|
|
t.Run(tt.testName, func(t *testing.T) { |
|
|
|
pb := tt.bm.ToProto() |
|
|
|
|
|
|
|
bm, err := BlockMetaFromProto(pb) |
|
|
|
|
|
|
|
if !tt.expErr { |
|
|
|
require.NoError(t, err, tt.testName) |
|
|
|
require.Equal(t, tt.bm, bm, tt.testName) |
|
|
|
} else { |
|
|
|
require.Error(t, err, tt.testName) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func TestBlockMeta_ValidateBasic(t *testing.T) { |
|
|
|
h := makeRandHeader() |
|
|
|
bi := BlockID{Hash: h.Hash(), PartsHeader: PartSetHeader{Total: 123, Hash: tmrand.Bytes(tmhash.Size)}} |
|
|
|
bi2 := BlockID{Hash: tmrand.Bytes(tmhash.Size), |
|
|
|
PartsHeader: PartSetHeader{Total: 123, Hash: tmrand.Bytes(tmhash.Size)}} |
|
|
|
bi3 := BlockID{Hash: []byte("incorrect hash"), |
|
|
|
PartsHeader: PartSetHeader{Total: 123, Hash: []byte("incorrect hash")}} |
|
|
|
|
|
|
|
bm := &BlockMeta{ |
|
|
|
BlockID: bi, |
|
|
|
BlockSize: 200, |
|
|
|
Header: h, |
|
|
|
NumTxs: 0, |
|
|
|
} |
|
|
|
|
|
|
|
bm2 := &BlockMeta{ |
|
|
|
BlockID: bi2, |
|
|
|
BlockSize: 200, |
|
|
|
Header: h, |
|
|
|
NumTxs: 0, |
|
|
|
} |
|
|
|
|
|
|
|
bm3 := &BlockMeta{ |
|
|
|
BlockID: bi3, |
|
|
|
BlockSize: 200, |
|
|
|
Header: h, |
|
|
|
NumTxs: 0, |
|
|
|
} |
|
|
|
|
|
|
|
tests := []struct { |
|
|
|
name string |
|
|
|
bm *BlockMeta |
|
|
|
wantErr bool |
|
|
|
}{ |
|
|
|
{"success", bm, false}, |
|
|
|
{"failure wrong blockID hash", bm2, true}, |
|
|
|
{"failure wrong length blockID hash", bm3, true}, |
|
|
|
} |
|
|
|
for _, tt := range tests { |
|
|
|
tt := tt |
|
|
|
t.Run(tt.name, func(t *testing.T) { |
|
|
|
if err := tt.bm.ValidateBasic(); (err != nil) != tt.wantErr { |
|
|
|
t.Errorf("BlockMeta.ValidateBasic() error = %v, wantErr %v", err, tt.wantErr) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
} |