![]() * Wire generic context to better handle timeout * Add integration test for wait timeout * kubectl wait: Fix integration test always passing issue Currently, `kubectl wait` integration test always passes even if it gets an error. Problem is object check is done after errexit is turned off. This PR redirects error to output and correctly assures that object is expected status and if it is not, test should fail. |
||
---|---|---|
.. | ||
apply.sh | ||
apps.sh | ||
authentication.sh | ||
authorization.sh | ||
batch.sh | ||
certificate.sh | ||
convert.sh | ||
core.sh | ||
crd.sh | ||
create.sh | ||
debug.sh | ||
delete.sh | ||
diff.sh | ||
discovery.sh | ||
events.sh | ||
exec.sh | ||
generic-resources.sh | ||
get.sh | ||
help.sh | ||
kubeconfig.sh | ||
legacy-script.sh | ||
node-management.sh | ||
OWNERS | ||
plugins.sh | ||
proxy.sh | ||
rbac.sh | ||
README.md | ||
request-timeout.sh | ||
results.sh | ||
run.sh | ||
save-config.sh | ||
storage.sh | ||
template-output.sh | ||
version.sh | ||
wait.sh |
Kubernetes Command-Line Integration Test Suite
This document describes how you can use the Kubernetes command-line integration test-suite.
Running Tests
All Tests
To run this entire suite, execute make test-cmd
from the top level. This will import each file containing tests functions
Specific Tests
To run a subset of tests (e.g. run_deployment_tests
and run_impersonation_tests
), execute make test-cmd WHAT="deployment impersonation"
. Running specific
tests will not try and validate any required resources are available on the server.
Adding Tests
Test functions need to have the format run_*_tests
so they can be executed individually. Once a test has been added, insert a section in legacy-script.sh
like
######################
# Replica Sets #
######################
if kube::test::if_supports_resource "${replicasets}" ; then
record_command run_rs_tests
fi
Be sure to validate any supported resources required for the test by using the kube::test::if_supports_resource
function.
New File
If the test resides in a new file, source the file in the top of the legacy-script.sh
file by adding a new line in
source "${KUBE_ROOT}/test/cmd/apply.sh"
source "${KUBE_ROOT}/test/cmd/apps.sh"
source "${KUBE_ROOT}/test/cmd/authorization.sh"
source "${KUBE_ROOT}/test/cmd/batch.sh"
...
Please keep the order of the source list alphabetical.