From fe4d2735cf031ec84a2725bd1321519af53720df Mon Sep 17 00:00:00 2001 From: Guilhem Fanton Date: Wed, 15 Apr 2020 13:17:07 +0200 Subject: [PATCH] fix(test): fix test with rdv point --- go/internal/handshake/handshake_util_test.go | 28 +++++-- go/internal/testutil/logging.go | 6 +- go/internal/tinder/driver_mocked_test.go | 66 --------------- go/internal/tinder/driver_multi_test.go | 10 ++- go/internal/tinder/driver_rdv_test.go | 87 -------------------- go/pkg/bertyprotocol/orbitdb_utils_test.go | 14 +++- 6 files changed, 41 insertions(+), 170 deletions(-) delete mode 100644 go/internal/tinder/driver_mocked_test.go delete mode 100644 go/internal/tinder/driver_rdv_test.go diff --git a/go/internal/handshake/handshake_util_test.go b/go/internal/handshake/handshake_util_test.go index 7ca5235ab5..5ec6f9973b 100644 --- a/go/internal/handshake/handshake_util_test.go +++ b/go/internal/handshake/handshake_util_test.go @@ -30,6 +30,8 @@ type mockedPeer struct { type mockedHandshake struct { requester *mockedPeer responder *mockedPeer + + cleanup func() } type requesterTestFunc func( @@ -64,26 +66,37 @@ func newMockedPeer(t *testing.T, ctx context.Context, ipfsOpts *ipfsutil.Testing func newMockedHandshake(t *testing.T, ctx context.Context) *mockedHandshake { t.Helper() + mn := p2pmocknet.New(ctx) + rdvp, err := mn.GenPeer() + require.NoError(t, err, "failed to generate mocked peer") + + _, rdv_cleanup := ipfsutil.TestingRDVP(ctx, t, rdvp) + opts := &ipfsutil.TestingAPIOpts{ - Mocknet: p2pmocknet.New(ctx), + Mocknet: mn, + RDVPeer: rdvp.ID(), } - requester, cleanup := newMockedPeer(t, ctx, opts) - defer cleanup() - - responder, cleanup := newMockedPeer(t, ctx, opts) - defer cleanup() + requester, req_cleanup := newMockedPeer(t, ctx, opts) + responder, res_cleanup := newMockedPeer(t, ctx, opts) // link responder & requester - err := opts.Mocknet.LinkAll() + err = opts.Mocknet.LinkAll() require.NoError(t, err, "can't link peers") // connect responder & requester err = opts.Mocknet.ConnectAllButSelf() require.NoError(t, err, "can't connect peers") + cleanup := func() { + res_cleanup() + req_cleanup() + rdv_cleanup() + } + return &mockedHandshake{ requester: requester, responder: responder, + cleanup: cleanup, } } @@ -92,6 +105,7 @@ func (mh *mockedHandshake) close(t *testing.T) { mh.requester.coreAPI.Close() mh.responder.coreAPI.Close() + mh.cleanup() } func newTestHandshakeContext(stream p2pnetwork.Stream, ownAccountID p2pcrypto.PrivKey, peerAccountID p2pcrypto.PubKey) *handshakeContext { diff --git a/go/internal/testutil/logging.go b/go/internal/testutil/logging.go index 3db130d982..55f1df358a 100644 --- a/go/internal/testutil/logging.go +++ b/go/internal/testutil/logging.go @@ -6,7 +6,7 @@ import ( "strconv" "testing" - "berty.tech/berty/v2/go/internal/ipfsutil" + ipfs_log "github.com/ipfs/go-log" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) @@ -41,9 +41,7 @@ func Logger(t *testing.T) *zap.Logger { } if libp2pDebug { - if err := ipfsutil.ConfigureLogger("*", logger, "debug"); err != nil { - logger.Error("setup libp2p logger", zap.Error(err)) - } + ipfs_log.SetDebugLogging() } if orbitdbDebug { diff --git a/go/internal/tinder/driver_mocked_test.go b/go/internal/tinder/driver_mocked_test.go deleted file mode 100644 index e8ead74a0f..0000000000 --- a/go/internal/tinder/driver_mocked_test.go +++ /dev/null @@ -1,66 +0,0 @@ -package tinder - -import ( - "context" - "testing" - "time" - - libp2p_mocknet "github.com/libp2p/go-libp2p/p2p/net/mock" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestMockedDriver_Advertise(t *testing.T) { - cases := []struct { - Name string - NDrivers int - }{ - {"1 drivers", 1}, - {"10 drivers", 10}, - {"50 drivers", 100}, - } - - for _, tc := range cases { - t.Run(tc.Name, func(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - mn := libp2p_mocknet.New(ctx) - - factory := NewMockedDriverFactory() - drivers := make([]Driver, tc.NDrivers) - for i := range drivers { - peer, err := mn.GenPeer() - require.NoError(t, err) - drivers[i] = factory.NewMockedDriver(peer) - } - - testSimpleAdvertise(ctx, t, &caseSimpleAdvertise{ - Key: "simplekey", - Drivers: drivers, - }) - - testTTLAdvertise(ctx, t, &caseTTLAdvertise{ - Name: "ttl:500ms wait:1s should fail", - Key: "testTTLFail", - Drivers: drivers, - Ttl: time.Second, - Wait: time.Second * 2, - ExpectedNumberOfPeers: 0, - Assertion: assert.Equal, - }) - - testTTLAdvertise(ctx, t, &caseTTLAdvertise{ - Name: "ttl:1ms wait:500ms should success", - Key: "testTTLSuccess", - Drivers: drivers, - Ttl: time.Second * 2, - Wait: time.Second, - ExpectedNumberOfPeers: len(drivers), - Assertion: assert.Equal, - }) - - }) - } -} diff --git a/go/internal/tinder/driver_multi_test.go b/go/internal/tinder/driver_multi_test.go index 4ec9a80188..d585f764c6 100644 --- a/go/internal/tinder/driver_multi_test.go +++ b/go/internal/tinder/driver_multi_test.go @@ -5,6 +5,7 @@ import ( "testing" "time" + "berty.tech/berty/v2/go/internal/testutil" p2p_discovery "github.com/libp2p/go-libp2p-core/discovery" p2p_host "github.com/libp2p/go-libp2p-core/host" p2p_disc "github.com/libp2p/go-libp2p-discovery" @@ -38,6 +39,7 @@ func TestMultiDriver_Advertise(t *testing.T) { }, } + logger := testutil.Logger(t) ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -54,7 +56,7 @@ func TestMultiDriver_Advertise(t *testing.T) { peers := testingPeers(t, mn, tc.NMock) drivers := testingMockedDriverClients(t, ms, peers...) - md := NewMultiDriver(drivers...) + md := NewMultiDriver(logger, drivers...) const testKey = "testkey" @@ -96,6 +98,7 @@ func TestMultiDriver_FindPeers(t *testing.T) { }, } + logger := testutil.Logger(t) ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -112,7 +115,7 @@ func TestMultiDriver_FindPeers(t *testing.T) { peers := testingPeers(t, mn, tc.NMock) drivers := testingMockedDriverClients(t, ms, peers...) - md := NewMultiDriver(drivers...) + md := NewMultiDriver(logger, drivers...) const testKey = "testkey" _, err = md.Advertise(ctx, testKey, tc.Opts...) @@ -147,6 +150,7 @@ func TestMultiDriver_Unregister(t *testing.T) { }, } + logger := testutil.Logger(t) ctx, cancel := context.WithCancel(context.Background()) defer cancel() @@ -159,7 +163,7 @@ func TestMultiDriver_Unregister(t *testing.T) { peers := testingPeers(t, mn, tc.NMock) drivers := testingMockedDriverClients(t, ms, peers...) - md := NewMultiDriver(drivers...) + md := NewMultiDriver(logger, drivers...) const testKey = "testkey" _, err := md.Advertise(ctx, testKey, tc.Opts...) diff --git a/go/internal/tinder/driver_rdv_test.go b/go/internal/tinder/driver_rdv_test.go deleted file mode 100644 index 0447df4205..0000000000 --- a/go/internal/tinder/driver_rdv_test.go +++ /dev/null @@ -1,87 +0,0 @@ -package tinder - -import ( - "context" - "testing" - "time" - - libp2p_rp "github.com/libp2p/go-libp2p-rendezvous" - libp2p_rpdb "github.com/libp2p/go-libp2p-rendezvous/db/sqlite" - libp2p_mocknet "github.com/libp2p/go-libp2p/p2p/net/mock" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestTinderPoint(t *testing.T) { - cases := []struct { - Name string - NDrivers int - }{ - {"1 drivers", 1}, - {"10 drivers", 10}, - {"50 drivers", 100}, - } - - for _, tc := range cases { - t.Run(tc.Name, func(t *testing.T) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - mn := libp2p_mocknet.New(ctx) - - // gen root peer - rpeer, err := mn.GenPeer() - require.NoError(t, err) - rinfo := rpeer.Peerstore().PeerInfo(rpeer.ID()) - - db, err := libp2p_rpdb.OpenDB(ctx, ":memory:") - require.NoError(t, err) - defer db.Close() - - // create rdv service - _ = libp2p_rp.NewRendezvousService(rpeer, db) - - // create TinderPoint clients - drivers := make([]Driver, tc.NDrivers) - for i := range drivers { - peer, err := mn.GenPeer() - require.NoError(t, err) - peer.Connect(ctx, rinfo) - - drivers[i] = NewRendezvousDiscovery(peer, rpeer.ID()) - } - - // link all peers between them - err = mn.LinkAll() - require.NoError(t, err) - - testSimpleAdvertise(ctx, t, &caseSimpleAdvertise{ - Key: "simplekey", - Drivers: drivers, - }) - - // // ttl success test - testTTLAdvertise(ctx, t, &caseTTLAdvertise{ - Name: "ttl:2s wait:1s should success", - Key: "testTTLSuccess", - Drivers: drivers, - Ttl: time.Second * 2, - Wait: time.Second, - ExpectedNumberOfPeers: len(drivers), - Assertion: assert.Equal, - }) - - testTTLAdvertise(ctx, t, &caseTTLAdvertise{ - Name: "ttl:1s wait:2s should fail", - Key: "testTTLFail", - Drivers: drivers, - Ttl: time.Second, - Wait: time.Second * 2, - ExpectedNumberOfPeers: 0, - Assertion: assert.Equal, - }) - }) - } - -} diff --git a/go/pkg/bertyprotocol/orbitdb_utils_test.go b/go/pkg/bertyprotocol/orbitdb_utils_test.go index fafc677d63..7719824932 100644 --- a/go/pkg/bertyprotocol/orbitdb_utils_test.go +++ b/go/pkg/bertyprotocol/orbitdb_utils_test.go @@ -74,8 +74,15 @@ func createPeersWithGroup(ctx context.Context, t testing.TB, pathBase string, me t.Fatal(err) } + mn := mocknet.New(ctx) + rdvp, err := mn.GenPeer() + require.NoError(t, err, "failed to generate mocked peer") + + _, _ = ipfsutil.TestingRDVP(ctx, t, rdvp) + ipfsopts := ipfsutil.TestingAPIOpts{ - Mocknet: mocknet.New(ctx), + Mocknet: mn, + RDVPeer: rdvp.ID(), } deviceIndex := 0 @@ -117,7 +124,8 @@ func createPeersWithGroup(ctx context.Context, t testing.TB, pathBase string, me DevKS: devKS, } - cls = append(cls, func() { + // setup cleanup + cls[i] = func() { if ms := mp.GC.MetadataStore(); ms != nil { err := ms.Drop() assert.NoError(t, err) @@ -129,7 +137,7 @@ func createPeersWithGroup(ctx context.Context, t testing.TB, pathBase string, me } cleanupNode() - }) + } mockedPeers[deviceIndex] = mp deviceIndex++