mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
kubeadm: added unit test for app/preflight pkg
This commit is contained in:
parent
569da52204
commit
a5919a9340
@ -200,7 +200,7 @@ func RunInitMasterChecks(cfg *kubeadmapi.MasterConfiguration) error {
|
|||||||
InPathCheck{executable: "touch", mandatory: false},
|
InPathCheck{executable: "touch", mandatory: false},
|
||||||
}
|
}
|
||||||
|
|
||||||
return runChecks(checks)
|
return runChecks(checks, os.Stderr)
|
||||||
}
|
}
|
||||||
|
|
||||||
func RunJoinNodeChecks() error {
|
func RunJoinNodeChecks() error {
|
||||||
@ -223,7 +223,7 @@ func RunJoinNodeChecks() error {
|
|||||||
InPathCheck{executable: "touch", mandatory: false},
|
InPathCheck{executable: "touch", mandatory: false},
|
||||||
}
|
}
|
||||||
|
|
||||||
return runChecks(checks)
|
return runChecks(checks, os.Stderr)
|
||||||
}
|
}
|
||||||
|
|
||||||
func RunResetCheck() error {
|
func RunResetCheck() error {
|
||||||
@ -231,17 +231,17 @@ func RunResetCheck() error {
|
|||||||
IsRootCheck{root: true},
|
IsRootCheck{root: true},
|
||||||
}
|
}
|
||||||
|
|
||||||
return runChecks(checks)
|
return runChecks(checks, os.Stderr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// runChecks runs each check, displays it's warnings/errors, and once all
|
// runChecks runs each check, displays it's warnings/errors, and once all
|
||||||
// are processed will exit if any errors occurred.
|
// are processed will exit if any errors occurred.
|
||||||
func runChecks(checks []PreFlightCheck) error {
|
func runChecks(checks []PreFlightCheck, ww io.Writer) error {
|
||||||
found := []error{}
|
found := []error{}
|
||||||
for _, c := range checks {
|
for _, c := range checks {
|
||||||
warnings, errs := c.Check()
|
warnings, errs := c.Check()
|
||||||
for _, w := range warnings {
|
for _, w := range warnings {
|
||||||
fmt.Printf("WARNING: %s\n", w)
|
io.WriteString(ww, fmt.Sprintf("WARNING: %s\n", w))
|
||||||
}
|
}
|
||||||
for _, e := range errs {
|
for _, e := range errs {
|
||||||
found = append(found, e)
|
found = append(found, e)
|
||||||
|
68
cmd/kubeadm/app/preflight/checks_test.go
Normal file
68
cmd/kubeadm/app/preflight/checks_test.go
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2016 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package preflight
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
type preflightCheckTest struct {
|
||||||
|
msg string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pfct preflightCheckTest) Check() (warning, errors []error) {
|
||||||
|
if pfct.msg == "warning" {
|
||||||
|
return []error{fmt.Errorf("warning")}, nil
|
||||||
|
}
|
||||||
|
if pfct.msg != "" {
|
||||||
|
return nil, []error{fmt.Errorf("fake error")}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestRunChecks(t *testing.T) {
|
||||||
|
var tokenTest = []struct {
|
||||||
|
p []PreFlightCheck
|
||||||
|
expected bool
|
||||||
|
output string
|
||||||
|
}{
|
||||||
|
{[]PreFlightCheck{}, true, ""},
|
||||||
|
{[]PreFlightCheck{preflightCheckTest{"warning"}}, true, "WARNING: warning\n"}, // should just print warning
|
||||||
|
{[]PreFlightCheck{preflightCheckTest{"error"}}, false, ""},
|
||||||
|
{[]PreFlightCheck{preflightCheckTest{"test"}}, false, ""},
|
||||||
|
}
|
||||||
|
for _, rt := range tokenTest {
|
||||||
|
buf := new(bytes.Buffer)
|
||||||
|
actual := runChecks(rt.p, buf)
|
||||||
|
if (actual == nil) != rt.expected {
|
||||||
|
t.Errorf(
|
||||||
|
"failed runChecks:\n\texpected: %t\n\t actual: %t",
|
||||||
|
rt.expected,
|
||||||
|
(actual == nil),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if buf.String() != rt.output {
|
||||||
|
t.Errorf(
|
||||||
|
"failed runChecks:\n\texpected: %s\n\t actual: %s",
|
||||||
|
rt.output,
|
||||||
|
buf.String(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user