core/interop: increase coverate for crypto interops

This commit is contained in:
Evgenii Stratonikov 2020-07-25 12:16:56 +03:00
parent 83e53fab24
commit 8931c9a794
2 changed files with 20 additions and 4 deletions

View file

@ -97,16 +97,26 @@ func TestCHECKMULTISIGGood(t *testing.T) {
t.Run("12_9", func(t *testing.T) { testCHECKMULTISIGGood(t, 12, []int{0, 1, 4, 5, 6, 7, 8, 9}) }) t.Run("12_9", func(t *testing.T) { testCHECKMULTISIGGood(t, 12, []int{0, 1, 4, 5, 6, 7, 8, 9}) })
} }
func testCHECKMULTISIGBad(t *testing.T, n int, ik, is []int) { func testCHECKMULTISIGBad(t *testing.T, isErr bool, n int, ik, is []int) {
v := initCHECKMULTISIGVM(t, n, ik, is) v := initCHECKMULTISIGVM(t, n, ik, is)
if isErr {
require.Error(t, v.Run())
return
}
require.NoError(t, v.Run()) require.NoError(t, v.Run())
assert.Equal(t, 1, v.Estack().Len()) assert.Equal(t, 1, v.Estack().Len())
assert.False(t, v.Estack().Pop().Bool()) assert.False(t, v.Estack().Pop().Bool())
} }
func TestCHECKMULTISIGBad(t *testing.T) { func TestCHECKMULTISIGBad(t *testing.T) {
t.Run("1_1 wrong signature", func(t *testing.T) { testCHECKMULTISIGBad(t, 2, []int{0}, []int{1}) }) t.Run("1_1 wrong signature", func(t *testing.T) { testCHECKMULTISIGBad(t, false, 2, []int{0}, []int{1}) })
t.Run("3_2 wrong order", func(t *testing.T) { testCHECKMULTISIGBad(t, 3, []int{0, 2}, []int{2, 0}) }) t.Run("3_2 wrong order", func(t *testing.T) { testCHECKMULTISIGBad(t, false, 3, []int{0, 2}, []int{2, 0}) })
t.Run("3_2 duplicate sig", func(t *testing.T) { testCHECKMULTISIGBad(t, 3, nil, []int{0, 0}) }) t.Run("3_2 duplicate sig", func(t *testing.T) { testCHECKMULTISIGBad(t, false, 3, nil, []int{0, 0}) })
t.Run("1_2 too many signatures", func(t *testing.T) { testCHECKMULTISIGBad(t, true, 2, []int{0}, []int{0, 1}) })
t.Run("gas limit exceeded", func(t *testing.T) {
v := initCHECKMULTISIGVM(t, 1, []int{0}, []int{0})
v.GasLimit = ECDSAVerifyPrice - 1
require.Error(t, v.Run())
})
} }

View file

@ -213,6 +213,12 @@ func TestECDSAVerify(t *testing.T) {
pub[0] = 0xFF // invalid prefix pub[0] = 0xFF // invalid prefix
runCase(t, true, false, sign, pub, msg) runCase(t, true, false, sign, pub, msg)
}) })
t.Run("invalid message", func(t *testing.T) {
sign := priv.Sign(msg)
runCase(t, false, false, sign, priv.PublicKey().Bytes(),
stackitem.NewArray([]stackitem.Item{stackitem.NewByteArray(msg)}))
})
} }
func TestRuntimeEncode(t *testing.T) { func TestRuntimeEncode(t *testing.T) {