github.com/anchore/syft@v1.4.2-0.20240516191711-1bec1fc5d397/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  			Metadata: pkg.ConanfileEntry{
    24  				Ref: "catch2/2.13.8",
    25  			},
    26  		},
    27  		{
    28  			Name:      "docopt.cpp",
    29  			Version:   "0.6.3",
    30  			PURL:      "pkg:conan/docopt.cpp@0.6.3",
    31  			Locations: fixtureLocationSet,
    32  			Language:  pkg.CPP,
    33  			Type:      pkg.ConanPkg,
    34  			Metadata: pkg.ConanfileEntry{
    35  				Ref: "docopt.cpp/0.6.3",
    36  			},
    37  		},
    38  		{
    39  			Name:      "fmt",
    40  			Version:   "8.1.1",
    41  			PURL:      "pkg:conan/fmt@8.1.1",
    42  			Locations: fixtureLocationSet,
    43  			Language:  pkg.CPP,
    44  			Type:      pkg.ConanPkg,
    45  			Metadata: pkg.ConanfileEntry{
    46  				Ref: "fmt/8.1.1",
    47  			},
    48  		},
    49  		{
    50  			Name:      "spdlog",
    51  			Version:   "1.9.2",
    52  			PURL:      "pkg:conan/my_user/spdlog@1.9.2?channel=my_channel",
    53  			Locations: fixtureLocationSet,
    54  			Language:  pkg.CPP,
    55  			Type:      pkg.ConanPkg,
    56  			Metadata: pkg.ConanfileEntry{
    57  				Ref: "spdlog/1.9.2@my_user/my_channel#1234567%%987654",
    58  			},
    59  		},
    60  		{
    61  			Name:      "sdl",
    62  			Version:   "2.0.20",
    63  			PURL:      "pkg:conan/sdl@2.0.20",
    64  			Locations: fixtureLocationSet,
    65  			Language:  pkg.CPP,
    66  			Type:      pkg.ConanPkg,
    67  			Metadata: pkg.ConanfileEntry{
    68  				Ref: "sdl/2.0.20#1234567%%987654",
    69  			},
    70  		},
    71  		{
    72  			Name:      "fltk",
    73  			Version:   "1.3.8",
    74  			PURL:      "pkg:conan/my_user/fltk@1.3.8?channel=my_channel",
    75  			Locations: fixtureLocationSet,
    76  			Language:  pkg.CPP,
    77  			Type:      pkg.ConanPkg,
    78  			Metadata: pkg.ConanfileEntry{
    79  				Ref: "fltk/1.3.8@my_user/my_channel",
    80  			},
    81  		},
    82  	}
    83  
    84  	// TODO: relationships are not under test
    85  	var expectedRelationships []artifact.Relationship
    86  
    87  	pkgtest.TestFileParser(t, fixture, parseConanfile, expected, expectedRelationships)
    88  }