From d63187cc8aff45f270b438318fc66ea3535a79a5 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Mon, 5 Aug 2024 17:46:23 +0200 Subject: [PATCH] Fix diffsyncer test --- commonspace/headsync/diffsyncer.go | 2 +- commonspace/headsync/diffsyncer_test.go | 6 +-- .../acl/syncacl/mock_syncacl/mock_syncacl.go | 39 ++++++++++++++++--- commonspace/object/acl/syncacl/syncacl.go | 2 +- .../synctree/mock_synctree/mock_synctree.go | 39 ++++++++++++++++--- commonspace/object/tree/synctree/synctree.go | 2 +- .../mock_treesyncer/mock_treesyncer.go | 3 +- 7 files changed, 76 insertions(+), 17 deletions(-) diff --git a/commonspace/headsync/diffsyncer.go b/commonspace/headsync/diffsyncer.go index d69c94c5..02ec2554 100644 --- a/commonspace/headsync/diffsyncer.go +++ b/commonspace/headsync/diffsyncer.go @@ -100,7 +100,7 @@ func (d *diffSyncer) Sync(ctx context.Context) error { } d.log.DebugCtx(ctx, "start diffsync", zap.Strings("peerIds", peerIds)) for _, p := range peers { - if err = d.syncWithPeer(p.Context(), p); err != nil { + if err = d.syncWithPeer(peer.CtxWithPeerAddr(ctx, p.Id()), p); err != nil { d.log.ErrorCtx(ctx, "can't sync with peer", zap.String("peer", p.Id()), zap.Error(err)) } } diff --git a/commonspace/headsync/diffsyncer_test.go b/commonspace/headsync/diffsyncer_test.go index f7e290ac..007507a4 100644 --- a/commonspace/headsync/diffsyncer_test.go +++ b/commonspace/headsync/diffsyncer_test.go @@ -131,7 +131,7 @@ func TestDiffSyncer(t *testing.T) { fx.deletionStateMock.EXPECT().Filter([]string{"new"}).Return([]string{"new"}).Times(1) fx.deletionStateMock.EXPECT().Filter([]string{"changed"}).Return([]string{"changed"}).Times(1) fx.deletionStateMock.EXPECT().Filter(nil).Return(nil).Times(1) - fx.treeSyncerMock.EXPECT().SyncAll(gomock.Any(), mPeer.Id(), []string{"changed"}, []string{"new"}).Return(nil) + fx.treeSyncerMock.EXPECT().SyncAll(gomock.Any(), mPeer, []string{"changed"}, []string{"new"}).Return(nil) require.NoError(t, fx.diffSyncer.Sync(ctx)) }) @@ -154,8 +154,8 @@ func TestDiffSyncer(t *testing.T) { fx.deletionStateMock.EXPECT().Filter([]string{"new"}).Return([]string{"new"}).Times(1) fx.deletionStateMock.EXPECT().Filter([]string{"changed"}).Return([]string{"changed", "aclId"}).Times(1) fx.deletionStateMock.EXPECT().Filter(nil).Return(nil).Times(1) - fx.treeSyncerMock.EXPECT().SyncAll(gomock.Any(), mPeer.Id(), []string{"changed"}, []string{"new"}).Return(nil) - fx.aclMock.EXPECT().SyncWithPeer(gomock.Any(), mPeer.Id()).Return(nil) + fx.treeSyncerMock.EXPECT().SyncAll(gomock.Any(), mPeer, []string{"changed"}, []string{"new"}).Return(nil) + fx.aclMock.EXPECT().SyncWithPeer(gomock.Any(), mPeer).Return(nil) require.NoError(t, fx.diffSyncer.Sync(ctx)) }) diff --git a/commonspace/object/acl/syncacl/mock_syncacl/mock_syncacl.go b/commonspace/object/acl/syncacl/mock_syncacl/mock_syncacl.go index c9f88108..b9c42ea8 100644 --- a/commonspace/object/acl/syncacl/mock_syncacl/mock_syncacl.go +++ b/commonspace/object/acl/syncacl/mock_syncacl/mock_syncacl.go @@ -18,6 +18,7 @@ import ( headupdater "github.com/anyproto/any-sync/commonspace/object/acl/syncacl/headupdater" spacesyncproto "github.com/anyproto/any-sync/commonspace/spacesyncproto" consensusproto "github.com/anyproto/any-sync/consensus/consensusproto" + peer "github.com/anyproto/any-sync/net/peer" crypto "github.com/anyproto/any-sync/util/crypto" gomock "go.uber.org/mock/gomock" ) @@ -132,17 +133,17 @@ func (mr *MockSyncAclMockRecorder) GetIndex(arg0 any) *gomock.Call { } // HandleMessage mocks base method. -func (m *MockSyncAcl) HandleMessage(arg0 context.Context, arg1 string, arg2 *spacesyncproto.ObjectSyncMessage) error { +func (m *MockSyncAcl) HandleMessage(arg0 context.Context, arg1 string, arg2 uint32, arg3 *spacesyncproto.ObjectSyncMessage) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "HandleMessage", arg0, arg1, arg2) + ret := m.ctrl.Call(m, "HandleMessage", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(error) return ret0 } // HandleMessage indicates an expected call of HandleMessage. -func (mr *MockSyncAclMockRecorder) HandleMessage(arg0, arg1, arg2 any) *gomock.Call { +func (mr *MockSyncAclMockRecorder) HandleMessage(arg0, arg1, arg2, arg3 any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleMessage", reflect.TypeOf((*MockSyncAcl)(nil).HandleMessage), arg0, arg1, arg2) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleMessage", reflect.TypeOf((*MockSyncAcl)(nil).HandleMessage), arg0, arg1, arg2, arg3) } // HandleRequest mocks base method. @@ -430,7 +431,7 @@ func (mr *MockSyncAclMockRecorder) SetHeadUpdater(arg0 any) *gomock.Call { } // SyncWithPeer mocks base method. -func (m *MockSyncAcl) SyncWithPeer(arg0 context.Context, arg1 string) error { +func (m *MockSyncAcl) SyncWithPeer(arg0 context.Context, arg1 peer.Peer) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "SyncWithPeer", arg0, arg1) ret0, _ := ret[0].(error) @@ -504,6 +505,20 @@ func (mr *MockSyncClientMockRecorder) Broadcast(arg0 any) *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Broadcast", reflect.TypeOf((*MockSyncClient)(nil).Broadcast), arg0) } +// CreateEmptyFullSyncRequest mocks base method. +func (m *MockSyncClient) CreateEmptyFullSyncRequest(arg0 list.AclList) *consensusproto.LogSyncMessage { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateEmptyFullSyncRequest", arg0) + ret0, _ := ret[0].(*consensusproto.LogSyncMessage) + return ret0 +} + +// CreateEmptyFullSyncRequest indicates an expected call of CreateEmptyFullSyncRequest. +func (mr *MockSyncClientMockRecorder) CreateEmptyFullSyncRequest(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateEmptyFullSyncRequest", reflect.TypeOf((*MockSyncClient)(nil).CreateEmptyFullSyncRequest), arg0) +} + // CreateFullSyncRequest mocks base method. func (m *MockSyncClient) CreateFullSyncRequest(arg0 list.AclList, arg1 string) (*consensusproto.LogSyncMessage, error) { m.ctrl.T.Helper() @@ -614,6 +629,20 @@ func (m *MockRequestFactory) EXPECT() *MockRequestFactoryMockRecorder { return m.recorder } +// CreateEmptyFullSyncRequest mocks base method. +func (m *MockRequestFactory) CreateEmptyFullSyncRequest(arg0 list.AclList) *consensusproto.LogSyncMessage { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateEmptyFullSyncRequest", arg0) + ret0, _ := ret[0].(*consensusproto.LogSyncMessage) + return ret0 +} + +// CreateEmptyFullSyncRequest indicates an expected call of CreateEmptyFullSyncRequest. +func (mr *MockRequestFactoryMockRecorder) CreateEmptyFullSyncRequest(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateEmptyFullSyncRequest", reflect.TypeOf((*MockRequestFactory)(nil).CreateEmptyFullSyncRequest), arg0) +} + // CreateFullSyncRequest mocks base method. func (m *MockRequestFactory) CreateFullSyncRequest(arg0 list.AclList, arg1 string) (*consensusproto.LogSyncMessage, error) { m.ctrl.T.Helper() diff --git a/commonspace/object/acl/syncacl/syncacl.go b/commonspace/object/acl/syncacl/syncacl.go index aba928ac..d6047c0e 100644 --- a/commonspace/object/acl/syncacl/syncacl.go +++ b/commonspace/object/acl/syncacl/syncacl.go @@ -141,7 +141,7 @@ func (s *syncAcl) AddRawRecords(rawRecords []*consensusproto.RawRecordWithId) (e func (s *syncAcl) SyncWithPeer(ctx context.Context, p peer.Peer) (err error) { s.Lock() defer s.Unlock() - protoVersion, err := peer.CtxProtoVersion(ctx) + protoVersion, err := peer.CtxProtoVersion(p.Context()) // this works with old protocol if err != nil || protoVersion <= secureservice.ProtoVersion { headUpdate := s.syncClient.CreateHeadUpdate(s, nil) diff --git a/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go b/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go index 25c2ee02..c54f69d4 100644 --- a/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go +++ b/commonspace/object/tree/synctree/mock_synctree/mock_synctree.go @@ -20,6 +20,7 @@ import ( treechangeproto "github.com/anyproto/any-sync/commonspace/object/tree/treechangeproto" treestorage "github.com/anyproto/any-sync/commonspace/object/tree/treestorage" spacesyncproto "github.com/anyproto/any-sync/commonspace/spacesyncproto" + peer "github.com/anyproto/any-sync/net/peer" gomock "go.uber.org/mock/gomock" ) @@ -193,17 +194,17 @@ func (mr *MockSyncTreeMockRecorder) GetChange(arg0 any) *gomock.Call { } // HandleMessage mocks base method. -func (m *MockSyncTree) HandleMessage(arg0 context.Context, arg1 string, arg2 *spacesyncproto.ObjectSyncMessage) error { +func (m *MockSyncTree) HandleMessage(arg0 context.Context, arg1 string, arg2 uint32, arg3 *spacesyncproto.ObjectSyncMessage) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "HandleMessage", arg0, arg1, arg2) + ret := m.ctrl.Call(m, "HandleMessage", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(error) return ret0 } // HandleMessage indicates an expected call of HandleMessage. -func (mr *MockSyncTreeMockRecorder) HandleMessage(arg0, arg1, arg2 any) *gomock.Call { +func (mr *MockSyncTreeMockRecorder) HandleMessage(arg0, arg1, arg2, arg3 any) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleMessage", reflect.TypeOf((*MockSyncTree)(nil).HandleMessage), arg0, arg1, arg2) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HandleMessage", reflect.TypeOf((*MockSyncTree)(nil).HandleMessage), arg0, arg1, arg2, arg3) } // HandleRequest mocks base method. @@ -419,7 +420,7 @@ func (mr *MockSyncTreeMockRecorder) Storage() *gomock.Call { } // SyncWithPeer mocks base method. -func (m *MockSyncTree) SyncWithPeer(arg0 context.Context, arg1 string) error { +func (m *MockSyncTree) SyncWithPeer(arg0 context.Context, arg1 peer.Peer) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "SyncWithPeer", arg0, arg1) ret0, _ := ret[0].(error) @@ -637,6 +638,20 @@ func (mr *MockSyncClientMockRecorder) Broadcast(arg0 any) *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Broadcast", reflect.TypeOf((*MockSyncClient)(nil).Broadcast), arg0) } +// CreateEmptyFullSyncRequest mocks base method. +func (m *MockSyncClient) CreateEmptyFullSyncRequest(arg0 objecttree.ObjectTree) *treechangeproto.TreeSyncMessage { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateEmptyFullSyncRequest", arg0) + ret0, _ := ret[0].(*treechangeproto.TreeSyncMessage) + return ret0 +} + +// CreateEmptyFullSyncRequest indicates an expected call of CreateEmptyFullSyncRequest. +func (mr *MockSyncClientMockRecorder) CreateEmptyFullSyncRequest(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateEmptyFullSyncRequest", reflect.TypeOf((*MockSyncClient)(nil).CreateEmptyFullSyncRequest), arg0) +} + // CreateFullSyncRequest mocks base method. func (m *MockSyncClient) CreateFullSyncRequest(arg0 objecttree.ObjectTree, arg1, arg2 []string) (*treechangeproto.TreeSyncMessage, error) { m.ctrl.T.Helper() @@ -761,6 +776,20 @@ func (m *MockRequestFactory) EXPECT() *MockRequestFactoryMockRecorder { return m.recorder } +// CreateEmptyFullSyncRequest mocks base method. +func (m *MockRequestFactory) CreateEmptyFullSyncRequest(arg0 objecttree.ObjectTree) *treechangeproto.TreeSyncMessage { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateEmptyFullSyncRequest", arg0) + ret0, _ := ret[0].(*treechangeproto.TreeSyncMessage) + return ret0 +} + +// CreateEmptyFullSyncRequest indicates an expected call of CreateEmptyFullSyncRequest. +func (mr *MockRequestFactoryMockRecorder) CreateEmptyFullSyncRequest(arg0 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateEmptyFullSyncRequest", reflect.TypeOf((*MockRequestFactory)(nil).CreateEmptyFullSyncRequest), arg0) +} + // CreateFullSyncRequest mocks base method. func (m *MockRequestFactory) CreateFullSyncRequest(arg0 objecttree.ObjectTree, arg1, arg2 []string) (*treechangeproto.TreeSyncMessage, error) { m.ctrl.T.Helper() diff --git a/commonspace/object/tree/synctree/synctree.go b/commonspace/object/tree/synctree/synctree.go index e6eefaa5..47cce93c 100644 --- a/commonspace/object/tree/synctree/synctree.go +++ b/commonspace/object/tree/synctree/synctree.go @@ -289,7 +289,7 @@ func (s *syncTree) checkAlive() (err error) { func (s *syncTree) SyncWithPeer(ctx context.Context, p peer.Peer) (err error) { s.Lock() defer s.Unlock() - protoVersion, err := peer.CtxProtoVersion(ctx) + protoVersion, err := peer.CtxProtoVersion(p.Context()) // this works with old protocol if err != nil || protoVersion <= secureservice.ProtoVersion { headUpdate := s.syncClient.CreateHeadUpdate(s, nil) diff --git a/commonspace/object/treesyncer/mock_treesyncer/mock_treesyncer.go b/commonspace/object/treesyncer/mock_treesyncer/mock_treesyncer.go index fb68da8e..0f688efd 100644 --- a/commonspace/object/treesyncer/mock_treesyncer/mock_treesyncer.go +++ b/commonspace/object/treesyncer/mock_treesyncer/mock_treesyncer.go @@ -14,6 +14,7 @@ import ( reflect "reflect" app "github.com/anyproto/any-sync/app" + peer "github.com/anyproto/any-sync/net/peer" gomock "go.uber.org/mock/gomock" ) @@ -135,7 +136,7 @@ func (mr *MockTreeSyncerMockRecorder) StopSync() *gomock.Call { } // SyncAll mocks base method. -func (m *MockTreeSyncer) SyncAll(arg0 context.Context, arg1 string, arg2, arg3 []string) error { +func (m *MockTreeSyncer) SyncAll(arg0 context.Context, arg1 peer.Peer, arg2, arg3 []string) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "SyncAll", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(error)