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

Configure Feed

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

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