diff options
author | Paul Duncan <pabs@pablotron.org> | 2022-02-07 11:03:09 -0500 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2022-02-07 11:03:09 -0500 |
commit | 19bcc5e8df039f5de0f46fd6aa71e425a5e797bb (patch) | |
tree | d931dc7b113cd2f989d0afdde9adfa00e6aca3ba | |
parent | 5bc6072dd22038f8f0c3cf6cc8ed758293725a8f (diff) | |
download | cvez-19bcc5e8df039f5de0f46fd6aa71e425a5e797bb.tar.bz2 cvez-19bcc5e8df039f5de0f46fd6aa71e425a5e797bb.zip |
cvss: add severity and tests
-rw-r--r-- | cvss/severity.go | 16 | ||||
-rw-r--r-- | cvss/severity_string.go | 27 | ||||
-rw-r--r-- | cvss/severity_test.go | 26 |
3 files changed, 69 insertions, 0 deletions
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) + } + }) + } +} |