From b08a11e46d1e13ec5ab28ef324f774299d830df3 Mon Sep 17 00:00:00 2001 From: Alex Goodman Date: Sun, 31 Oct 2021 11:05:33 -0400 Subject: [PATCH] fix more tests Signed-off-by: Alex Goodman --- syft/encode_decode_test.go | 2 +- syft/pkg/cataloger/apkdb/parse_apk_db_test.go | 2 +- syft/pkg/cataloger/deb/cataloger.go | 6 ++--- syft/pkg/cataloger/deb/cataloger_test.go | 2 +- syft/pkg/cataloger/deb/parse_dpkg_status.go | 7 +++--- syft/pkg/cataloger/golang/parse_go_bin.go | 1 + .../pkg/cataloger/golang/parse_go_mod_test.go | 2 +- .../pkg/cataloger/java/archive_parser_test.go | 4 ++-- .../javascript/parse_package_json_test.go | 4 ++-- .../javascript/parse_package_lock_test.go | 2 +- .../javascript/parse_yarn_lock_test.go | 2 +- .../python/package_cataloger_test.go | 4 ++-- .../python/parse_pipfile_lock_test.go | 2 +- .../python/parse_poetry_lock_test.go | 2 +- .../python/parse_requirements_test.go | 2 +- syft/pkg/cataloger/python/parse_setup_test.go | 2 +- .../cataloger/ruby/parse_gemfile_lock_test.go | 2 +- syft/pkg/cataloger/ruby/parse_gemspec_test.go | 2 +- .../cataloger/rust/parse_cargo_lock_test.go | 2 +- .../ownership_by_files_relationship_test.go | 12 +++++++--- test/cli/trait_assertions_test.go | 24 +++++++++---------- test/integration/catalog_packages_test.go | 6 ++--- test/integration/distro_test.go | 2 +- test/integration/node_packages_test.go | 4 ++-- .../package_ownership_relationship_test.go | 2 +- ...regression_apk_scanner_buffer_size_test.go | 2 +- .../regression_go_bin_scanner_arch_test.go | 2 +- test/integration/utils_test.go | 14 ++++++----- 28 files changed, 62 insertions(+), 58 deletions(-) diff --git a/syft/encode_decode_test.go b/syft/encode_decode_test.go index 6adc6ead4..d070b206b 100644 --- a/syft/encode_decode_test.go +++ b/syft/encode_decode_test.go @@ -35,7 +35,7 @@ func TestEncodeDecodeEncodeCycleComparison(t *testing.T) { if err != nil { t.Fatalf("cant get dir") } - originalCatalog, d, err := CatalogPackages(&src, source.SquashedScope) + originalCatalog, _, d, err := CatalogPackages(&src, source.SquashedScope) originalSBOM := sbom.SBOM{ Artifacts: sbom.Artifacts{ diff --git a/syft/pkg/cataloger/apkdb/parse_apk_db_test.go b/syft/pkg/cataloger/apkdb/parse_apk_db_test.go index dea6bb796..cdd0c1cdc 100644 --- a/syft/pkg/cataloger/apkdb/parse_apk_db_test.go +++ b/syft/pkg/cataloger/apkdb/parse_apk_db_test.go @@ -775,7 +775,7 @@ func TestMultiplePackages(t *testing.T) { } }() - pkgs, err := parseApkDB(file.Name(), file) + pkgs, _, err := parseApkDB(file.Name(), file) if err != nil { t.Fatal("Unable to read file contents: ", err) } diff --git a/syft/pkg/cataloger/deb/cataloger.go b/syft/pkg/cataloger/deb/cataloger.go index 7235891b4..39c893747 100644 --- a/syft/pkg/cataloger/deb/cataloger.go +++ b/syft/pkg/cataloger/deb/cataloger.go @@ -44,14 +44,13 @@ func (c *Cataloger) Catalog(resolver source.FileResolver) ([]pkg.Package, []arti } var allPackages []pkg.Package - var allRelationships []artifact.Relationship for _, dbLocation := range dbFileMatches { dbContents, err := resolver.FileContentsByLocation(dbLocation) if err != nil { return nil, nil, err } - pkgs, relationships, err := parseDpkgStatus(dbContents) + pkgs, err := parseDpkgStatus(dbContents) internal.CloseAndLogError(dbContents, dbLocation.VirtualPath) if err != nil { return nil, nil, fmt.Errorf("unable to catalog dpkg package=%+v: %w", dbLocation.RealPath, err) @@ -72,9 +71,8 @@ func (c *Cataloger) Catalog(resolver source.FileResolver) ([]pkg.Package, []arti } allPackages = append(allPackages, pkgs...) - allRelationships = append(allRelationships, relationships...) } - return allPackages, allRelationships, nil + return allPackages, nil, nil } func addLicenses(resolver source.FileResolver, dbLocation source.Location, p *pkg.Package) { diff --git a/syft/pkg/cataloger/deb/cataloger_test.go b/syft/pkg/cataloger/deb/cataloger_test.go index 482ef7755..4568c72b9 100644 --- a/syft/pkg/cataloger/deb/cataloger_test.go +++ b/syft/pkg/cataloger/deb/cataloger_test.go @@ -100,7 +100,7 @@ func TestDpkgCataloger(t *testing.T) { t.Errorf("could not get resolver error: %+v", err) } - actual, err := c.Catalog(resolver) + actual, _, err := c.Catalog(resolver) if err != nil { t.Fatalf("failed to catalog: %+v", err) } diff --git a/syft/pkg/cataloger/deb/parse_dpkg_status.go b/syft/pkg/cataloger/deb/parse_dpkg_status.go index fe5581824..a5338640f 100644 --- a/syft/pkg/cataloger/deb/parse_dpkg_status.go +++ b/syft/pkg/cataloger/deb/parse_dpkg_status.go @@ -11,7 +11,6 @@ import ( "github.com/anchore/syft/internal" - "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" "github.com/mitchellh/mapstructure" ) @@ -22,7 +21,7 @@ var ( ) // parseDpkgStatus is a parser function for Debian DB status contents, returning all Debian packages listed. -func parseDpkgStatus(reader io.Reader) ([]pkg.Package, []artifact.Relationship, error) { +func parseDpkgStatus(reader io.Reader) ([]pkg.Package, error) { buffedReader := bufio.NewReader(reader) var packages []pkg.Package @@ -33,7 +32,7 @@ func parseDpkgStatus(reader io.Reader) ([]pkg.Package, []artifact.Relationship, if errors.Is(err, errEndOfPackages) { continueProcessing = false } else { - return nil, nil, err + return nil, err } } @@ -48,7 +47,7 @@ func parseDpkgStatus(reader io.Reader) ([]pkg.Package, []artifact.Relationship, } } - return packages, nil, nil + return packages, nil } // parseDpkgStatusEntry returns an individual Dpkg entry, or returns errEndOfPackages if there are no more packages to parse from the reader. diff --git a/syft/pkg/cataloger/golang/parse_go_bin.go b/syft/pkg/cataloger/golang/parse_go_bin.go index fade0d102..c93e71af1 100644 --- a/syft/pkg/cataloger/golang/parse_go_bin.go +++ b/syft/pkg/cataloger/golang/parse_go_bin.go @@ -16,6 +16,7 @@ const ( ) func parseGoBin(location source.Location, reader io.ReadCloser) ([]pkg.Package, []artifact.Relationship, error) { + // Identify if bin was compiled by go x, err := openExe(reader) if err != nil { diff --git a/syft/pkg/cataloger/golang/parse_go_mod_test.go b/syft/pkg/cataloger/golang/parse_go_mod_test.go index 292107ef6..9be70d851 100644 --- a/syft/pkg/cataloger/golang/parse_go_mod_test.go +++ b/syft/pkg/cataloger/golang/parse_go_mod_test.go @@ -70,7 +70,7 @@ func TestParseGoMod(t *testing.T) { t.Fatalf(err.Error()) } - actual, err := parseGoMod(test.fixture, f) + actual, _, err := parseGoMod(test.fixture, f) if err != nil { t.Fatalf(err.Error()) } diff --git a/syft/pkg/cataloger/java/archive_parser_test.go b/syft/pkg/cataloger/java/archive_parser_test.go index ac8c826d3..64e51b8e9 100644 --- a/syft/pkg/cataloger/java/archive_parser_test.go +++ b/syft/pkg/cataloger/java/archive_parser_test.go @@ -242,7 +242,7 @@ func TestParseJar(t *testing.T) { t.Fatalf("should not have filed... %+v", err) } - actual, err := parser.parse() + actual, _, err := parser.parse() if err != nil { t.Fatalf("failed to parse java archive: %+v", err) } @@ -507,7 +507,7 @@ func TestParseNestedJar(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parseJavaArchive(fixture.Name(), fixture) + actual, _, err := parseJavaArchive(fixture.Name(), fixture) if err != nil { t.Fatalf("failed to parse java archive: %+v", err) } diff --git a/syft/pkg/cataloger/javascript/parse_package_json_test.go b/syft/pkg/cataloger/javascript/parse_package_json_test.go index 83af1f9b1..2608ac358 100644 --- a/syft/pkg/cataloger/javascript/parse_package_json_test.go +++ b/syft/pkg/cataloger/javascript/parse_package_json_test.go @@ -124,7 +124,7 @@ func TestParsePackageJSON(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parsePackageJSON("", fixture) + actual, _, err := parsePackageJSON("", fixture) if err != nil { t.Fatalf("failed to parse package-lock.json: %+v", err) } @@ -150,7 +150,7 @@ func TestParsePackageJSON_Partial(t *testing.T) { // see https://github.com/anch t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parsePackageJSON("", fixture) + actual, _, err := parsePackageJSON("", fixture) if err != nil { t.Fatalf("failed to parse package-lock.json: %+v", err) } diff --git a/syft/pkg/cataloger/javascript/parse_package_lock_test.go b/syft/pkg/cataloger/javascript/parse_package_lock_test.go index 1f0b0a086..07839b529 100644 --- a/syft/pkg/cataloger/javascript/parse_package_lock_test.go +++ b/syft/pkg/cataloger/javascript/parse_package_lock_test.go @@ -109,7 +109,7 @@ func TestParsePackageLock(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parsePackageLock(fixture.Name(), fixture) + actual, _, err := parsePackageLock(fixture.Name(), fixture) if err != nil { t.Fatalf("failed to parse package-lock.json: %+v", err) } diff --git a/syft/pkg/cataloger/javascript/parse_yarn_lock_test.go b/syft/pkg/cataloger/javascript/parse_yarn_lock_test.go index fd4ecd2e3..06901d06a 100644 --- a/syft/pkg/cataloger/javascript/parse_yarn_lock_test.go +++ b/syft/pkg/cataloger/javascript/parse_yarn_lock_test.go @@ -70,7 +70,7 @@ func TestParseYarnLock(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parseYarnLock(fixture.Name(), fixture) + actual, _, err := parseYarnLock(fixture.Name(), fixture) if err != nil { t.Fatalf("failed to parse yarn.lock: %+v", err) } diff --git a/syft/pkg/cataloger/python/package_cataloger_test.go b/syft/pkg/cataloger/python/package_cataloger_test.go index 4aced6a4d..8766c42f6 100644 --- a/syft/pkg/cataloger/python/package_cataloger_test.go +++ b/syft/pkg/cataloger/python/package_cataloger_test.go @@ -144,7 +144,7 @@ func TestPythonPackageWheelCataloger(t *testing.T) { test.expectedPackage.Locations = locations - actual, err := NewPythonPackageCataloger().Catalog(resolver) + actual, _, err := NewPythonPackageCataloger().Catalog(resolver) if err != nil { t.Fatalf("failed to catalog python package: %+v", err) } @@ -173,7 +173,7 @@ func TestIgnorePackage(t *testing.T) { t.Run(test.MetadataFixture, func(t *testing.T) { resolver := source.NewMockResolverForPaths(test.MetadataFixture) - actual, err := NewPythonPackageCataloger().Catalog(resolver) + actual, _, err := NewPythonPackageCataloger().Catalog(resolver) if err != nil { t.Fatalf("failed to catalog python package: %+v", err) } diff --git a/syft/pkg/cataloger/python/parse_pipfile_lock_test.go b/syft/pkg/cataloger/python/parse_pipfile_lock_test.go index f65864e0e..b1fab39af 100644 --- a/syft/pkg/cataloger/python/parse_pipfile_lock_test.go +++ b/syft/pkg/cataloger/python/parse_pipfile_lock_test.go @@ -39,7 +39,7 @@ func TestParsePipFileLock(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parsePipfileLock(fixture.Name(), fixture) + actual, _, err := parsePipfileLock(fixture.Name(), fixture) if err != nil { t.Fatalf("failed to parse requirements: %+v", err) } diff --git a/syft/pkg/cataloger/python/parse_poetry_lock_test.go b/syft/pkg/cataloger/python/parse_poetry_lock_test.go index 80cc6b625..849401634 100644 --- a/syft/pkg/cataloger/python/parse_poetry_lock_test.go +++ b/syft/pkg/cataloger/python/parse_poetry_lock_test.go @@ -45,7 +45,7 @@ func TestParsePoetryLock(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parsePoetryLock(fixture.Name(), fixture) + actual, _, err := parsePoetryLock(fixture.Name(), fixture) if err != nil { t.Error(err) } diff --git a/syft/pkg/cataloger/python/parse_requirements_test.go b/syft/pkg/cataloger/python/parse_requirements_test.go index 8dd66092a..dee6d1bf7 100644 --- a/syft/pkg/cataloger/python/parse_requirements_test.go +++ b/syft/pkg/cataloger/python/parse_requirements_test.go @@ -50,7 +50,7 @@ func TestParseRequirementsTxt(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parseRequirementsTxt(fixture.Name(), fixture) + actual, _, err := parseRequirementsTxt(fixture.Name(), fixture) if err != nil { t.Fatalf("failed to parse requirements: %+v", err) } diff --git a/syft/pkg/cataloger/python/parse_setup_test.go b/syft/pkg/cataloger/python/parse_setup_test.go index 3b8fa8edc..c8106157e 100644 --- a/syft/pkg/cataloger/python/parse_setup_test.go +++ b/syft/pkg/cataloger/python/parse_setup_test.go @@ -45,7 +45,7 @@ func TestParseSetup(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parseSetup(fixture.Name(), fixture) + actual, _, err := parseSetup(fixture.Name(), fixture) if err != nil { t.Fatalf("failed to parse requirements: %+v", err) } diff --git a/syft/pkg/cataloger/ruby/parse_gemfile_lock_test.go b/syft/pkg/cataloger/ruby/parse_gemfile_lock_test.go index 4307c34fa..dfd08205c 100644 --- a/syft/pkg/cataloger/ruby/parse_gemfile_lock_test.go +++ b/syft/pkg/cataloger/ruby/parse_gemfile_lock_test.go @@ -68,7 +68,7 @@ func TestParseGemfileLockEntries(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parseGemFileLockEntries(fixture.Name(), fixture) + actual, _, err := parseGemFileLockEntries(fixture.Name(), fixture) if err != nil { t.Fatalf("failed to parse gemfile lock: %+v", err) } diff --git a/syft/pkg/cataloger/ruby/parse_gemspec_test.go b/syft/pkg/cataloger/ruby/parse_gemspec_test.go index 2a32ae0b3..cb3b4ce5c 100644 --- a/syft/pkg/cataloger/ruby/parse_gemspec_test.go +++ b/syft/pkg/cataloger/ruby/parse_gemspec_test.go @@ -31,7 +31,7 @@ func TestParseGemspec(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parseGemSpecEntries(fixture.Name(), fixture) + actual, _, err := parseGemSpecEntries(fixture.Name(), fixture) if err != nil { t.Fatalf("failed to parse gemspec: %+v", err) } diff --git a/syft/pkg/cataloger/rust/parse_cargo_lock_test.go b/syft/pkg/cataloger/rust/parse_cargo_lock_test.go index 334090b8f..946b8887b 100644 --- a/syft/pkg/cataloger/rust/parse_cargo_lock_test.go +++ b/syft/pkg/cataloger/rust/parse_cargo_lock_test.go @@ -177,7 +177,7 @@ func TestParseCargoLock(t *testing.T) { t.Fatalf("failed to open fixture: %+v", err) } - actual, err := parseCargoLock(fixture.Name(), fixture) + actual, _, err := parseCargoLock(fixture.Name(), fixture) if err != nil { t.Error(err) } diff --git a/syft/pkg/ownership_by_files_relationship_test.go b/syft/pkg/ownership_by_files_relationship_test.go index 463286989..caf01e98b 100644 --- a/syft/pkg/ownership_by_files_relationship_test.go +++ b/syft/pkg/ownership_by_files_relationship_test.go @@ -3,10 +3,11 @@ package pkg import ( "testing" + "github.com/stretchr/testify/assert" + "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/source" - "github.com/go-test/deep" ) func TestOwnershipByFilesRelationship(t *testing.T) { @@ -169,8 +170,13 @@ func TestOwnershipByFilesRelationship(t *testing.T) { c := NewCatalog(test.pkgs...) relationships := ownershipByFilesRelationships(c) - for _, d := range deep.Equal(test.expectedRelations, relationships) { - t.Errorf("diff: %+v", d) + assert.Len(t, relationships, len(test.expectedRelations)) + for idx, expectedRelationship := range test.expectedRelations { + actualRelationship := relationships[idx] + assert.Equal(t, expectedRelationship.From.Identity(), actualRelationship.From.Identity()) + assert.Equal(t, expectedRelationship.To.Identity(), actualRelationship.To.Identity()) + assert.Equal(t, expectedRelationship.Type, actualRelationship.Type) + assert.Equal(t, expectedRelationship.Data, actualRelationship.Data) } }) } diff --git a/test/cli/trait_assertions_test.go b/test/cli/trait_assertions_test.go index 3aa43a5d8..d19f14a4c 100644 --- a/test/cli/trait_assertions_test.go +++ b/test/cli/trait_assertions_test.go @@ -2,13 +2,11 @@ package cli import ( "encoding/json" - "fmt" "regexp" "strings" "testing" "github.com/acarl005/stripansi" - "github.com/anchore/syft/syft/source" ) type traitAssertion func(tb testing.TB, stdout, stderr string, rc int) @@ -29,17 +27,17 @@ func assertTableReport(tb testing.TB, stdout, _ string, _ int) { } } -func assertScope(scope source.Scope) traitAssertion { - return func(tb testing.TB, stdout, stderr string, rc int) { - tb.Helper() - // we can only verify source with the json report - assertJsonReport(tb, stdout, stderr, rc) - - if !strings.Contains(stdout, fmt.Sprintf(`"scope": "%s"`, scope.String())) { - tb.Errorf("JSON report did not indicate the %q scope", scope) - } - } -} +//func assertScope(scope source.Scope) traitAssertion { +// return func(tb testing.TB, stdout, stderr string, rc int) { +// tb.Helper() +// // we can only verify source with the json report +// assertJsonReport(tb, stdout, stderr, rc) +// +// if !strings.Contains(stdout, fmt.Sprintf(`"scope": "%s"`, scope.String())) { +// tb.Errorf("JSON report did not indicate the %q scope", scope) +// } +// } +//} func assertLoggingLevel(level string) traitAssertion { // match examples: diff --git a/test/integration/catalog_packages_test.go b/test/integration/catalog_packages_test.go index ded7beb90..f2d8ce519 100644 --- a/test/integration/catalog_packages_test.go +++ b/test/integration/catalog_packages_test.go @@ -37,7 +37,7 @@ func BenchmarkImagePackageCatalogers(b *testing.B) { b.Run(c.Name(), func(b *testing.B) { for i := 0; i < b.N; i++ { - pc, err = cataloger.Catalog(resolver, theDistro, c) + pc, _, err = cataloger.Catalog(resolver, theDistro, c) if err != nil { b.Fatalf("failure during benchmark: %+v", err) } @@ -49,7 +49,7 @@ func BenchmarkImagePackageCatalogers(b *testing.B) { } func TestPkgCoverageImage(t *testing.T) { - catalog, _, _ := catalogFixtureImage(t, "image-pkg-coverage") + catalog, _, _, _ := catalogFixtureImage(t, "image-pkg-coverage") observedLanguages := internal.NewStringSet() definedLanguages := internal.NewStringSet() @@ -135,7 +135,7 @@ func TestPkgCoverageImage(t *testing.T) { } func TestPkgCoverageDirectory(t *testing.T) { - catalog, _, _ := catalogDirectory(t, "test-fixtures/image-pkg-coverage") + catalog, _, _, _ := catalogDirectory(t, "test-fixtures/image-pkg-coverage") observedLanguages := internal.NewStringSet() definedLanguages := internal.NewStringSet() diff --git a/test/integration/distro_test.go b/test/integration/distro_test.go index a54c472f3..cc65d374b 100644 --- a/test/integration/distro_test.go +++ b/test/integration/distro_test.go @@ -8,7 +8,7 @@ import ( ) func TestDistroImage(t *testing.T) { - _, actualDistro, _ := catalogFixtureImage(t, "image-distro-id") + _, _, actualDistro, _ := catalogFixtureImage(t, "image-distro-id") expected, err := distro.NewDistro(distro.Busybox, "1.31.1", "") if err != nil { diff --git a/test/integration/node_packages_test.go b/test/integration/node_packages_test.go index b4d270ae5..0cc87be7d 100644 --- a/test/integration/node_packages_test.go +++ b/test/integration/node_packages_test.go @@ -9,7 +9,7 @@ import ( ) func TestNpmPackageLockDirectory(t *testing.T) { - catalog, _, _ := catalogDirectory(t, "test-fixtures/npm-lock") + catalog, _, _, _ := catalogDirectory(t, "test-fixtures/npm-lock") foundPackages := internal.NewStringSet() @@ -30,7 +30,7 @@ func TestNpmPackageLockDirectory(t *testing.T) { } func TestYarnPackageLockDirectory(t *testing.T) { - catalog, _, _ := catalogDirectory(t, "test-fixtures/yarn-lock") + catalog, _, _, _ := catalogDirectory(t, "test-fixtures/yarn-lock") foundPackages := internal.NewStringSet() diff --git a/test/integration/package_ownership_relationship_test.go b/test/integration/package_ownership_relationship_test.go index 42f9206af..215556700 100644 --- a/test/integration/package_ownership_relationship_test.go +++ b/test/integration/package_ownership_relationship_test.go @@ -23,7 +23,7 @@ func TestPackageOwnershipRelationships(t *testing.T) { for _, test := range tests { t.Run(test.fixture, func(t *testing.T) { - catalog, d, src := catalogFixtureImage(t, test.fixture) + catalog, _, d, src := catalogFixtureImage(t, test.fixture) p := syftjson.Format().Presenter(sbom.SBOM{ Artifacts: sbom.Artifacts{ diff --git a/test/integration/regression_apk_scanner_buffer_size_test.go b/test/integration/regression_apk_scanner_buffer_size_test.go index 5aaa4f24d..1a4f6c718 100644 --- a/test/integration/regression_apk_scanner_buffer_size_test.go +++ b/test/integration/regression_apk_scanner_buffer_size_test.go @@ -9,7 +9,7 @@ import ( func TestRegression212ApkBufferSize(t *testing.T) { // This is a regression test for issue #212 (https://github.com/anchore/syft/issues/212) in which the apk db could // not be processed due to a scanner buffer that was too small - catalog, _, _ := catalogFixtureImage(t, "image-large-apk-data") + catalog, _, _, _ := catalogFixtureImage(t, "image-large-apk-data") expectedPkgs := 58 actualPkgs := 0 diff --git a/test/integration/regression_go_bin_scanner_arch_test.go b/test/integration/regression_go_bin_scanner_arch_test.go index 3a76ff335..a046ccb78 100644 --- a/test/integration/regression_go_bin_scanner_arch_test.go +++ b/test/integration/regression_go_bin_scanner_arch_test.go @@ -15,7 +15,7 @@ func TestRegressionGoArchDiscovery(t *testing.T) { ) // This is a regression test to make sure the way we detect go binary packages // stays consistent and reproducible as the tool chain evolves - catalog, _, _ := catalogFixtureImage(t, "image-go-bin-arch-coverage") + catalog, _, _, _ := catalogFixtureImage(t, "image-go-bin-arch-coverage") var actualELF, actualWIN, actualMACOS int diff --git a/test/integration/utils_test.go b/test/integration/utils_test.go index bd6b7435c..d33cff872 100644 --- a/test/integration/utils_test.go +++ b/test/integration/utils_test.go @@ -3,6 +3,8 @@ package integration import ( "testing" + "github.com/anchore/syft/syft/artifact" + "github.com/anchore/stereoscope/pkg/imagetest" "github.com/anchore/syft/syft" "github.com/anchore/syft/syft/distro" @@ -10,7 +12,7 @@ import ( "github.com/anchore/syft/syft/source" ) -func catalogFixtureImage(t *testing.T, fixtureImageName string) (*pkg.Catalog, *distro.Distro, *source.Source) { +func catalogFixtureImage(t *testing.T, fixtureImageName string) (*pkg.Catalog, []artifact.Relationship, *distro.Distro, *source.Source) { imagetest.GetFixtureImage(t, "docker-archive", fixtureImageName) tarPath := imagetest.GetFixtureImageTarPath(t, fixtureImageName) @@ -20,25 +22,25 @@ func catalogFixtureImage(t *testing.T, fixtureImageName string) (*pkg.Catalog, * t.Fatalf("unable to get source: %+v", err) } - pkgCatalog, actualDistro, err := syft.CatalogPackages(theSource, source.SquashedScope) + pkgCatalog, relationships, actualDistro, err := syft.CatalogPackages(theSource, source.SquashedScope) if err != nil { t.Fatalf("failed to catalog image: %+v", err) } - return pkgCatalog, actualDistro, theSource + return pkgCatalog, relationships, actualDistro, theSource } -func catalogDirectory(t *testing.T, dir string) (*pkg.Catalog, *distro.Distro, *source.Source) { +func catalogDirectory(t *testing.T, dir string) (*pkg.Catalog, []artifact.Relationship, *distro.Distro, *source.Source) { theSource, cleanupSource, err := source.New("dir:"+dir, nil) t.Cleanup(cleanupSource) if err != nil { t.Fatalf("unable to get source: %+v", err) } - pkgCatalog, actualDistro, err := syft.CatalogPackages(theSource, source.AllLayersScope) + pkgCatalog, relationships, actualDistro, err := syft.CatalogPackages(theSource, source.AllLayersScope) if err != nil { t.Fatalf("failed to catalog image: %+v", err) } - return pkgCatalog, actualDistro, theSource + return pkgCatalog, relationships, actualDistro, theSource }