Add a pod status equality method to the status manager.

This commit is contained in:
Prashanth Balasubramanian
2015-06-22 12:31:46 -07:00
parent 5f61392e6f
commit af175cc00b
4 changed files with 51 additions and 4 deletions

View File

@@ -17,6 +17,7 @@ limitations under the License.
package kubelet
import (
"fmt"
"math/rand"
"strconv"
"testing"
@@ -159,3 +160,35 @@ func TestSyncBatch(t *testing.T) {
}
verifyActions(t, syncer.kubeClient, []string{"get-pod", "update-status-pod"})
}
// shuffle returns a new shuffled list of container statuses.
func shuffle(statuses []api.ContainerStatus) []api.ContainerStatus {
numStatuses := len(statuses)
randIndexes := rand.Perm(numStatuses)
shuffled := make([]api.ContainerStatus, numStatuses)
for i := 0; i < numStatuses; i++ {
shuffled[i] = statuses[randIndexes[i]]
}
return shuffled
}
func TestStatusEquality(t *testing.T) {
containerStatus := []api.ContainerStatus{}
for i := 0; i < 10; i++ {
s := api.ContainerStatus{
Name: fmt.Sprintf("container%d", i),
}
containerStatus = append(containerStatus, s)
}
podStatus := api.PodStatus{
ContainerStatuses: containerStatus,
}
for i := 0; i < 10; i++ {
oldPodStatus := api.PodStatus{
ContainerStatuses: shuffle(podStatus.ContainerStatuses),
}
if !isStatusEqual(&oldPodStatus, &podStatus) {
t.Fatalf("Order of container statuses should not affect equality.")
}
}
}