diff --git a/hack/lib/test.sh b/hack/lib/test.sh index 99c5847f923..bb694b3f12d 100644 --- a/hack/lib/test.sh +++ b/hack/lib/test.sh @@ -26,6 +26,8 @@ kube::test::clear_all() { kubectl delete "${kube_flags[@]}" rc,pods --all --grace-period=0 } +# Force exact match of a returned result for a object query. Wrap this with || to support multiple +# valid return types. kube::test::get_object_assert() { local object=$1 local request=$2 diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 3ee6cf14af4..d3c344a706e 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -1724,9 +1724,16 @@ __EOF__ kube::log::status "Testing resource aliasing" kubectl create -f examples/cassandra/cassandra-controller.yaml "${kube_flags[@]}" kubectl create -f examples/cassandra/cassandra-service.yaml "${kube_flags[@]}" - kube::test::get_object_assert "all -l'app=cassandra'" "{{range.items}}{{range .metadata.labels}}{{.}}:{{end}}{{end}}" 'cassandra:cassandra:cassandra:cassandra:' - kubectl delete all -l app=cassandra "${kube_flags[@]}" + object="all -l'app=cassandra'" + request="{{range.items}}{{range .metadata.labels}}{{.}}:{{end}}{{end}}" + + # all 4 cassandra's might not be in the request immediately... + kube::test::get_object_assert "$object" "$request" 'cassandra:cassandra:cassandra:cassandra:' || \ + kube::test::get_object_assert "$object" "$request" 'cassandra:cassandra:cassandra:' || \ + kube::test::get_object_assert "$object" "$request" 'cassandra:cassandra:' + + kubectl delete all -l app=cassandra "${kube_flags[@]}" ########### # Explain #