diff --git a/syft/pkg/cataloger/binary/classifier_cataloger_test.go b/syft/pkg/cataloger/binary/classifier_cataloger_test.go index d477d6e7fab..45ff37652c7 100644 --- a/syft/pkg/cataloger/binary/classifier_cataloger_test.go +++ b/syft/pkg/cataloger/binary/classifier_cataloger_test.go @@ -1067,6 +1067,28 @@ func Test_Cataloger_PositiveCases(t *testing.T) { Metadata: metadata("swipl-binary"), }, }, + { + logicalFixture: "dart/2.12.4/linux-amd64", + expected: pkg.Package{ + Name: "dart", + Version: "2.12.4", + Type: "binary", + PURL: "pkg:generic/dart@2.12.4", + Locations: locations("dart"), + Metadata: metadata("dart-binary"), + }, + }, + { + logicalFixture: "dart/3.0.0/linux-arm", + expected: pkg.Package{ + Name: "dart", + Version: "3.0.0", + Type: "binary", + PURL: "pkg:generic/dart@3.0.0", + Locations: locations("dart"), + Metadata: metadata("dart-binary"), + }, + }, { logicalFixture: "dart/3.5.2/linux-amd64", expected: pkg.Package{ diff --git a/syft/pkg/cataloger/binary/classifiers.go b/syft/pkg/cataloger/binary/classifiers.go index ddd17b26f7f..2eb52408fd9 100644 --- a/syft/pkg/cataloger/binary/classifiers.go +++ b/syft/pkg/cataloger/binary/classifiers.go @@ -458,7 +458,11 @@ func DefaultClassifiers() []Classifier { Class: "dart-binary", FileGlob: "**/dart", EvidenceMatcher: FileContentsVersionMatcher( - `(?m)Dart,GC"\x00(?P[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+(\.[0-9]+)?\.beta)?) `, + // MathAtan[NUL]2.12.4 (stable) + // "%s"[NUL]3.0.0 (stable) + // Dart,GC"[NUL]3.5.2 (stable) + // Dart,GC"[NUL]3.6.0-216.1.beta (beta) + `(?m)\x00(?P[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+(\.[0-9]+)?\.beta)?) `, ), Package: "dart", PURL: mustPURL("pkg:generic/dart@version"), diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/dart/2.12.4/linux-amd64/dart b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/dart/2.12.4/linux-amd64/dart new file mode 100644 index 00000000000..1e69fc8156f Binary files /dev/null and b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/dart/2.12.4/linux-amd64/dart differ diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/dart/3.0.0/linux-arm/dart b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/dart/3.0.0/linux-arm/dart new file mode 100644 index 00000000000..6377f28030f Binary files /dev/null and b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/dart/3.0.0/linux-arm/dart differ diff --git a/syft/pkg/cataloger/binary/test-fixtures/config.yaml b/syft/pkg/cataloger/binary/test-fixtures/config.yaml index 22c9948c901..1b0723314e3 100644 --- a/syft/pkg/cataloger/binary/test-fixtures/config.yaml +++ b/syft/pkg/cataloger/binary/test-fixtures/config.yaml @@ -78,6 +78,21 @@ from-images: paths: - /usr/lib/swipl/bin/x86_64-linux/swipl + - version: 2.12.4 + images: + - ref: dart:2.12.4-sdk@sha256:0da5d8c9727f5b90e585bcc55a078d981029f4e13044f206299e00f23993a4a8 + platform: linux/amd64 + + paths: + - /usr/lib/dart/bin/dart + + - version: 3.0.0 + images: + - ref: dart:3.0.0-sdk@sha256:67708c6011199d59336bf6cd0f9e618e55dd3632c79a43375f5a082795f0b724 + platform: linux/arm + paths: + - /usr/lib/dart/bin/dart + - version: 3.5.2 images: - ref: dart:3.5.2@sha256:1fd62cb5036bdc42de89bdae747683277986639be9b0b0a0751d2c50bbd9441f