2022-09-07 16:32:08 +00:00
|
|
|
package cleaner
|
2022-09-07 18:09:49 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/cyrilix/pod-cleaner/pkg/monitor"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestPodWatcher_Watch(t *testing.T) {
|
|
|
|
type fields struct {
|
|
|
|
logfile string
|
|
|
|
}
|
|
|
|
tests := []struct {
|
|
|
|
name string
|
|
|
|
fields fields
|
|
|
|
wantPodDir string
|
|
|
|
wantNumError int
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
name: "one error in file",
|
|
|
|
fields: fields{
|
|
|
|
logfile: "test_data/one-error.log",
|
|
|
|
},
|
|
|
|
wantPodDir: "/var/lib/kubelet/pods/1d4bfc07-3469-4eaa-992f-6d23c17f3aee",
|
|
|
|
wantNumError: 1,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: "no error",
|
|
|
|
fields: fields{
|
|
|
|
logfile: "test_data/no-error.log",
|
|
|
|
},
|
|
|
|
wantPodDir: "",
|
|
|
|
wantNumError: 0,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
w := NewPodWatcher(tt.fields.logfile)
|
|
|
|
w.m = monitor.New(monitor.WithTailFollow(false), monitor.WithReOpen(false))
|
|
|
|
w.Watch()
|
|
|
|
gotNumErr := w.GetNumErrors()
|
|
|
|
if gotNumErr != tt.wantNumError {
|
|
|
|
t.Errorf("PodWatcher_Watch(), bad numErrors found: %v, want %v", gotNumErr, tt.wantNumError)
|
|
|
|
}
|
|
|
|
gotPodDir := w.GetPodDirInError()
|
|
|
|
if gotPodDir != tt.wantPodDir {
|
|
|
|
t.Errorf("PodWatcher_Watch(), bad pod directory found: %v, want %v", gotPodDir, tt.wantPodDir)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|