mirror of
https://github.com/anchore/syft
synced 2024-11-13 23:57:07 +00:00
048df17e3d
* use pkg values in relationship fields Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * add linter rule for using values in relationships Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * use new cmptest package for comparing relationships Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * create cmptest for common cmp.Diff options in test Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * condense matches for relationship ruleguard Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * remove relationship type from rules Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * restore build tag Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * suggest using values Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * nil check pkgs Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> --------- Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
37 lines
734 B
Go
37 lines
734 B
Go
package cmptest
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
)
|
|
|
|
// DiffReporter is a simple custom reporter that only records differences detected during comparison.
|
|
type DiffReporter struct {
|
|
path cmp.Path
|
|
diffs []string
|
|
}
|
|
|
|
func NewDiffReporter() DiffReporter {
|
|
return DiffReporter{}
|
|
}
|
|
|
|
func (r *DiffReporter) PushStep(ps cmp.PathStep) {
|
|
r.path = append(r.path, ps)
|
|
}
|
|
|
|
func (r *DiffReporter) Report(rs cmp.Result) {
|
|
if !rs.Equal() {
|
|
vx, vy := r.path.Last().Values()
|
|
r.diffs = append(r.diffs, fmt.Sprintf("%#v:\n\t-: %+v\n\t+: %+v\n", r.path, vx, vy))
|
|
}
|
|
}
|
|
|
|
func (r *DiffReporter) PopStep() {
|
|
r.path = r.path[:len(r.path)-1]
|
|
}
|
|
|
|
func (r *DiffReporter) String() string {
|
|
return strings.Join(r.diffs, "\n")
|
|
}
|