feat: add the check_output_matches plugin #5

Merged
Emmanuel BENOîT merged 16 commits from tseeker/gomonop:20240720-line-matches into master 2024-07-20 22:57:10 +02:00
2 changed files with 44 additions and 4 deletions
Showing only changes of commit 1a35167eab - Show all commits

View file

@ -35,14 +35,22 @@ func New(label string, units UnitOfMeasurement, value string) *PerfData {
// Set the warning range for the performance data record. // Set the warning range for the performance data record.
func (d *PerfData) SetWarn(r *Range) { func (d *PerfData) SetWarn(r *Range) {
d.warn = *r if r == nil {
d.bits |= PDatWarn d.bits &^= PDatWarn
} else {
d.warn = *r
d.bits |= PDatWarn
}
} }
// Set the critical range for the performance data record. // Set the critical range for the performance data record.
func (d *PerfData) SetCrit(r *Range) { func (d *PerfData) SetCrit(r *Range) {
d.crit = *r if r == nil {
d.bits |= PDatCrit d.bits &^= PDatCrit
} else {
d.crit = *r
d.bits |= PDatCrit
}
} }
// Set the performance data's minimal value. // Set the performance data's minimal value.

View file

@ -50,6 +50,12 @@ func TestSetWarn(t *testing.T) {
assert.Equal(t, rangeStr, data.warn.String()) assert.Equal(t, rangeStr, data.warn.String())
} }
func TestSetWarnNil(t *testing.T) {
data := PerfData{}
data.SetWarn(nil)
assert.Equal(t, perfDataBits(0), data.bits&PDatWarn)
}
func TestSetWarnTwice(t *testing.T) { func TestSetWarnTwice(t *testing.T) {
range1Value := Range{start: "A", end: "B"} range1Value := Range{start: "A", end: "B"}
range2Value := Range{start: "C", end: "D"} range2Value := Range{start: "C", end: "D"}
@ -64,6 +70,16 @@ func TestSetWarnTwice(t *testing.T) {
assert.Equal(t, range2Str, data.warn.String()) assert.Equal(t, range2Str, data.warn.String())
} }
func TestSetWarnClear(t *testing.T) {
range1Value := Range{start: "A", end: "B"}
data := PerfData{}
data.SetWarn(&range1Value)
data.SetWarn(nil)
assert.Equal(t, perfDataBits(0), data.bits&PDatWarn)
}
func TestSetCrit(t *testing.T) { func TestSetCrit(t *testing.T) {
rangeValue := Range{start: "A", end: "B"} rangeValue := Range{start: "A", end: "B"}
rangeStr := rangeValue.String() rangeStr := rangeValue.String()
@ -75,6 +91,12 @@ func TestSetCrit(t *testing.T) {
assert.Equal(t, rangeStr, data.crit.String()) assert.Equal(t, rangeStr, data.crit.String())
} }
func TestSetCritNil(t *testing.T) {
data := PerfData{}
data.SetCrit(nil)
assert.Equal(t, perfDataBits(0), data.bits&PDatCrit)
}
func TestSetCritTwice(t *testing.T) { func TestSetCritTwice(t *testing.T) {
range1Value := Range{start: "A", end: "B"} range1Value := Range{start: "A", end: "B"}
range2Value := Range{start: "C", end: "D"} range2Value := Range{start: "C", end: "D"}
@ -89,6 +111,16 @@ func TestSetCritTwice(t *testing.T) {
assert.Equal(t, range2Str, data.crit.String()) assert.Equal(t, range2Str, data.crit.String())
} }
func TestSetCritClear(t *testing.T) {
range1Value := Range{start: "A", end: "B"}
data := PerfData{}
data.SetCrit(&range1Value)
data.SetCrit(nil)
assert.Equal(t, perfDataBits(0), data.bits&PDatCrit)
}
func TestSetMin(t *testing.T) { func TestSetMin(t *testing.T) {
const min = "100" const min = "100"