...
1
16
17 package cov
18
19 import (
20 "golang.org/x/tools/cover"
21 )
22
23
24
25
26 func AggregateProfiles(profiles [][]*cover.Profile) ([]*cover.Profile, error) {
27 setProfiles := make([][]*cover.Profile, 0, len(profiles))
28 for _, p := range profiles {
29 c := countToBoolean(p)
30 setProfiles = append(setProfiles, c)
31 }
32 aggregateProfiles, err := MergeMultipleProfiles(setProfiles)
33 if err != nil {
34 return nil, err
35 }
36 return aggregateProfiles, nil
37 }
38
39
40
41 func countToBoolean(profile []*cover.Profile) []*cover.Profile {
42 setProfile := make([]*cover.Profile, 0, len(profile))
43 for _, p := range profile {
44 pc := deepCopyProfile(*p)
45 for i := range pc.Blocks {
46 if pc.Blocks[i].Count > 0 {
47 pc.Blocks[i].Count = 1
48 }
49 }
50 setProfile = append(setProfile, &pc)
51 }
52 return setProfile
53 }
54
View as plain text