github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/pkg/cataloger/cpp/parse_conanfile_test.go (about) 1 package cpp 2 3 import ( 4 "testing" 5 6 "github.com/anchore/syft/syft/artifact" 7 "github.com/anchore/syft/syft/file" 8 "github.com/anchore/syft/syft/pkg" 9 "github.com/anchore/syft/syft/pkg/cataloger/internal/pkgtest" 10 ) 11 12 func TestParseConanfile(t *testing.T) { 13 fixture := "test-fixtures/conanfile.txt" 14 fixtureLocationSet := file.NewLocationSet(file.NewLocation(fixture)) 15 expected := []pkg.Package{ 16 { 17 Name: "catch2", 18 Version: "2.13.8", 19 PURL: "pkg:conan/catch2@2.13.8", 20 Locations: fixtureLocationSet, 21 Language: pkg.CPP, 22 Type: pkg.ConanPkg, 23 MetadataType: pkg.ConanMetadataType, 24 Metadata: pkg.ConanMetadata{ 25 Ref: "catch2/2.13.8", 26 }, 27 }, 28 { 29 Name: "docopt.cpp", 30 Version: "0.6.3", 31 PURL: "pkg:conan/docopt.cpp@0.6.3", 32 Locations: fixtureLocationSet, 33 Language: pkg.CPP, 34 Type: pkg.ConanPkg, 35 MetadataType: pkg.ConanMetadataType, 36 Metadata: pkg.ConanMetadata{ 37 Ref: "docopt.cpp/0.6.3", 38 }, 39 }, 40 { 41 Name: "fmt", 42 Version: "8.1.1", 43 PURL: "pkg:conan/fmt@8.1.1", 44 Locations: fixtureLocationSet, 45 Language: pkg.CPP, 46 Type: pkg.ConanPkg, 47 MetadataType: pkg.ConanMetadataType, 48 Metadata: pkg.ConanMetadata{ 49 Ref: "fmt/8.1.1", 50 }, 51 }, 52 { 53 Name: "spdlog", 54 Version: "1.9.2", 55 PURL: "pkg:conan/my_user/spdlog@1.9.2?channel=my_channel", 56 Locations: fixtureLocationSet, 57 Language: pkg.CPP, 58 Type: pkg.ConanPkg, 59 MetadataType: pkg.ConanMetadataType, 60 Metadata: pkg.ConanMetadata{ 61 Ref: "spdlog/1.9.2@my_user/my_channel#1234567%%987654", 62 }, 63 }, 64 { 65 Name: "sdl", 66 Version: "2.0.20", 67 PURL: "pkg:conan/sdl@2.0.20", 68 Locations: fixtureLocationSet, 69 Language: pkg.CPP, 70 Type: pkg.ConanPkg, 71 MetadataType: pkg.ConanMetadataType, 72 Metadata: pkg.ConanMetadata{ 73 Ref: "sdl/2.0.20#1234567%%987654", 74 }, 75 }, 76 { 77 Name: "fltk", 78 Version: "1.3.8", 79 PURL: "pkg:conan/my_user/fltk@1.3.8?channel=my_channel", 80 Locations: fixtureLocationSet, 81 Language: pkg.CPP, 82 Type: pkg.ConanPkg, 83 MetadataType: pkg.ConanMetadataType, 84 Metadata: pkg.ConanMetadata{ 85 Ref: "fltk/1.3.8@my_user/my_channel", 86 }, 87 }, 88 } 89 90 // TODO: relationships are not under test 91 var expectedRelationships []artifact.Relationship 92 93 pkgtest.TestFileParser(t, fixture, parseConanfile, expected, expectedRelationships) 94 }