mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 01:40:07 +00:00
Merge pull request #8336 from brendandburns/kubectl
Add a test for status message generation.
This commit is contained in:
commit
6144b49139
@ -364,7 +364,7 @@ func interpretContainerStatus(status *api.ContainerStatus) (string, string, stri
|
|||||||
if state != nil {
|
if state != nil {
|
||||||
message = fmt.Sprintf("exit code %d", state.ExitCode)
|
message = fmt.Sprintf("exit code %d", state.ExitCode)
|
||||||
if state.Reason != "" {
|
if state.Reason != "" {
|
||||||
message = fmt.Sprintf("%s, reason: %s", state.Reason)
|
message = fmt.Sprintf("%s, reason: %s", message, state.Reason)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return message
|
return message
|
||||||
@ -380,7 +380,11 @@ func interpretContainerStatus(status *api.ContainerStatus) (string, string, stri
|
|||||||
if message != "" {
|
if message != "" {
|
||||||
message = "last termination: " + message
|
message = "last termination: " + message
|
||||||
}
|
}
|
||||||
return "Running", translateTimestamp(state.Running.StartedAt), message, nil
|
stateMsg := "Running"
|
||||||
|
if !status.Ready {
|
||||||
|
stateMsg = stateMsg + " *not ready*"
|
||||||
|
}
|
||||||
|
return stateMsg, translateTimestamp(state.Running.StartedAt), message, nil
|
||||||
} else if state.Termination != nil {
|
} else if state.Termination != nil {
|
||||||
return "Terminated", translateTimestamp(state.Termination.StartedAt), getTermMsg(state.Termination), nil
|
return "Terminated", translateTimestamp(state.Termination.StartedAt), getTermMsg(state.Termination), nil
|
||||||
}
|
}
|
||||||
|
@ -756,3 +756,105 @@ func TestPrintHumanReadableService(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInterpretContainerStatus(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
status *api.ContainerStatus
|
||||||
|
expectedState string
|
||||||
|
expectedMessage string
|
||||||
|
expectErr bool
|
||||||
|
name string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
status: &api.ContainerStatus{
|
||||||
|
State: api.ContainerState{
|
||||||
|
Running: &api.ContainerStateRunning{},
|
||||||
|
},
|
||||||
|
Ready: true,
|
||||||
|
},
|
||||||
|
expectedState: "Running",
|
||||||
|
expectedMessage: "",
|
||||||
|
name: "basic",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
status: &api.ContainerStatus{
|
||||||
|
State: api.ContainerState{
|
||||||
|
Running: &api.ContainerStateRunning{},
|
||||||
|
},
|
||||||
|
Ready: false,
|
||||||
|
},
|
||||||
|
expectedState: "Running *not ready*",
|
||||||
|
expectedMessage: "",
|
||||||
|
name: "basic not ready",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
status: &api.ContainerStatus{
|
||||||
|
State: api.ContainerState{
|
||||||
|
Waiting: &api.ContainerStateWaiting{},
|
||||||
|
},
|
||||||
|
Ready: false,
|
||||||
|
},
|
||||||
|
expectedState: "Waiting",
|
||||||
|
expectedMessage: "",
|
||||||
|
name: "waiting not ready",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
status: &api.ContainerStatus{
|
||||||
|
State: api.ContainerState{
|
||||||
|
Waiting: &api.ContainerStateWaiting{},
|
||||||
|
},
|
||||||
|
Ready: true,
|
||||||
|
},
|
||||||
|
expectedState: "Waiting",
|
||||||
|
expectedMessage: "",
|
||||||
|
name: "waiting",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
status: &api.ContainerStatus{
|
||||||
|
State: api.ContainerState{
|
||||||
|
Termination: &api.ContainerStateTerminated{
|
||||||
|
ExitCode: 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Ready: false,
|
||||||
|
},
|
||||||
|
expectedState: "Terminated",
|
||||||
|
expectedMessage: "exit code 3",
|
||||||
|
name: "terminated not ready",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
status: &api.ContainerStatus{
|
||||||
|
State: api.ContainerState{
|
||||||
|
Termination: &api.ContainerStateTerminated{
|
||||||
|
ExitCode: 5,
|
||||||
|
Reason: "test reason",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Ready: true,
|
||||||
|
},
|
||||||
|
expectedState: "Terminated",
|
||||||
|
expectedMessage: "exit code 5, reason: test reason",
|
||||||
|
name: "terminated",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, test := range tests {
|
||||||
|
// TODO: test timestamp printing.
|
||||||
|
state, _, msg, err := interpretContainerStatus(test.status)
|
||||||
|
if test.expectErr && err == nil {
|
||||||
|
t.Errorf("unexpected non-error (%s)", test.name)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !test.expectErr && err != nil {
|
||||||
|
t.Errorf("unexpected error: %v (%s)", err, test.name)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if state != test.expectedState {
|
||||||
|
t.Errorf("expected: %s, got: %s", test.expectedState, state)
|
||||||
|
}
|
||||||
|
if msg != test.expectedMessage {
|
||||||
|
t.Errorf("expected: %s, got: %s", test.expectedMessage, msg)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user