@@ -380,20 +380,20 @@ func TestParse(t *testing.T) {
380380 {
381381 name : "cve-2022-1705" ,
382382 filenames : []string {"testdata/cve-2022-1705.json" },
383- expectedVulns : 2009 ,
383+ expectedVulns : 1641 ,
384384 expectedDeleted : 0 ,
385385 },
386386 {
387387 name : "cve-2024-24786" ,
388388 filenames : []string {"testdata/cve-2024-24786.json" },
389- expectedVulns : 1837 ,
389+ expectedVulns : 1764 ,
390390 expectedDeleted : 0 ,
391391 expectedAncestry : 732 ,
392392 },
393393 {
394394 name : "cve-2022-38752" ,
395395 filenames : []string {"testdata/cve-2022-38752.json" },
396- expectedVulns : 1788 ,
396+ expectedVulns : 1494 ,
397397 expectedDeleted : 0 ,
398398 },
399399 {
@@ -405,13 +405,13 @@ func TestParse(t *testing.T) {
405405 {
406406 name : "cve-2024-24786-new-module-format" ,
407407 filenames : []string {"testdata/cve-2024-24786-1.json" },
408- expectedVulns : 2731 ,
408+ expectedVulns : 2661 ,
409409 expectedDeleted : 0 ,
410410 },
411411 {
412412 name : "cve-2023-38545" ,
413413 filenames : []string {"testdata/cve-2023-38545.json" },
414- expectedVulns : 269 ,
414+ expectedVulns : 265 ,
415415 expectedDeleted : 0 ,
416416 },
417417 {
@@ -828,3 +828,67 @@ func TestDocLinkFromBase(t *testing.T) {
828828 t .Fatalf ("nil base: got %q, want empty" , got )
829829 }
830830}
831+
832+ func TestExtractArch (t * testing.T ) {
833+ t .Parallel ()
834+ tests := []struct {
835+ name string
836+ purl packageurl.PackageURL
837+ want string
838+ }{
839+ {
840+ name : "no arch" ,
841+ purl : packageurl.PackageURL {Type : packageurl .TypeRPM , Namespace : "redhat" , Name : "binutils" , Version : "2.45.1-5.1.hum1" },
842+ want : "" ,
843+ },
844+ {
845+ name : "x86_64" ,
846+ purl : packageurl.PackageURL {
847+ Type : packageurl .TypeRPM , Namespace : "redhat" , Name : "binutils" , Version : "2.45.1-5.1.hum1" ,
848+ Qualifiers : packageurl .QualifiersFromMap (map [string ]string {"arch" : "x86_64" }),
849+ },
850+ want : "amd64|x86_64" ,
851+ },
852+ {
853+ name : "aarch64" ,
854+ purl : packageurl.PackageURL {
855+ Type : packageurl .TypeRPM , Namespace : "redhat" , Name : "binutils" , Version : "2.45.1-5.1.hum1" ,
856+ Qualifiers : packageurl .QualifiersFromMap (map [string ]string {"arch" : "aarch64" }),
857+ },
858+ want : "aarch64" ,
859+ },
860+ }
861+ for _ , tc := range tests {
862+ t .Run (tc .name , func (t * testing.T ) {
863+ got := extractArch (& tc .purl )
864+ if got != tc .want {
865+ t .Fatalf ("got %q, want %q" , got , tc .want )
866+ }
867+ })
868+ }
869+ }
870+
871+ func TestIsSourceArch (t * testing.T ) {
872+ t .Parallel ()
873+ tests := []struct {
874+ name string
875+ arch string
876+ want bool
877+ }{
878+ {name : "empty" , arch : "" , want : false },
879+ {name : "x86_64" , arch : "x86_64" , want : false },
880+ {name : "src" , arch : "src" , want : true },
881+ {name : "nosrc" , arch : "nosrc" , want : true },
882+ }
883+ for _ , tc := range tests {
884+ t .Run (tc .name , func (t * testing.T ) {
885+ p := & packageurl.PackageURL {Type : packageurl .TypeRPM , Name : "binutils" }
886+ if tc .arch != "" {
887+ p .Qualifiers = packageurl .QualifiersFromMap (map [string ]string {"arch" : tc .arch })
888+ }
889+ if got := isSourceArch (p ); got != tc .want {
890+ t .Fatalf ("got %v, want %v" , got , tc .want )
891+ }
892+ })
893+ }
894+ }
0 commit comments