Skip to content

Commit

Permalink
Fix the output of partial result due to changed state logic and fix t…
Browse files Browse the repository at this point in the history
…ests (#86)

Co-authored-by: Lorenz Kästle <lorenz.kaestle@netways.de>
  • Loading branch information
RincewindsHat and Lorenz Kästle committed Jun 20, 2023
1 parent 44595b8 commit 8d3f6c6
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 21 deletions.
2 changes: 1 addition & 1 deletion result/overall.go
Expand Up @@ -39,7 +39,7 @@ type PartialResult struct {
}

func (s *PartialResult) String() string {
return fmt.Sprintf("[%s] %s", check.StatusText(s.state), s.Output)
return fmt.Sprintf("[%s] %s", check.StatusText(s.GetStatus()), s.Output)
}

// Deprecated: Will be removed in a future version, use Add() instead
Expand Down
60 changes: 40 additions & 20 deletions result/overall_test.go
Expand Up @@ -144,11 +144,12 @@ func ExampleOverall_withSubchecks() {
pd_list.Add(&example_perfdata)

subcheck := PartialResult{
state: check.OK,
Output: "Subcheck1 Test",
Perfdata: pd_list,
}

subcheck.SetState(check.OK)

overall.AddSubcheck(subcheck)
overall.AddOK("bla")

Expand Down Expand Up @@ -184,18 +185,19 @@ func TestOverall_withEnhancedSubchecks(t *testing.T) {
pd_list2.Add(&example_perfdata4)

subcheck := PartialResult{
state: check.OK,
stateSetExplicitely: true,
Output: "Subcheck1 Test",
Perfdata: pd_list,
Output: "Subcheck1 Test",
Perfdata: pd_list,
}

subcheck.SetState(check.OK)

subcheck2 := PartialResult{
state: check.Warning,
stateSetExplicitely: true,
Output: "Subcheck2 Test",
Perfdata: pd_list2,
Output: "Subcheck2 Test",
Perfdata: pd_list2,
}

subcheck2.SetState(check.Warning)

overall.AddSubcheck(subcheck)
overall.AddSubcheck(subcheck2)

Expand All @@ -215,13 +217,17 @@ func TestOverall_withSubchecks_Simple_Output(t *testing.T) {
var overall Overall

subcheck2 := PartialResult{
state: check.OK,
Output: "SubSubcheck",
}

subcheck2.SetState(check.OK)

subcheck := PartialResult{
state: check.OK,
Output: "PartialResult",
}

subcheck.SetState(check.OK)

subcheck.PartialResults = append(subcheck.PartialResults, subcheck2)

overall.AddSubcheck(subcheck)
Expand All @@ -240,14 +246,17 @@ func TestOverall_withSubchecks_Perfdata(t *testing.T) {
var overall Overall

subcheck2 := PartialResult{
state: check.OK,
Output: "SubSubcheck",
}

subcheck2.SetState(check.OK)

subcheck := PartialResult{
state: check.OK,
Output: "PartialResult",
}

subcheck.SetState(check.OK)

perf1 := perfdata.Perfdata{
Label: "foo",
Value: 3,
Expand Down Expand Up @@ -278,12 +287,15 @@ func TestOverall_withSubchecks_PartialResult(t *testing.T) {
var overall Overall

subcheck3 := PartialResult{
state: check.Critical,
Output: "SubSubSubcheck",
}

subcheck3.SetState(check.Critical)

subcheck2 := PartialResult{
Output: "SubSubcheck",
}

subcheck := PartialResult{
Output: "PartialResult",
}
Expand Down Expand Up @@ -313,7 +325,7 @@ func TestOverall_withSubchecks_PartialResult(t *testing.T) {

res := `states: ok=1
\_ [OK] PartialResult
\_ [OK] SubSubcheck
\_ [CRITICAL] SubSubcheck
\_ [CRITICAL] SubSubSubcheck
|foo=3 bar=300% baz=23B
`
Expand All @@ -326,21 +338,26 @@ func TestOverall_withSubchecks_PartialResultStatus(t *testing.T) {
var overall Overall

subcheck := PartialResult{
state: check.OK,
stateSetExplicitely: true,
Output: "Subcheck",
}

subcheck.SetState(check.OK)

subsubcheck := PartialResult{
state: check.Warning,
stateSetExplicitely: true,
Output: "SubSubcheck",
}

subsubcheck.SetState(check.Warning)

subsubsubcheck := PartialResult{
state: check.Critical,
stateSetExplicitely: true,
Output: "SubSubSubcheck",
}

subsubsubcheck.SetState(check.Critical)

subsubcheck.AddSubcheck(subsubsubcheck)
subcheck.AddSubcheck(subsubcheck)
overall.AddSubcheck(subcheck)
Expand All @@ -358,7 +375,6 @@ func TestSubchecksPerfdata(t *testing.T) {
var overall Overall

check1 := PartialResult{
state: check.OK,
Output: "Check1",
Perfdata: perfdata.PerfdataList{
&perfdata.Perfdata{
Expand All @@ -371,8 +387,10 @@ func TestSubchecksPerfdata(t *testing.T) {
},
},
}

check1.SetState(check.OK)

check2 := PartialResult{
state: check.Warning,
Output: "Check2",
Perfdata: perfdata.PerfdataList{
&perfdata.Perfdata{
Expand All @@ -382,6 +400,8 @@ func TestSubchecksPerfdata(t *testing.T) {
},
}

check2.SetState(check.Warning)

overall.AddSubcheck(check1)
overall.AddSubcheck(check2)

Expand Down

0 comments on commit 8d3f6c6

Please sign in to comment.