From 19bcc5e8df039f5de0f46fd6aa71e425a5e797bb Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Mon, 7 Feb 2022 11:03:09 -0500 Subject: cvss: add severity and tests --- cvss/severity.go | 16 ++++++++++++++++ cvss/severity_string.go | 27 +++++++++++++++++++++++++++ cvss/severity_test.go | 26 ++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 cvss/severity.go create mode 100644 cvss/severity_string.go create mode 100644 cvss/severity_test.go (limited to 'cvss') diff --git a/cvss/severity.go b/cvss/severity.go new file mode 100644 index 0000000..88df96a --- /dev/null +++ b/cvss/severity.go @@ -0,0 +1,16 @@ +package cvss + +type Rating byte + +//go:generate stringer -linecomment -type=Severity + +// CVSS score severity rating. +type Severity byte + +const ( + None Severity = iota // None + Low // Low + Medium // Medium + High // High + Critical // Critical +) diff --git a/cvss/severity_string.go b/cvss/severity_string.go new file mode 100644 index 0000000..8155fa2 --- /dev/null +++ b/cvss/severity_string.go @@ -0,0 +1,27 @@ +// Code generated by "stringer -linecomment -type=Severity"; DO NOT EDIT. + +package cvss + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[None-0] + _ = x[Low-1] + _ = x[Medium-2] + _ = x[High-3] + _ = x[Critical-4] +} + +const _Severity_name = "NoneLowMediumHighCritical" + +var _Severity_index = [...]uint8{0, 4, 7, 13, 17, 25} + +func (i Severity) String() string { + if i >= Severity(len(_Severity_index)-1) { + return "Severity(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _Severity_name[_Severity_index[i]:_Severity_index[i+1]] +} diff --git a/cvss/severity_test.go b/cvss/severity_test.go new file mode 100644 index 0000000..632736d --- /dev/null +++ b/cvss/severity_test.go @@ -0,0 +1,26 @@ +package cvss + +import "testing" + +func TestSeverityString(t *testing.T) { + tests := []struct { + val Severity + exp string + } { + { None, "None" }, + { Low, "Low" }, + { Medium, "Medium" }, + { High, "High" }, + { Critical, "Critical" }, + { Severity(255), "Severity(255)" }, + } + + for _, test := range(tests) { + t.Run(test.exp, func(t *testing.T) { + got := test.val.String() + if got != test.exp { + t.Errorf("got \"%s\", exp \"%s\"", got, test.exp) + } + }) + } +} -- cgit v1.2.3