podman/test
baude f77bd95426 test/podman_networking.bats: kpod to podman
this test was still referring to KPOD_BINARY and not podman

Signed-off-by: baude <bbaude@redhat.com>

Closes: #235
Approved by: baude
2018-01-17 01:44:36 +00:00
..
bin2img Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
build Initial podman build 2017-12-23 11:47:33 +00:00
checkseccomp Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
copyimg Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
hooks Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
testdata Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
README.md Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
helpers.bash Initial podman build 2017-12-23 11:47:33 +00:00
podman_attach.bats Fix handling of exit codes 2018-01-04 21:05:10 +00:00
podman_build.bats Change name of kpod to podman 2018-01-04 21:37:19 +00:00
podman_commit.bats Shortname deletion continued 2018-01-08 20:12:20 +00:00
podman_create.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_diff.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_exec.bats Shortcut for most recent container 2018-01-08 19:12:17 +00:00
podman_export.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_history.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_images.bats Don't pull cached images 2018-01-08 15:44:49 +00:00
podman_import.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_inspect.bats Shortcut for most recent container 2018-01-08 19:12:17 +00:00
podman_kill.bats Shortcut for most recent container 2018-01-08 19:12:17 +00:00
podman_load.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_logs.bats Shortcut for most recent container 2018-01-08 19:12:17 +00:00
podman_mount.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_networking.bats test/podman_networking.bats: kpod to podman 2018-01-17 01:44:36 +00:00
podman_pause.bats Add removal failure test after unpause 2018-01-05 14:42:23 +00:00
podman_ps.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_pull.bats Rename all references to kpod to podman 2017-12-18 16:46:05 +00:00
podman_push.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_rm.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_rmi.bats Fix handling of exit codes 2018-01-04 21:05:10 +00:00
podman_run.bats Implement and test the following flags for podman run and create 2018-01-15 19:27:10 +00:00
podman_run_cpu.bats Implement and test the following flags for podman run and create 2018-01-15 19:27:10 +00:00
podman_run_device.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_run_exit.bats Fix handling of exit codes 2018-01-04 21:05:10 +00:00
podman_run_memory.bats Implement and test the following flags for podman run and create 2018-01-15 19:27:10 +00:00
podman_run_ns.bats Don't pull cached images 2018-01-08 15:44:49 +00:00
podman_save.bats Add default CNI configuration 2017-12-22 19:23:36 +00:00
podman_start.bats Fix handling of exit codes 2018-01-04 21:05:10 +00:00
podman_stats.bats Fix handling of exit codes 2018-01-04 21:05:10 +00:00
podman_stop.bats Shortcut for most recent container 2018-01-08 19:12:17 +00:00
podman_tag.bats Don't pull cached images 2018-01-08 15:44:49 +00:00
podman_top.bats Fix handling of exit codes 2018-01-04 21:05:10 +00:00
podman_version.bats Rename all references to kpod to podman 2017-12-18 16:46:05 +00:00
podman_wait.bats Add latest to wait 2018-01-08 22:44:38 +00:00
policy.json Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
redhat_sigstore.yaml Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
registries.conf Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
test_podman_build.sh Initial podman build 2017-12-23 11:47:33 +00:00
test_runner.sh Enhancements to papr tests 2017-11-17 02:07:18 +00:00

README.md

CRIO Integration Tests

Integration tests provide end-to-end testing of CRIO.

Note that integration tests do not replace unit tests.

As a rule of thumb, code should be tested thoroughly with unit tests. Integration tests on the other hand are meant to test a specific feature end to end.

Integration tests are written in bash using the bats framework.

Running integration tests

Containerized tests

The easiest way to run integration tests is with Docker:

$ make integration

To run a single test bucket:

$ make integration TESTFLAGS="runtimeversion.bats"

On your host

To run the integration tests on your host, you will first need to setup a development environment plus bats For example:

$ cd ~/go/src/github.com
$ git clone https://github.com/sstephenson/bats.git
$ cd bats
$ ./install.sh /usr/local

You will also need to install the CNI plugins as the the default pod test template runs without host networking:

$ go get github.com/containernetworking/cni
$ cd "$GOPATH/src/github.com/containernetworking/cni"
$ git checkout -q d4bbce1865270cd2d2be558d6a23e63d314fe769
$ ./build.sh \
$ mkdir -p /opt/cni/bin \
$ cp bin/* /opt/cni/bin/

Then you can run the tests on your host:

$ sudo make localintegration

To run a single test bucket:

$ make localintegration TESTFLAGS="runtimeversion.bats"

Or you can just run them directly using bats

$ sudo bats test

Runtime selection

Tests on the host will run with runc as the default runtime. However you can select other OCI compatible runtimes by setting the RUNTIME environment variable.

For example one could use the Clear Containers runtime instead of runc:

make localintegration RUNTIME=cc-oci-runtime

Writing integration tests

[Helper functions] (https://github.com/kubernetes-incubator/crio/blob/master/test/helpers.bash) are provided in order to facilitate writing tests.

#!/usr/bin/env bats

# This will load the helpers.
load helpers

# setup is called at the beginning of every test.
function setup() {
}

# teardown is called at the end of every test.
function teardown() {
	cleanup_test
}

@test "crioctl runtimeversion" {
	start_crio
	crioctl runtimeversion
	[ "$status" -eq 0 ]
}