Commit 9618f5c5 authored by liuyuhang's avatar liuyuhang Committed by vipwzw

add test

parent b3a1e2ad
...@@ -117,9 +117,9 @@ type RoundState struct { ...@@ -117,9 +117,9 @@ type RoundState struct {
// RoundStateMessage ... // RoundStateMessage ...
func (rs *RoundState) RoundStateMessage() *tmtypes.NewRoundStepMsg { func (rs *RoundState) RoundStateMessage() *tmtypes.NewRoundStepMsg {
return &tmtypes.NewRoundStepMsg{ return &tmtypes.NewRoundStepMsg{
Height: rs.Height, Height: rs.Height,
Round: int32(rs.Round), Round: int32(rs.Round),
Step: int32(rs.Step), Step: int32(rs.Step),
SecondsSinceStartTime: int32(time.Since(rs.StartTime).Seconds()), SecondsSinceStartTime: int32(time.Since(rs.StartTime).Seconds()),
LastCommitRound: int32(rs.LastCommit.Round()), LastCommitRound: int32(rs.LastCommit.Round()),
} }
......
...@@ -73,9 +73,9 @@ func ParseX509CertificateToSm2(x509Cert *x509.Certificate) *sm2.Certificate { ...@@ -73,9 +73,9 @@ func ParseX509CertificateToSm2(x509Cert *x509.Certificate) *sm2.Certificate {
UnknownExtKeyUsage: x509Cert.UnknownExtKeyUsage, UnknownExtKeyUsage: x509Cert.UnknownExtKeyUsage,
BasicConstraintsValid: x509Cert.BasicConstraintsValid, BasicConstraintsValid: x509Cert.BasicConstraintsValid,
IsCA: x509Cert.IsCA, IsCA: x509Cert.IsCA,
MaxPathLen: x509Cert.MaxPathLen, MaxPathLen: x509Cert.MaxPathLen,
MaxPathLenZero: x509Cert.MaxPathLenZero, MaxPathLenZero: x509Cert.MaxPathLenZero,
SubjectKeyId: x509Cert.SubjectKeyId, SubjectKeyId: x509Cert.SubjectKeyId,
AuthorityKeyId: x509Cert.AuthorityKeyId, AuthorityKeyId: x509Cert.AuthorityKeyId,
...@@ -136,9 +136,9 @@ func ParseSm2CertificateToX509(sm2Cert *sm2.Certificate) *x509.Certificate { ...@@ -136,9 +136,9 @@ func ParseSm2CertificateToX509(sm2Cert *sm2.Certificate) *x509.Certificate {
UnknownExtKeyUsage: sm2Cert.UnknownExtKeyUsage, UnknownExtKeyUsage: sm2Cert.UnknownExtKeyUsage,
BasicConstraintsValid: sm2Cert.BasicConstraintsValid, BasicConstraintsValid: sm2Cert.BasicConstraintsValid,
IsCA: sm2Cert.IsCA, IsCA: sm2Cert.IsCA,
MaxPathLen: sm2Cert.MaxPathLen, MaxPathLen: sm2Cert.MaxPathLen,
MaxPathLenZero: sm2Cert.MaxPathLenZero, MaxPathLenZero: sm2Cert.MaxPathLenZero,
SubjectKeyId: sm2Cert.SubjectKeyId, SubjectKeyId: sm2Cert.SubjectKeyId,
AuthorityKeyId: sm2Cert.AuthorityKeyId, AuthorityKeyId: sm2Cert.AuthorityKeyId,
......
...@@ -107,6 +107,30 @@ func TestKvdbMemSet(t *testing.T) { ...@@ -107,6 +107,30 @@ func TestKvdbMemSet(t *testing.T) {
assert.Nil(t, notExistHash) assert.Nil(t, notExistHash)
} }
func TestKvdbMemSetUpgrade(t *testing.T) {
// not support
dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVStore)
assert.NotNil(t, store)
store.MemSetUpgrade(nil, false)
}
func TestKvdbCommitUpgrade(t *testing.T) {
// not support
dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVStore)
assert.NotNil(t, store)
store.CommitUpgrade(nil)
}
func TestKvdbRollback(t *testing.T) { func TestKvdbRollback(t *testing.T) {
dir, err := ioutil.TempDir("", "example") dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err) assert.Nil(t, err)
......
...@@ -126,6 +126,30 @@ func TestKvmvccdbMemSet(t *testing.T) { ...@@ -126,6 +126,30 @@ func TestKvmvccdbMemSet(t *testing.T) {
assert.Equal(t, values[1], kv[1].Value) assert.Equal(t, values[1], kv[1].Value)
} }
func TestKvmvccdbMemSetUpgrade(t *testing.T) {
// not support
dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(t, store)
store.MemSetUpgrade(nil, false)
}
func TestKvmvccdbCommitUpgrade(t *testing.T) {
// not support
dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVMVCCStore)
assert.NotNil(t, store)
store.CommitUpgrade(nil)
}
func TestKvmvccdbRollback(t *testing.T) { func TestKvmvccdbRollback(t *testing.T) {
dir, err := ioutil.TempDir("", "example") dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err) assert.Nil(t, err)
......
...@@ -18,9 +18,12 @@ import ( ...@@ -18,9 +18,12 @@ import (
"github.com/33cn/chain33/account" "github.com/33cn/chain33/account"
"github.com/33cn/chain33/common" "github.com/33cn/chain33/common"
dbm "github.com/33cn/chain33/common/db" dbm "github.com/33cn/chain33/common/db"
"github.com/33cn/chain33/queue"
qmocks "github.com/33cn/chain33/queue/mocks"
drivers "github.com/33cn/chain33/system/store" drivers "github.com/33cn/chain33/system/store"
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
) )
...@@ -117,6 +120,44 @@ func TestKvmvccMavlMemSet(t *testing.T) { ...@@ -117,6 +120,44 @@ func TestKvmvccMavlMemSet(t *testing.T) {
assert.Nil(t, notExistHash) assert.Nil(t, notExistHash)
} }
func TestKvmvccMavlMemSetUpgrade(t *testing.T) {
dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*KVmMavlStore)
assert.NotNil(t, store)
kvmvccMavlFork = 50
defer func() {
kvmvccMavlFork = 200 * 10000
}()
hash := drivers.EmptyRoot[:]
for i := 0; i < 1; i++ {
var kvs []*types.KeyValue
kvs = append(kvs, &types.KeyValue{Key: []byte(fmt.Sprintf("k%d", i)), Value: []byte(fmt.Sprintf("v%d", i))})
kvs = append(kvs, &types.KeyValue{Key: []byte(fmt.Sprintf("key%d", i)), Value: []byte(fmt.Sprintf("value%d", i))})
datas := &types.StoreSet{
StateHash: hash,
KV: kvs,
Height: int64(i)}
hash, err = store.MemSetUpgrade(datas, true)
assert.Nil(t, err)
actHash, _ := store.CommitUpgrade(&types.ReqHash{Hash: hash})
assert.Equal(t, hash, actHash)
keys := [][]byte{[]byte(fmt.Sprintf("k%d", i)), []byte(fmt.Sprintf("key%d", i))}
get := &types.StoreGet{StateHash: hash, Keys: keys}
values := store.Get(get)
assert.Len(t, values, 2)
assert.Equal(t, []byte(fmt.Sprintf("v%d", i)), values[0])
assert.Equal(t, []byte(fmt.Sprintf("value%d", i)), values[1])
}
notExistHash, _ := store.CommitUpgrade(&types.ReqHash{Hash: drivers.EmptyRoot[:]})
assert.Nil(t, notExistHash)
}
func TestKvmvccMavlCommit(t *testing.T) { func TestKvmvccMavlCommit(t *testing.T) {
dir, err := ioutil.TempDir("", "example") dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err) assert.Nil(t, err)
...@@ -498,6 +539,36 @@ func TestIterateRangeByStateHash(t *testing.T) { ...@@ -498,6 +539,36 @@ func TestIterateRangeByStateHash(t *testing.T) {
assert.Equal(t, int64(0), resp.Amount) assert.Equal(t, int64(0), resp.Amount)
} }
type testClient struct {
qmocks.Client
}
func TestProcEvent(t *testing.T) {
dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
storeCfg, sub := newStoreCfgIter(dir)
store := New(storeCfg, sub).(*KVmMavlStore)
assert.NotNil(t, store)
client := &qmocks.Client{}
client.On("Send", mock.Anything, mock.Anything).Return(nil)
client.On("Sub", mock.Anything, mock.Anything).Return(nil)
client.On("Recv", mock.Anything, mock.Anything).Return(nil)
client.On("NewMessage", mock.Anything, mock.Anything, mock.Anything).Return(nil).Once()
client.On("Wait", mock.Anything).Return(&queue.Message{Data: &types.ReplyString{Data: "other"}}, nil).Once()
store.SetQueueClient(client)
store.ProcEvent(nil)
enableUpdateKvmvcc = true
defer func() {
enableUpdateKvmvcc = false
}()
store.ProcEvent(nil)
store.ProcEvent(&queue.Message{})
}
func GetRandomString(length int) string { func GetRandomString(length int) string {
return common.GetRandPrintString(20, length) return common.GetRandPrintString(20, length)
} }
......
...@@ -114,6 +114,30 @@ func TestKvdbMemSet(t *testing.T) { ...@@ -114,6 +114,30 @@ func TestKvdbMemSet(t *testing.T) {
assert.Nil(t, notExistHash) assert.Nil(t, notExistHash)
} }
func TestKvmvccdbMemSetUpgrade(t *testing.T) {
// not support
dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*Store)
assert.NotNil(t, store)
store.MemSetUpgrade(nil, false)
}
func TestKvmvccdbCommitUpgrade(t *testing.T) {
// not support
dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err)
defer os.RemoveAll(dir) // clean up
os.RemoveAll(dir) //删除已存在目录
var storeCfg = newStoreCfg(dir)
store := New(storeCfg, nil).(*Store)
assert.NotNil(t, store)
store.CommitUpgrade(nil)
}
func TestKvdbRollback(t *testing.T) { func TestKvdbRollback(t *testing.T) {
dir, err := ioutil.TempDir("", "example") dir, err := ioutil.TempDir("", "example")
assert.Nil(t, err) assert.Nil(t, err)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment