From 0db1df74e6851bbe26d27dcda2d5129eec174b48 Mon Sep 17 00:00:00 2001 From: Gregory Newman-Smith Date: Tue, 19 Aug 2025 10:41:29 +0100 Subject: [PATCH 1/2] Wait for pending changes after doc updates --- rest/replicatortest/replicator_revtree_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rest/replicatortest/replicator_revtree_test.go b/rest/replicatortest/replicator_revtree_test.go index f3e9d582d6..fba8e5c79c 100644 --- a/rest/replicatortest/replicator_revtree_test.go +++ b/rest/replicatortest/replicator_revtree_test.go @@ -25,7 +25,7 @@ import ( func TestActiveReplicatorRevTreeReconciliation(t *testing.T) { base.RequireNumTestBuckets(t, 2) - base.SetUpTestLogging(t, base.LevelDebug, base.KeyHTTP, base.KeySync, base.KeyChanges, base.KeyCRUD, base.KeyReplicate) + base.SetUpTestLogging(t, base.LevelDebug, base.KeyHTTP, base.KeySync, base.KeyChanges, base.KeyCRUD, base.KeyReplicate, base.KeyHTTPResp) testCases := []struct { name string @@ -63,9 +63,11 @@ func TestActiveReplicatorRevTreeReconciliation(t *testing.T) { if tc.replicationType == db.ActiveReplicatorTypePull { version = rt2.PutDocDirectly(docID, rest.JsonToMap(t, `{"source":"rt2","channels":["alice"]}`)) docHistoryList = append(docHistoryList, version.RevTreeID) + rt2.WaitForPendingChanges() } else { version = rt1.PutDocDirectly(docID, rest.JsonToMap(t, `{"source":"rt1","channels":["alice"]}`)) docHistoryList = append(docHistoryList, version.RevTreeID) + rt1.WaitForPendingChanges() } ar, err := db.NewActiveReplicator(ctx1, &db.ActiveReplicatorConfig{ @@ -111,11 +113,13 @@ func TestActiveReplicatorRevTreeReconciliation(t *testing.T) { version = rt2.UpdateDocDirectly(docID, version, rest.JsonToMap(t, `{"source":"rt2","channels":["alice"], "version": "%d"}`)) docHistoryList = append(docHistoryList, version.RevTreeID) } + rt2.WaitForPendingChanges() } else { for i := 0; i < 10; i++ { version = rt1.UpdateDocDirectly(docID, version, rest.JsonToMap(t, `{"source":"rt1","channels":["alice"], "version": "%d"}`)) docHistoryList = append(docHistoryList, version.RevTreeID) } + rt1.WaitForPendingChanges() } // start again for new revisions @@ -201,8 +205,10 @@ func TestActiveReplicatorRevtreeLargeDiffInSize(t *testing.T) { var version rest.DocVersion if tc.replicationType == db.ActiveReplicatorTypePull { version = rt2.PutDocDirectly(docID, rest.JsonToMap(t, `{"source":"rt1","channels":["alice"]}`)) + rt2.WaitForPendingChanges() } else { version = rt1.PutDocDirectly(docID, rest.JsonToMap(t, `{"source":"rt2","channels":["alice"]}`)) + rt1.WaitForPendingChanges() } ar, err := db.NewActiveReplicator(ctx1, &db.ActiveReplicatorConfig{ @@ -250,10 +256,12 @@ func TestActiveReplicatorRevtreeLargeDiffInSize(t *testing.T) { for i := 0; i < 200; i++ { version = rt2.UpdateDocDirectly(docID, version, rest.JsonToMap(t, fmt.Sprintf(`{"source":"rt2","channels":["alice"], "version": "%d"}`, i))) } + rt2.WaitForPendingChanges() } else { for i := 0; i < 200; i++ { version = rt1.UpdateDocDirectly(docID, version, rest.JsonToMap(t, `{"source":"rt1","channels":["alice"], "version": "%d"}`)) } + rt1.WaitForPendingChanges() } // start replicator again for new revisions From f262ba358edd858b9e88fb14af0f14b500d5a4b3 Mon Sep 17 00:00:00 2001 From: Gregory Newman-Smith Date: Tue, 19 Aug 2025 10:47:08 +0100 Subject: [PATCH 2/2] fix formatting --- rest/replicatortest/replicator_revtree_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rest/replicatortest/replicator_revtree_test.go b/rest/replicatortest/replicator_revtree_test.go index fba8e5c79c..f0235283e6 100644 --- a/rest/replicatortest/replicator_revtree_test.go +++ b/rest/replicatortest/replicator_revtree_test.go @@ -110,13 +110,13 @@ func TestActiveReplicatorRevTreeReconciliation(t *testing.T) { if tc.replicationType == db.ActiveReplicatorTypePull { for i := 0; i < 10; i++ { - version = rt2.UpdateDocDirectly(docID, version, rest.JsonToMap(t, `{"source":"rt2","channels":["alice"], "version": "%d"}`)) + version = rt2.UpdateDocDirectly(docID, version, rest.JsonToMap(t, fmt.Sprintf(`{"source":"rt2","channels":["alice"], "version": "%d"}`, i))) docHistoryList = append(docHistoryList, version.RevTreeID) } rt2.WaitForPendingChanges() } else { for i := 0; i < 10; i++ { - version = rt1.UpdateDocDirectly(docID, version, rest.JsonToMap(t, `{"source":"rt1","channels":["alice"], "version": "%d"}`)) + version = rt1.UpdateDocDirectly(docID, version, rest.JsonToMap(t, fmt.Sprintf(`{"source":"rt1","channels":["alice"], "version": "%d"}`, i))) docHistoryList = append(docHistoryList, version.RevTreeID) } rt1.WaitForPendingChanges() @@ -259,7 +259,7 @@ func TestActiveReplicatorRevtreeLargeDiffInSize(t *testing.T) { rt2.WaitForPendingChanges() } else { for i := 0; i < 200; i++ { - version = rt1.UpdateDocDirectly(docID, version, rest.JsonToMap(t, `{"source":"rt1","channels":["alice"], "version": "%d"}`)) + version = rt1.UpdateDocDirectly(docID, version, rest.JsonToMap(t, fmt.Sprintf(`{"source":"rt1","channels":["alice"], "version": "%d"}`, i))) } rt1.WaitForPendingChanges() }