diff options
author | Ed Santiago <santiago@redhat.com> | 2020-02-26 09:17:13 -0700 |
---|---|---|
committer | Ed Santiago <santiago@redhat.com> | 2020-03-02 13:19:42 -0700 |
commit | 56120894125b0859a81af2f96062157465b56e87 (patch) | |
tree | b9ca20ae31bb4f884ae7818a08004b5af55dced4 | |
parent | 47c4ea39196cedac87e7a4e4c1ead54ed9d7ed50 (diff) | |
download | podman-56120894125b0859a81af2f96062157465b56e87.tar.gz podman-56120894125b0859a81af2f96062157465b56e87.tar.bz2 podman-56120894125b0859a81af2f96062157465b56e87.zip |
CI: add API v2 tests
API v2 has been quiet for a few days, and the test script is
actually passing. Let's take advantage of this opportunity
to get them running in CI.
Requires adding a check for cgroupsv2
Signed-off-by: Ed Santiago <santiago@redhat.com>
-rw-r--r-- | .cirrus.yml | 2 | ||||
-rw-r--r-- | Makefile | 8 | ||||
l--------- | contrib/cirrus/apiv2_test.sh | 1 | ||||
-rw-r--r-- | test/apiv2/01-basic.at | 12 | ||||
-rw-r--r-- | test/apiv2/40-pods.at | 3 | ||||
-rwxr-xr-x | test/apiv2/test-apiv2 | 6 |
6 files changed, 28 insertions, 4 deletions
diff --git a/.cirrus.yml b/.cirrus.yml index 2106ac96d..151153b14 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -398,6 +398,7 @@ testing_task: unit_test_script: '$SCRIPT_BASE/unit_test.sh |& ${TIMESTAMP}' integration_test_script: '$SCRIPT_BASE/integration_test.sh |& ${TIMESTAMP}' system_test_script: '$SCRIPT_BASE/system_test.sh |& ${TIMESTAMP}' + apiv2_test_script: '$SCRIPT_BASE/apiv2_test.sh |& ${TIMESTAMP}' build_release_script: '$SCRIPT_BASE/build_release.sh |& ${TIMESTAMP}' # For PRs this confirms uploading releases after merge, is functional. upload_release_archive_script: '$SCRIPT_BASE/upload_release_archive.sh |& ${TIMESTAMP}' @@ -447,6 +448,7 @@ special_testing_rootless_task: setup_environment_script: '$SCRIPT_BASE/setup_environment.sh |& ${TIMESTAMP}' integration_test_script: '$SCRIPT_BASE/integration_test.sh |& ${TIMESTAMP}' system_test_script: '$SCRIPT_BASE/system_test.sh |& ${TIMESTAMP}' + apiv2_test_script: '$SCRIPT_BASE/apiv2_test.sh |& ${TIMESTAMP}' on_failure: failed_branch_script: '$CIRRUS_WORKING_DIR/$SCRIPT_BASE/notice_branch_failure.sh' @@ -346,6 +346,14 @@ remotesystem: fi;\ exit $$rc +.PHONY: localapiv2 +localapiv2: + env PODMAN=./bin/podman ./test/apiv2/test-apiv2 + +.PHONY: remoteapiv2 +remoteapiv2: + true + .PHONY: system.test-binary system.test-binary: .install.ginkgo $(GO) test -c ./test/system diff --git a/contrib/cirrus/apiv2_test.sh b/contrib/cirrus/apiv2_test.sh new file mode 120000 index 000000000..cbc481d6b --- /dev/null +++ b/contrib/cirrus/apiv2_test.sh @@ -0,0 +1 @@ +integration_test.sh
\ No newline at end of file diff --git a/test/apiv2/01-basic.at b/test/apiv2/01-basic.at index b8a049cdf..0e94ddb7a 100644 --- a/test/apiv2/01-basic.at +++ b/test/apiv2/01-basic.at @@ -41,10 +41,16 @@ t GET libpod/containers/create 405 # # system info # +# Some day perhaps it will always be runc; for now, cgroupsv2 requires crun +# # FIXME: run 'podman info --format=json', and compare select fields -t GET info 200 \ - .OSType=linux \ - .DefaultRuntime=runc \ +runtime=runc +if have_cgroupsv2; then + runtime=crun +fi +t GET info 200 \ + .OSType=linux \ + .DefaultRuntime~.*$runtime \ .MemTotal~[0-9]\\+ # Timing: make sure server stays responsive diff --git a/test/apiv2/40-pods.at b/test/apiv2/40-pods.at index 8b5651cff..ab345b8f2 100644 --- a/test/apiv2/40-pods.at +++ b/test/apiv2/40-pods.at @@ -23,9 +23,10 @@ t POST libpod/pods/create name=foo 409 .cause="pod already exists" #t POST libpod/pods/create a=b 400 .cause='bad parameter' # FIXME: unimplemented -if root; then +if root || have_cgroupsv2; then t POST libpod/pods/foo/pause '' 204 else + # Rootless cgroupsv1 : unsupported t POST libpod/pods/foo/pause '' 500 \ .cause="this container does not have a cgroup" \ .message~".*pause pods containing rootless containers with cgroup V1" diff --git a/test/apiv2/test-apiv2 b/test/apiv2/test-apiv2 index bc2ed142c..f0fb4ae34 100755 --- a/test/apiv2/test-apiv2 +++ b/test/apiv2/test-apiv2 @@ -290,6 +290,12 @@ function rootless() { test "$ROOTLESS" = "true" } +# True if cgroups v2 are enabled +function have_cgroupsv2() { + cgroup_type=$(stat -f -c %T /sys/fs/cgroup) + test "$cgroup_type" = "cgroup2fs" +} + # END infrastructure code ############################################################################### # BEGIN sanity checks |