MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestDeltaSyncWhenFromRevIsLegacyRevTreeID

Function TestDeltaSyncWhenFromRevIsLegacyRevTreeID

db/database_test.go:1033–1066  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1031}
1032
1033func TestDeltaSyncWhenFromRevIsLegacyRevTreeID(t *testing.T) {
1034 base.SetUpTestLogging(t, base.LevelDebug, base.KeyAll)
1035
1036 if !base.IsEnterpriseEdition() {
1037 t.Skip("Delta sync only supported in EE")
1038 }
1039
1040 db, ctx := SetupTestDBWithOptions(t, DatabaseContextOptions{
1041 DeltaSyncOptions: DeltaSyncOptions{
1042 Enabled: true,
1043 RevMaxAgeSeconds: 300,
1044 },
1045 StoreLegacyRevTreeData: base.Ptr(true),
1046 })
1047
1048 defer db.Close(ctx)
1049 collection, ctx := GetSingleDatabaseCollectionWithUser(ctx, t, db)
1050 require.NoError(t, db.DbStats.InitDeltaSyncStats())
1051
1052 rev1, _, err := collection.Put(ctx, "doc1", Body{"foo": "bar", "bar": "buzz", "quux": "quax"})
1053 require.NoError(t, err, "Error creating doc1")
1054 rev2, _, err := collection.Put(ctx, "doc1", Body{"foo": "bar", "quux": "fuzz", BodyRev: rev1})
1055 require.NoError(t, err, "Error updating doc1")
1056
1057 // force retrieval from backing store
1058 db.FlushRevisionCacheForTest()
1059
1060 // get delta using legacy RevTree IDs - this should force a lookup for CV1 via the pointer backup revision doc
1061 delta, _, err := collection.GetDelta(ctx, "doc1", rev1, rev2)
1062 require.NoErrorf(t, err, "Error getting delta for doc %q from rev %q to %q", "doc1", rev1, rev2)
1063 require.NotNil(t, delta)
1064 assert.Equal(t, rev2, delta.ToRevID)
1065 assert.Equal(t, []byte(`{"bar":[],"quux":"fuzz"}`), delta.DeltaBytes)
1066}
1067
1068func TestFetchCurrentRevAfterFetchBackupRevByCV(t *testing.T) {
1069 base.SetUpTestLogging(t, base.LevelDebug, base.KeyAll)

Callers

nothing calls this directly

Calls 11

SetUpTestLoggingFunction · 0.92
IsEnterpriseEditionFunction · 0.92
PtrFunction · 0.92
SetupTestDBWithOptionsFunction · 0.85
InitDeltaSyncStatsMethod · 0.80
GetDeltaMethod · 0.80
CloseMethod · 0.65
PutMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected