MCPcopy
hub / github.com/perkeep/perkeep / testLargeDir

Function testLargeDir

pkg/schema/schema_test.go:727–787  ·  view source on GitHub ↗
(t *testing.T, members []blob.Ref)

Source from the content-addressed store, hash-verified

725}
726
727func testLargeDir(t *testing.T, members []blob.Ref) {
728 ssb := NewStaticSet()
729 subsets := ssb.SetStaticSetMembers(members)
730
731 refToBlob := make(map[string]*Blob, len(subsets))
732 for _, v := range subsets {
733 refToBlob[v.BlobRef().String()] = v
734 }
735
736 var findMember func(blob.Ref, []blob.Ref) bool
737 findMember = func(member blob.Ref, entries []blob.Ref) bool {
738 for _, v := range entries {
739 if member == v {
740 return true
741 }
742 subsetBlob, ok := refToBlob[v.String()]
743 if !ok {
744 continue
745 }
746 children := subsetBlob.StaticSetMembers()
747 if len(children) == 0 {
748 children = subsetBlob.StaticSetMergeSets()
749 }
750 if findMember(member, children) {
751 return true
752 }
753 }
754 return false
755 }
756
757 var membersOrSubsets []string
758 if ssb.m["members"] != nil && len(ssb.m["members"].([]string)) > 0 {
759 membersOrSubsets = ssb.m["members"].([]string)
760 } else {
761 membersOrSubsets = ssb.m["mergeSets"].([]string)
762 }
763 for _, mb := range members {
764 var found bool
765 for _, v := range membersOrSubsets {
766 if mb.String() == v {
767 found = true
768 break
769 }
770 subsetBlob, ok := refToBlob[v]
771 if !ok {
772 continue
773 }
774 children := subsetBlob.StaticSetMembers()
775 if len(children) == 0 {
776 children = subsetBlob.StaticSetMergeSets()
777 }
778 if findMember(mb, children) {
779 found = true
780 break
781 }
782 }
783 if !found {
784 t.Errorf("member %q not found while following the subset schemas", mb)

Callers 1

TestLargeDirsFunction · 0.85

Calls 6

NewStaticSetFunction · 0.85
SetStaticSetMembersMethod · 0.80
StaticSetMembersMethod · 0.80
StaticSetMergeSetsMethod · 0.80
BlobRefMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected