diff --git a/syft/pkg/cataloger/binary/classifier_cataloger_test.go b/syft/pkg/cataloger/binary/classifier_cataloger_test.go index 65fedc92a..ad08fdc39 100644 --- a/syft/pkg/cataloger/binary/classifier_cataloger_test.go +++ b/syft/pkg/cataloger/binary/classifier_cataloger_test.go @@ -727,6 +727,16 @@ func Test_Cataloger_PositiveCases(t *testing.T) { { // TODO: find original binary... // note: cannot find the original binary, using a custom snippet based on the original snippet in the repo + logicalFixture: "go-version-hint/1.15-dev/any", + expected: pkg.Package{ + Name: "go", + Version: "1.15", + PURL: "pkg:generic/go@1.15", + Locations: locations("bin/go", "VERSION"), + Metadata: metadata("go-binary"), + }, + }, + { logicalFixture: "go-version-hint/1.15/any", expected: pkg.Package{ Name: "go", diff --git a/syft/pkg/cataloger/binary/classifiers.go b/syft/pkg/cataloger/binary/classifiers.go index ec2f9b62c..775970026 100644 --- a/syft/pkg/cataloger/binary/classifiers.go +++ b/syft/pkg/cataloger/binary/classifiers.go @@ -76,10 +76,10 @@ func DefaultClassifiers() []binutils.Classifier { `(?m)go(?P[0-9]+\.[0-9]+(\.[0-9]+|beta[0-9]+|alpha[0-9]+|rc[0-9]+)?)\x00`), binutils.SupportingEvidenceMatcher("VERSION*", m.FileContentsVersionMatcher( - `(?m)go(?P[0-9]+\.[0-9]+(\.[0-9]+|beta[0-9]+|alpha[0-9]+|rc[0-9]+|-[_0-9a-z]+)?)\s`)), + `(?m)go(?P[0-9]+\.[0-9]+(\.[0-9]+|beta[0-9]+|alpha[0-9]+|rc[0-9]+|-[_0-9a-z]+)?)`)), binutils.SupportingEvidenceMatcher("../VERSION*", m.FileContentsVersionMatcher( - `(?m)go(?P[0-9]+\.[0-9]+(\.[0-9]+|beta[0-9]+|alpha[0-9]+|rc[0-9]+|-[_0-9a-z]+)?)\s`)), + `(?m)go(?P[0-9]+\.[0-9]+(\.[0-9]+|beta[0-9]+|alpha[0-9]+|rc[0-9]+|-[_0-9a-z]+)?)`)), ), Package: "go", PURL: mustPURL("pkg:generic/go@version"), diff --git a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15-dev/any/VERSION b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15-dev/any/VERSION new file mode 100644 index 000000000..1c595336d --- /dev/null +++ b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15-dev/any/VERSION @@ -0,0 +1 @@ +go1.15 Fri 2003 \ No newline at end of file diff --git a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15-dev/any/bin/go b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15-dev/any/bin/go new file mode 100644 index 000000000..ae382e1e6 --- /dev/null +++ b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15-dev/any/bin/go @@ -0,0 +1 @@ +no version in this binary \ No newline at end of file diff --git a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15/any/VERSION b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15/any/VERSION index 1c595336d..4b9a234fa 100644 --- a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15/any/VERSION +++ b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/go-version-hint/1.15/any/VERSION @@ -1 +1 @@ -go1.15 Fri 2003 \ No newline at end of file +go1.15 \ No newline at end of file