github.com/anchore/syft@v1.4.2-0.20240516191711-1bec1fc5d397/syft/pkg/cataloger/haskell/parse_cabal_freeze_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 TestParseCabalFreeze(t *testing.T) { 13 fixture := "test-fixtures/cabal.project.freeze" 14 locationSet := file.NewLocationSet(file.NewLocation(fixture)) 15 16 expectedPkgs := []pkg.Package{ 17 { 18 Name: "Cabal", 19 Version: "3.2.1.0", 20 PURL: "pkg:hackage/Cabal@3.2.1.0", 21 Locations: locationSet, 22 Language: pkg.Haskell, 23 Type: pkg.HackagePkg, 24 }, 25 { 26 Name: "Diff", 27 Version: "0.4.1", 28 PURL: "pkg:hackage/Diff@0.4.1", 29 Locations: locationSet, 30 Language: pkg.Haskell, 31 Type: pkg.HackagePkg, 32 }, 33 { 34 Name: "HTTP", 35 Version: "4000.3.16", 36 PURL: "pkg:hackage/HTTP@4000.3.16", 37 Locations: locationSet, 38 Language: pkg.Haskell, 39 Type: pkg.HackagePkg, 40 }, 41 { 42 Name: "HUnit", 43 Version: "1.6.2.0", 44 PURL: "pkg:hackage/HUnit@1.6.2.0", 45 Locations: locationSet, 46 Language: pkg.Haskell, 47 Type: pkg.HackagePkg, 48 }, 49 { 50 Name: "OneTuple", 51 Version: "0.3.1", 52 PURL: "pkg:hackage/OneTuple@0.3.1", 53 Locations: locationSet, 54 Language: pkg.Haskell, 55 Type: pkg.HackagePkg, 56 }, 57 { 58 Name: "Only", 59 Version: "0.1", 60 PURL: "pkg:hackage/Only@0.1", 61 Locations: locationSet, 62 Language: pkg.Haskell, 63 Type: pkg.HackagePkg, 64 }, 65 { 66 Name: "PyF", 67 Version: "0.10.2.0", 68 PURL: "pkg:hackage/PyF@0.10.2.0", 69 Locations: locationSet, 70 Language: pkg.Haskell, 71 Type: pkg.HackagePkg, 72 }, 73 { 74 Name: "QuickCheck", 75 Version: "2.14.2", 76 PURL: "pkg:hackage/QuickCheck@2.14.2", 77 Locations: locationSet, 78 Language: pkg.Haskell, 79 Type: pkg.HackagePkg, 80 }, 81 { 82 Name: "RSA", 83 Version: "2.4.1", 84 PURL: "pkg:hackage/RSA@2.4.1", 85 Locations: locationSet, 86 Language: pkg.Haskell, 87 Type: pkg.HackagePkg, 88 }, 89 { 90 Name: "SHA", 91 Version: "1.6.4.4", 92 PURL: "pkg:hackage/SHA@1.6.4.4", 93 Locations: locationSet, 94 Language: pkg.Haskell, 95 Type: pkg.HackagePkg, 96 }, 97 { 98 Name: "Spock", 99 Version: "0.14.0.0", 100 PURL: "pkg:hackage/Spock@0.14.0.0", 101 Locations: locationSet, 102 Language: pkg.Haskell, 103 Type: pkg.HackagePkg, 104 }, 105 } 106 107 // TODO: relationships are not under test yet 108 var expectedRelationships []artifact.Relationship 109 110 pkgtest.TestFileParser(t, fixture, parseCabalFreeze, expectedPkgs, expectedRelationships) 111 }