Skip to content

Commit

Permalink
Enable integration tests in cgroupv2 env
Browse files Browse the repository at this point in the history
Those needs to be run on the (Vagrant Fedora 31) host
(since we need real systemd running), and so we have
to have all the tools needed to compile runc and run
the tests.

The good news is Fedora packages a decent and recent release
of bats-core (1.1.0), which we can use (Debian does not),
and we can also use golang (currently 1.13.9) from Fedora.

The bad news are

 1. Currently cgroups tests are only working with
    RUNC_USE_SYSTEMD=yes (addressed by opencontainers#2299, opencontainers#2305)

 2. Some tests that are not yet working:

    - ps.bats with RUNC_USE_SYSTEMD=yes (investigating)
    - events.bats (need cgroupv2 memory.events support)

[v2: add -t to ssh to enforce pty]

Signed-off-by: Kir Kolyshkin <[email protected]>
  • Loading branch information
kolyshkin committed Apr 12, 2020
1 parent 4edb856 commit 1b11fce
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 5 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ matrix:
- sudo ssh default sudo podman build -t test /vagrant
# Mounting /lib/modules into the container is necessary as CRIU wants to load (via iptables) additional modules
- sudo ssh default sudo podman run --privileged --cgroupns=private -v /lib/modules:/lib/modules:ro test make localunittest
# Test on the vagrant host itself since we need systemd
- sudo ssh default -t 'cd /vagrant && sudo make localintegration RUNC_USE_SYSTEMD=yes'
allow_failures:
- go: tip

Expand Down
2 changes: 1 addition & 1 deletion Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ Vagrant.configure("2") do |config|
v.cpus = 2
end
config.vm.provision "shell", inline: <<-SHELL
dnf install -y podman
dnf install -y podman git-core make golang-go libseccomp-devel bats jq
SHELL
end
12 changes: 8 additions & 4 deletions tests/integration/events.bats
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ function teardown() {

@test "events --stats" {
# XXX: currently cgroups require root containers.
requires root
# TODO: support cgroup v2 memory.events
requires root cgroups_v1

# run busybox detached
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
Expand All @@ -28,7 +29,8 @@ function teardown() {

@test "events --interval default " {
# XXX: currently cgroups require root containers.
requires root
# TODO: support cgroup v2 memory.events
requires root cgroups_v1

# run busybox detached
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
Expand All @@ -55,7 +57,8 @@ function teardown() {

@test "events --interval 1s " {
# XXX: currently cgroups require root containers.
requires root
# TODO: support cgroup v2 memory.events
requires root cgroups_v1

# run busybox detached
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
Expand All @@ -81,7 +84,8 @@ function teardown() {

@test "events --interval 100ms " {
# XXX: currently cgroups require root containers.
requires root
# TODO: support cgroup v2 memory.events
requires root cgroups_v1

# run busybox detached
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
Expand Down
3 changes: 3 additions & 0 deletions tests/integration/ps.bats
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ function teardown() {
@test "ps" {
# ps is not supported, it requires cgroups
requires root
[ -n "${RUNC_USE_SYSTEMD}" ] && skip "test does not yet work with systemd"

# start busybox detached
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
Expand All @@ -31,6 +32,7 @@ function teardown() {
@test "ps -f json" {
# ps is not supported, it requires cgroups
requires root
[ -n "${RUNC_USE_SYSTEMD}" ] && skip "test does not yet work with systemd"

# start busybox detached
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
Expand All @@ -47,6 +49,7 @@ function teardown() {
@test "ps -e -x" {
# ps is not supported, it requires cgroups
requires root
[ -n "${RUNC_USE_SYSTEMD}" ] && skip "test does not yet work with systemd"

# start busybox detached
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
Expand Down

0 comments on commit 1b11fce

Please sign in to comment.