diff --git a/gost/ubuntu.go b/gost/ubuntu.go index 92fa80b6..48387cf0 100644 --- a/gost/ubuntu.go +++ b/gost/ubuntu.go @@ -29,8 +29,8 @@ func (ubu Ubuntu) supported(version string) bool { return ok } -// DetectUnfixed fills cve information that has in Gost -func (ubu Ubuntu) DetectUnfixed(r *models.ScanResult, _ bool) (nCVEs int, err error) { +// DetectCVEs fills cve information that has in Gost +func (ubu Ubuntu) DetectCVEs(r *models.ScanResult, _ bool) (nCVEs int, err error) { ubuReleaseVer := strings.Replace(r.Release, ".", "", 1) if !ubu.supported(ubuReleaseVer) { logging.Log.Warnf("Ubuntu %s is not supported yet", r.Release) diff --git a/gost/ubuntu_test.go b/gost/ubuntu_test.go index b8ef2d22..0f496f0e 100644 --- a/gost/ubuntu_test.go +++ b/gost/ubuntu_test.go @@ -1,6 +1,13 @@ package gost -import "testing" +import ( + "reflect" + "testing" + "time" + + "github.com/future-architect/vuls/models" + gostmodels "github.com/knqyf263/gost/models" +) func TestUbuntu_Supported(t *testing.T) { type args struct { @@ -70,3 +77,61 @@ func TestUbuntu_Supported(t *testing.T) { }) } } + +func TestUbuntuConvertToModel(t *testing.T) { + tests := []struct { + name string + input gostmodels.UbuntuCVE + expected models.CveContent + }{ + { + name: "gost Ubuntu.ConvertToModel", + input: gostmodels.UbuntuCVE{ + Candidate: "CVE-2021-3517", + PublicDate: time.Date(2021, 5, 19, 14, 15, 0, 0, time.UTC), + References: []gostmodels.UbuntuReference{ + {Reference: "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3517"}, + {Reference: "https://gitlab.gnome.org/GNOME/libxml2/-/issues/235"}, + {Reference: "https://gitlab.gnome.org/GNOME/libxml2/-/commit/bf22713507fe1fc3a2c4b525cf0a88c2dc87a3a2"}}, + Description: "description.", + Notes: []gostmodels.UbuntuNote{}, + Bugs: []gostmodels.UbuntuBug{{Bug: "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987738"}}, + Priority: "medium", + Patches: []gostmodels.UbuntuPatch{ + {PackageName: "libxml2", ReleasePatches: []gostmodels.UbuntuReleasePatch{ + {ReleaseName: "focal", Status: "needed", Note: ""}, + }}, + }, + Upstreams: []gostmodels.UbuntuUpstream{{ + PackageName: "libxml2", UpstreamLinks: []gostmodels.UbuntuUpstreamLink{ + {Link: "https://gitlab.gnome.org/GNOME/libxml2/-/commit/50f06b3efb638efb0abd95dc62dca05ae67882c2"}, + }, + }}, + }, + expected: models.CveContent{ + Type: models.UbuntuAPI, + CveID: "CVE-2021-3517", + Summary: "description.", + Cvss2Severity: "medium", + Cvss3Severity: "medium", + SourceLink: "https://ubuntu.com/security/CVE-2021-3517", + References: []models.Reference{ + {Source: "CVE", Link: "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3517"}, + {Link: "https://gitlab.gnome.org/GNOME/libxml2/-/issues/235"}, + {Link: "https://gitlab.gnome.org/GNOME/libxml2/-/commit/bf22713507fe1fc3a2c4b525cf0a88c2dc87a3a2"}, + {Source: "Bug", Link: "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=987738"}, + {Source: "UPSTREAM", Link: "https://gitlab.gnome.org/GNOME/libxml2/-/commit/50f06b3efb638efb0abd95dc62dca05ae67882c2"}}, + Published: time.Date(2021, 5, 19, 14, 15, 0, 0, time.UTC), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + ubu := Ubuntu{} + got := ubu.ConvertToModel(&tt.input) + if !reflect.DeepEqual(got, &tt.expected) { + t.Errorf("Ubuntu.ConvertToModel() = %#v, want %#v", got, &tt.expected) + } + }) + } +}