fork of https://github.com/sourcegraph/zoekt
0

Configure Feed

Select the types of activity you want to include in your feed.

1package zoekt 2 3import ( 4 "encoding/json" 5 "os" 6 "path/filepath" 7 "testing" 8) 9 10func TestSetTombstone(t *testing.T) { 11 mockRepos = mkRepos("r1", "r2", "r3") 12 13 readMeta := func(shard string) []byte { 14 blob, err := os.ReadFile(shard + ".meta") 15 if err != nil && !os.IsNotExist(err) { 16 t.Fatal(err) 17 } 18 return blob 19 } 20 21 dir := t.TempDir() 22 ghostShard := filepath.Join(dir, "test.zoekt") 23 24 isAlive := func(alive []bool) { 25 t.Helper() 26 blob := readMeta(ghostShard) 27 ghostRepos := []*Repository{} 28 if err := json.Unmarshal(blob, &ghostRepos); err != nil { 29 t.Fatal(err) 30 } 31 for i, repo := range ghostRepos { 32 if repo.Tombstone == alive[i] { 33 t.Fatalf("r%d: want %t, got %t\n", i+1, alive[i], repo.Tombstone) 34 } 35 } 36 } 37 38 if err := SetTombstone(ghostShard, 2); err != nil { 39 t.Fatal(err) 40 } 41 isAlive([]bool{true, false, true}) 42 43 if err := SetTombstone(ghostShard, 1); err != nil { 44 t.Fatal(err) 45 } 46 isAlive([]bool{false, false, true}) 47 48 if err := UnsetTombstone(ghostShard, 2); err != nil { 49 t.Fatal(err) 50 } 51 isAlive([]bool{false, true, true}) 52} 53 54func mkRepos(repoNames ...string) []*Repository { 55 ret := make([]*Repository, 0, len(repoNames)) 56 for i, n := range repoNames { 57 ret = append(ret, &Repository{ID: uint32(i + 1), Name: n}) 58 } 59 return ret 60}