github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/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/lineaje-labs/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 Metadata: pkg.HackageStackYamlEntry{ 25 PkgHash: "353c9322847b661e4c6f7c83c2acf8e5c08b682fbe516c7d46c29605937543df", 26 }, 27 }, 28 { 29 Name: "colourista", 30 Version: "0.1.0.1", 31 PURL: "pkg:hackage/colourista@0.1.0.1", 32 Locations: locationSet, 33 Language: pkg.Haskell, 34 Type: pkg.HackagePkg, 35 Metadata: pkg.HackageStackYamlEntry{ 36 PkgHash: "98353ee0e2f5d97d2148513f084c1cd37dfda03e48aa9dd7a017c9d9c0ba710e", 37 }, 38 }, 39 { 40 Name: "language-docker", 41 Version: "11.0.0", 42 PURL: "pkg:hackage/language-docker@11.0.0", 43 Locations: locationSet, 44 Language: pkg.Haskell, 45 Type: pkg.HackagePkg, 46 Metadata: pkg.HackageStackYamlEntry{ 47 PkgHash: "3406ff0c1d592490f53ead8cf2cd22bdf3d79fd125ccaf3add683f6d71c24d55", 48 }, 49 }, 50 { 51 Name: "spdx", 52 Version: "1.0.0.2", 53 PURL: "pkg:hackage/spdx@1.0.0.2", 54 Locations: locationSet, 55 Language: pkg.Haskell, 56 Type: pkg.HackagePkg, 57 Metadata: pkg.HackageStackYamlEntry{ 58 PkgHash: "7dfac9b454ff2da0abb7560f0ffbe00ae442dd5cb76e8be469f77e6988a70fed", 59 }, 60 }, 61 { 62 Name: "hspec", 63 Version: "2.9.4", 64 PURL: "pkg:hackage/hspec@2.9.4", 65 Locations: locationSet, 66 Language: pkg.Haskell, 67 Type: pkg.HackagePkg, 68 Metadata: pkg.HackageStackYamlEntry{ 69 PkgHash: "658a6a74d5a70c040edd6df2a12228c6d9e63082adaad1ed4d0438ad082a0ef3", 70 }, 71 }, 72 { 73 Name: "hspec-core", 74 Version: "2.9.4", 75 PURL: "pkg:hackage/hspec-core@2.9.4", 76 Locations: locationSet, 77 Language: pkg.Haskell, 78 Type: pkg.HackagePkg, 79 Metadata: pkg.HackageStackYamlEntry{ 80 PkgHash: "a126e9087409fef8dcafcd2f8656456527ac7bb163ed4d9cb3a57589042a5fe8", 81 }, 82 }, 83 { 84 Name: "hspec-discover", 85 Version: "2.9.4", 86 PURL: "pkg:hackage/hspec-discover@2.9.4", 87 Locations: locationSet, 88 Language: pkg.Haskell, 89 Type: pkg.HackagePkg, 90 Metadata: pkg.HackageStackYamlEntry{ 91 PkgHash: "fbcf49ecfc3d4da53e797fd0275264cba776ffa324ee223e2a3f4ec2d2c9c4a6", 92 }, 93 }, 94 { 95 Name: "stm", 96 Version: "2.5.0.2", 97 PURL: "pkg:hackage/stm@2.5.0.2", 98 Locations: locationSet, 99 Language: pkg.Haskell, 100 Type: pkg.HackagePkg, 101 Metadata: pkg.HackageStackYamlEntry{ 102 PkgHash: "e4dc6473faaa75fbd7eccab4e3ee1d651d75bb0e49946ef0b8b751ccde771a55", 103 }, 104 }, 105 } 106 107 // TODO: relationships are not under test yet 108 var expectedRelationships []artifact.Relationship 109 110 pkgtest.TestFileParser(t, fixture, parseStackYaml, expectedPkgs, expectedRelationships) 111 112 }