func testKvChangeIndex(bucketname string) (*kvChangeIndex, base.Bucket) { cacheBucketSpec := base.BucketSpec{ Server: kTestURL, BucketName: bucketname} index := &kvChangeIndex{} changeIndexOptions := &ChangeIndexOptions{ Spec: cacheBucketSpec, Writer: true, } err := index.Init(nil, SequenceID{}, nil, &CacheOptions{}, changeIndexOptions) if err != nil { log.Fatal("Couldn't connect to index bucket") } base.SeedTestPartitionMap(index.reader.indexReadBucket, 64) return index, index.reader.indexReadBucket }
func setupTestDBForChangeIndex(t *testing.T) *Database { var vbEnabledBucket base.Bucket if kTestURL == "walrus:" { leakyBucketConfig := base.LeakyBucketConfig{ TapFeedVbuckets: true, } vbEnabledBucket = testLeakyBucket(leakyBucketConfig) } else { vbEnabledBucket = testBucket() } indexBucketSpec := base.BucketSpec{ Server: kTestURL, BucketName: "test_indexBucket"} indexBucket, err := ConnectToBucket(indexBucketSpec, nil) if err != nil { log.Fatal("Couldn't connect to index bucket") } dbcOptions := DatabaseContextOptions{ IndexOptions: &ChangeIndexOptions{ Spec: indexBucketSpec, Writer: true, }, SequenceHashOptions: &SequenceHashOptions{ Bucket: indexBucket, }, } context, err := NewDatabaseContext("db", vbEnabledBucket, false, dbcOptions) assertNoError(t, err, "Couldn't create context for database 'db'") db, err := CreateDatabase(context) assertNoError(t, err, "Couldn't create database 'db'") base.SeedTestPartitionMap(context.GetIndexBucket(), 64) return db }
func initIndexTester(useBucketIndex bool, syncFn string) indexTester { it := indexTester{} it.syncFn = syncFn it._sc = NewServerContext(&ServerConfig{ Facebook: &FacebookConfig{}, Persona: &PersonaConfig{}, }) var syncFnPtr *string if len(it.syncFn) > 0 { syncFnPtr = &it.syncFn } serverName := "walrus:" bucketName := "sg_bucket" feedType := "tap" if useBucketIndex { feedType = "dcp" } dbConfig := &DbConfig{ BucketConfig: BucketConfig{ Server: &serverName, Bucket: &bucketName}, Name: "db", Sync: syncFnPtr, FeedType: feedType, } if useBucketIndex { indexBucketName := "sg_index_bucket" channelIndexConfig := &ChannelIndexConfig{ BucketConfig: BucketConfig{ Server: &serverName, Bucket: &indexBucketName, }, IndexWriter: true, } dbConfig.ChannelIndex = channelIndexConfig } dbContext, err := it._sc.AddDatabaseFromConfig(dbConfig) if useBucketIndex { err := base.SeedTestPartitionMap(dbContext.GetIndexBucket(), 64) if err != nil { panic(fmt.Sprintf("Error from seed partition map: %v", err)) } } if err != nil { panic(fmt.Sprintf("Error from AddDatabaseFromConfig: %v", err)) } it._bucket = it._sc.Database("db").Bucket if useBucketIndex { it._indexBucket = it._sc.Database("db").GetIndexBucket() } return it }