Complete all Monitor tests
This commit is contained in:
parent
1280fbb7bd
commit
644d6bbc05
@ -215,3 +215,61 @@ func TestMonitorFailureExponential(t *testing.T) {
|
|||||||
log.Println("-----")
|
log.Println("-----")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TestMonitorCheck tests successful and failed commands and shell commands
|
||||||
|
func TestMonitorCheck(t *testing.T) {
|
||||||
|
type expected struct {
|
||||||
|
isSuccess bool
|
||||||
|
hasNotice bool
|
||||||
|
lastOutput string
|
||||||
|
}
|
||||||
|
cases := []struct {
|
||||||
|
monitor Monitor
|
||||||
|
expect expected
|
||||||
|
name string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
Monitor{Command: []string{"echo", "success"}},
|
||||||
|
expected{isSuccess: true, hasNotice: false, lastOutput: "success\n"},
|
||||||
|
"Test successful command",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Monitor{CommandShell: "echo success"},
|
||||||
|
expected{isSuccess: true, hasNotice: false, lastOutput: "success\n"},
|
||||||
|
"Test successful command shell",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Monitor{Command: []string{"total", "failure"}},
|
||||||
|
expected{isSuccess: false, hasNotice: true, lastOutput: ""},
|
||||||
|
"Test failed command",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Monitor{CommandShell: "total failure"},
|
||||||
|
expected{isSuccess: false, hasNotice: true, lastOutput: "sh: total: command not found\n"},
|
||||||
|
"Test failed command shell",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, c := range cases {
|
||||||
|
log.Printf("Testing case %s", c.name)
|
||||||
|
|
||||||
|
isSuccess, notice := c.monitor.Check()
|
||||||
|
if isSuccess != c.expect.isSuccess {
|
||||||
|
t.Errorf("Check(%v) (success), expected=%t actual=%t", c.name, c.expect.isSuccess, isSuccess)
|
||||||
|
log.Printf("Case failed: %s", c.name)
|
||||||
|
}
|
||||||
|
|
||||||
|
hasNotice := (notice != nil)
|
||||||
|
if hasNotice != c.expect.hasNotice {
|
||||||
|
t.Errorf("Check(%v) (notice), expected=%t actual=%t", c.name, c.expect.hasNotice, hasNotice)
|
||||||
|
log.Printf("Case failed: %s", c.name)
|
||||||
|
}
|
||||||
|
|
||||||
|
lastOutput := c.monitor.lastOutput
|
||||||
|
if lastOutput != c.expect.lastOutput {
|
||||||
|
t.Errorf("Check(%v) (output), expected=%v actual=%v", c.name, c.expect.lastOutput, lastOutput)
|
||||||
|
log.Printf("Case failed: %s", c.name)
|
||||||
|
}
|
||||||
|
log.Println("-----")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user