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  }