From 391578631a1a989dc459fa30d7c8d1b089e0c840 Mon Sep 17 00:00:00 2001 From: Manoranjith Date: Tue, 14 Dec 2021 16:00:39 +0530 Subject: [PATCH] :white_check_mark: [persistence/test] Use randomizer to generate signatures - Previously, signatures used in tests were directly generated as byte arrays. - After the changing type of wallet.Sig from byte array to interface, this does not work. - Hence, use the wallet randomizer to generate signatures needed for tests. Signed-off-by: Manoranjith --- .../persistence/test/channel_internal_test.go | 83 ++++++++++++++----- 1 file changed, 64 insertions(+), 19 deletions(-) diff --git a/channel/persistence/test/channel_internal_test.go b/channel/persistence/test/channel_internal_test.go index 56a10e348..9c56feeff 100644 --- a/channel/persistence/test/channel_internal_test.go +++ b/channel/persistence/test/channel_internal_test.go @@ -15,22 +15,33 @@ package test import ( - "math/rand" "testing" + "github.com/stretchr/testify/require" "perun.network/go-perun/wallet" - "polycry.pt/poly-go/test" + "perun.network/go-perun/wallet/test" + pkgtest "polycry.pt/poly-go/test" ) func TestRequireEqualSigsTX(t *testing.T) { - prng := test.Prng(t) + prng := pkgtest.Prng(t) + acc := test.NewRandomAccount(prng) + data1 := make([]byte, prng.Int63n(50)) + prng.Read(data1) + data2 := make([]byte, prng.Int63n(50)) + prng.Read(data2) + + sig1, err := acc.SignData(data1) + require.NoError(t, err) + sig2, err := acc.SignData(data2) + require.NoError(t, err) + equalSigsTableNegative := []struct { s1 []wallet.Sig s2 []wallet.Sig }{ - {initSigSlice(10, prng), make([]wallet.Sig, 10)}, - {make([]wallet.Sig, 10), initSigSlice(10, prng)}, - {[]wallet.Sig{{4, 3, 2, 1}}, []wallet.Sig{{1, 2, 3, 4}}}, + {[]wallet.Sig{sig1, sig2}, make([]wallet.Sig, 2)}, + {make([]wallet.Sig, 2), []wallet.Sig{sig1, sig2}}, {make([]wallet.Sig, 5), make([]wallet.Sig, 10)}, {make([]wallet.Sig, 10), make([]wallet.Sig, 5)}, } @@ -42,26 +53,60 @@ func TestRequireEqualSigsTX(t *testing.T) { {nil, make([]wallet.Sig, 10)}, {make([]wallet.Sig, 10), nil}, {make([]wallet.Sig, 10), make([]wallet.Sig, 10)}, - {[]wallet.Sig{{1, 2, 3, 4}}, []wallet.Sig{{1, 2, 3, 4}}}, + {[]wallet.Sig{sig1, sig2}, []wallet.Sig{sig1, sig2}}, + {[]wallet.Sig{sig2}, []wallet.Sig{sig2}}, } - tt := test.NewTester(t) + tt := pkgtest.NewTester(t) for _, _c := range equalSigsTableNegative { c := _c - tt.AssertFatal(func(t test.T) { requireEqualSigs(t, c.s1, c.s2) }) + tt.AssertFatal(func(t pkgtest.T) { requireEqualSigs(t, c.s1, c.s2) }) } for _, c := range equalSigsTablePositive { requireEqualSigs(t, c.s1, c.s2) } } -func initSigSlice(length int, prng *rand.Rand) []wallet.Sig { - s := make([]wallet.Sig, length) - for i := range s { - s[i] = make(wallet.Sig, 32) - for j := 0; j < 32; j++ { - s[i][j] = byte(prng.Int()) - } - } - return s -} +// func TestRequireEqualSigsTX(t *testing.T) { +// prng := pkgtest.Prng(t) + +// acc := test.NewRandomAccount(prng) +// data1 := make([]byte, prng.Int63n(50)) +// prng.Read(data1) +// data2 := make([]byte, prng.Int63n(50)) +// prng.Read(data2) + +// sig1, err := acc.SignData(data1) +// require.NoError(t, err) +// sig2, err := acc.SignData(data2) +// require.NoError(t, err) + +// equalSigsTableNegative := []struct { +// s1 []wallet.Sig +// s2 []wallet.Sig +// }{ +// {nil, []wallet.Sig{sig1}}, +// {[]wallet.Sig{sig1}, nil}, +// {[]wallet.Sig{sig2}, []wallet.Sig{sig1}}, +// {[]wallet.Sig{sig1}, []wallet.Sig{sig2}}, +// {make([]wallet.Sig, 5), make([]wallet.Sig, 10)}, +// {make([]wallet.Sig, 10), make([]wallet.Sig, 5)}, +// } +// equalSigsTablePositive := []struct { +// s1 []wallet.Sig +// s2 []wallet.Sig +// }{ +// {nil, nil}, +// {[]wallet.Sig{sig1}, []wallet.Sig{sig1}}, +// {[]wallet.Sig{sig2}, []wallet.Sig{sig2}}, +// } + +// tt := pkgtest.NewTester(t) +// for _, _c := range equalSigsTableNegative { +// c := _c +// tt.AssertFatal(func(t pkgtest.T) { requireEqualSigs(t, c.s1, c.s2) }) +// } +// for _, c := range equalSigsTablePositive { +// requireEqualSigs(t, c.s1, c.s2) +// } +// }