diff --git a/test/cmd/create.sh b/test/cmd/create.sh index fda8e148a1f..bf9bf4ebb61 100755 --- a/test/cmd/create.sh +++ b/test/cmd/create.sh @@ -154,6 +154,27 @@ run_kubectl_create_kustomization_directory_tests() { set +o errexit } +has_one_of_error_message() { + local message=$1 + local match1=$2 + local match2=$3 + + if (grep -q "${match1}" <<< "${message}") || (grep -q "${match2}" <<< "${message}"); then + echo "Successful" + echo "message:${message}" + echo "has either:${match1}" + echo "or:${match2}" + return 0 + else + echo "FAIL!" + echo "message:${message}" + echo "has neither:${match1}" + echo "nor:${match2}" + caller + return 1 + fi +} + # Runs tests related to kubectl create --validate run_kubectl_create_validate_tests() { set -o nounset @@ -165,7 +186,7 @@ run_kubectl_create_validate_tests() { kube::log::status "Testing kubectl create --validate=true" # create and verify output_message=$(! kubectl create -f hack/testdata/invalid-deployment-unknown-and-duplicate-fields.yaml --validate=true 2>&1) - kube::test::if_has_string "${output_message}" 'error validating data' + has_one_of_error_message "${output_message}" 'strict decoding error' 'error validating data' ## test --validate=false kube::log::status "Testing kubectl create --validate=false" @@ -179,7 +200,7 @@ run_kubectl_create_validate_tests() { kube::log::status "Testing kubectl create --validate=strict" # create and verify output_message=$(! kubectl create -f hack/testdata/invalid-deployment-unknown-and-duplicate-fields.yaml --validate=strict 2>&1) - kube::test::if_has_string "${output_message}" 'error validating data' + has_one_of_error_message "${output_message}" 'strict decoding error' 'error validating data' ## test --validate=warn kube::log::status "Testing kubectl create --validate=warn" @@ -201,7 +222,7 @@ run_kubectl_create_validate_tests() { kube::log::status "Testing kubectl create" # create and verify output_message=$(! kubectl create -f hack/testdata/invalid-deployment-unknown-and-duplicate-fields.yaml 2>&1) - kube::test::if_has_string "${output_message}" 'error validating data' + has_one_of_error_message "${output_message}" 'strict decoding error' 'error validating data' ## test invalid validate value kube::log::status "Testing kubectl create --validate=foo"