Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( SortPackages = cmpopts.SortSlices(func(a, b *claircore.Package) bool { return a.Name < b.Name }) IgnorePackageDB = cmpopts.IgnoreFields(claircore.Package{}, ".PackageDB") )
Does what it says on the tin.
View Source
var EpochCompare = cmp.FilterPath( func(p cmp.Path) bool { return p.Last().String() == ".Version" }, cmp.Comparer(func(a, b string) bool { evr, vr := a, b if len(b) > len(a) { evr = b vr = a } return strings.Contains(evr, vr) }), )
RPM Manifest doesn't have package epoch information. This checks if the VR string is contained in the EVR string.
View Source
var HintCompare = cmp.FilterPath( func(p cmp.Path) bool { return p.Last().String() == ".RepositoryHint" }, cmp.Comparer(func(a, b string) bool { am, bm := make(map[string]string), make(map[string]string) for _, s := range strings.Split(a, "|") { if s == "" { continue } k, v, ok := strings.Cut(s, ":") if !ok { panic("odd format: " + s) } am[k] = v } delete(am, "hash") for _, s := range strings.Split(b, "|") { if s == "" { continue } k, v, ok := strings.Cut(s, ":") if !ok { panic("odd format: " + s) } bm[k] = v } delete(bm, "hash") return cmp.Equal(am, bm) }), )
RPM Manifest doesn't have checksum information. It does have keyid information, so cook up a comparison function that understands the rpm package's packed format.
View Source
var ModuleCompare = cmp.FilterPath( func(p cmp.Path) bool { return p.Last().String() == ".Module" }, cmp.FilterValues( func(a, b string) bool { return a != "" && b == "" || a == "" && b != "" }, cmp.Ignore(), ), )
ModuleCompare allows one of the reported modules to be the empty string. This is needed because of STONEBLD-1472.
View Source
var Options = cmp.Options{ HintCompare, EpochCompare, IgnorePackageDB, SortPackages, ModuleCompare, }
Functions ¶
Types ¶
type Manifest ¶
type Manifest struct {
RPM []ManifestRPM `json:"rpms"`
}
Click to show internal directories.
Click to hide internal directories.