mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 16:33:21 +01:00
* fix: remove second call to finalize as the task handles it Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com> * test: add test to protect against dupe relationships in final SBOM Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com> --------- Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>
27 lines
741 B
Go
27 lines
741 B
Go
package integration
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/scylladb/go-set/strset"
|
|
|
|
"github.com/anchore/syft/syft/source"
|
|
)
|
|
|
|
func TestRelationshipsUnique(t *testing.T) {
|
|
// This test is to ensure that the relationships are deduplicated in the final SBOM.
|
|
// It is not a test of the relationships themselves.
|
|
// This test is a regression test for #syft/2509
|
|
sbom, _ := catalogFixtureImage(t, "image-pkg-coverage", source.SquashedScope)
|
|
observedRelationships := strset.New()
|
|
|
|
for _, rel := range sbom.Relationships {
|
|
unique := fmt.Sprintf("%s:%s:%s", rel.From.ID(), rel.To.ID(), rel.Type)
|
|
if observedRelationships.Has(unique) {
|
|
t.Errorf("duplicate relationship found: %s", unique)
|
|
}
|
|
observedRelationships.Add(unique)
|
|
}
|
|
}
|