github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/pkg/cataloger/haskell/parse_stack_yaml_test.go (about) 1 package haskell 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 TestParseStackYaml(t *testing.T) { 13 fixture := "test-fixtures/stack.yaml" 14 locationSet := file.NewLocationSet(file.NewLocation(fixture)) 15 16 expectedPkgs := []pkg.Package{ 17 { 18 Name: "ShellCheck", 19 Version: "0.8.0", 20 PURL: "pkg:hackage/ShellCheck@0.8.0", 21 Locations: locationSet, 22 Language: pkg.Haskell, 23 Type: pkg.HackagePkg, 24 MetadataType: pkg.HackageMetadataType, 25 Metadata: pkg.HackageMetadata{ 26 PkgHash: "353c9322847b661e4c6f7c83c2acf8e5c08b682fbe516c7d46c29605937543df", 27 }, 28 }, 29 { 30 Name: "colourista", 31 Version: "0.1.0.1", 32 PURL: "pkg:hackage/colourista@0.1.0.1", 33 Locations: locationSet, 34 Language: pkg.Haskell, 35 Type: pkg.HackagePkg, 36 MetadataType: pkg.HackageMetadataType, 37 Metadata: pkg.HackageMetadata{ 38 PkgHash: "98353ee0e2f5d97d2148513f084c1cd37dfda03e48aa9dd7a017c9d9c0ba710e", 39 }, 40 }, 41 { 42 Name: "language-docker", 43 Version: "11.0.0", 44 PURL: "pkg:hackage/language-docker@11.0.0", 45 Locations: locationSet, 46 Language: pkg.Haskell, 47 Type: pkg.HackagePkg, 48 MetadataType: pkg.HackageMetadataType, 49 Metadata: pkg.HackageMetadata{ 50 PkgHash: "3406ff0c1d592490f53ead8cf2cd22bdf3d79fd125ccaf3add683f6d71c24d55", 51 }, 52 }, 53 { 54 Name: "spdx", 55 Version: "1.0.0.2", 56 PURL: "pkg:hackage/spdx@1.0.0.2", 57 Locations: locationSet, 58 Language: pkg.Haskell, 59 Type: pkg.HackagePkg, 60 MetadataType: pkg.HackageMetadataType, 61 Metadata: pkg.HackageMetadata{ 62 PkgHash: "7dfac9b454ff2da0abb7560f0ffbe00ae442dd5cb76e8be469f77e6988a70fed", 63 }, 64 }, 65 { 66 Name: "hspec", 67 Version: "2.9.4", 68 PURL: "pkg:hackage/hspec@2.9.4", 69 Locations: locationSet, 70 Language: pkg.Haskell, 71 Type: pkg.HackagePkg, 72 MetadataType: pkg.HackageMetadataType, 73 Metadata: pkg.HackageMetadata{ 74 PkgHash: "658a6a74d5a70c040edd6df2a12228c6d9e63082adaad1ed4d0438ad082a0ef3", 75 }, 76 }, 77 { 78 Name: "hspec-core", 79 Version: "2.9.4", 80 PURL: "pkg:hackage/hspec-core@2.9.4", 81 Locations: locationSet, 82 Language: pkg.Haskell, 83 Type: pkg.HackagePkg, 84 MetadataType: pkg.HackageMetadataType, 85 Metadata: pkg.HackageMetadata{ 86 PkgHash: "a126e9087409fef8dcafcd2f8656456527ac7bb163ed4d9cb3a57589042a5fe8", 87 }, 88 }, 89 { 90 Name: "hspec-discover", 91 Version: "2.9.4", 92 PURL: "pkg:hackage/hspec-discover@2.9.4", 93 Locations: locationSet, 94 Language: pkg.Haskell, 95 Type: pkg.HackagePkg, 96 MetadataType: pkg.HackageMetadataType, 97 Metadata: pkg.HackageMetadata{ 98 PkgHash: "fbcf49ecfc3d4da53e797fd0275264cba776ffa324ee223e2a3f4ec2d2c9c4a6", 99 }, 100 }, 101 { 102 Name: "stm", 103 Version: "2.5.0.2", 104 PURL: "pkg:hackage/stm@2.5.0.2", 105 Locations: locationSet, 106 Language: pkg.Haskell, 107 Type: pkg.HackagePkg, 108 MetadataType: pkg.HackageMetadataType, 109 Metadata: pkg.HackageMetadata{ 110 PkgHash: "e4dc6473faaa75fbd7eccab4e3ee1d651d75bb0e49946ef0b8b751ccde771a55", 111 }, 112 }, 113 } 114 115 // TODO: relationships are not under test yet 116 var expectedRelationships []artifact.Relationship 117 118 pkgtest.TestFileParser(t, fixture, parseStackYaml, expectedPkgs, expectedRelationships) 119 120 }