Enable integration tests in cgroupv2 env
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 #2299, #2305) 2. Tests in events.bats do not work (need cgroupv2 memory.events support) 3. Fedora 31 image is 6 months old (and has broken container-selinux policy) so we need `dnf update`, which adds ~5 min to test time. [v2: add -t to ssh to enforce pty] [v3: disable events tests for cgroupv2] [v4: update fedora packages, use a single dnf transation] Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
parent
0965c970fa
commit
84583eb1a4
|
@ -34,6 +34,8 @@ matrix:
|
||||||
- sudo ssh default sudo podman build -t test /vagrant
|
- 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
|
# 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
|
- sudo ssh default sudo podman run --privileged --cgroupns=private -v /lib/modules:/lib/modules:ro test make localunittest
|
||||||
|
# cgroupv2+systemd: test on vagrant host itself as we need systemd
|
||||||
|
- sudo ssh default -t 'cd /vagrant && sudo make localintegration RUNC_USE_SYSTEMD=yes'
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- go: tip
|
- go: tip
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,12 @@ Vagrant.configure("2") do |config|
|
||||||
v.cpus = 2
|
v.cpus = 2
|
||||||
end
|
end
|
||||||
config.vm.provision "shell", inline: <<-SHELL
|
config.vm.provision "shell", inline: <<-SHELL
|
||||||
dnf install -y podman
|
cat << EOF | dnf -y shell
|
||||||
|
config install_weak_deps: False
|
||||||
|
update
|
||||||
|
install podman make golang-go libseccomp-devel bats jq
|
||||||
|
ts run
|
||||||
|
EOF
|
||||||
|
dnf clean all
|
||||||
SHELL
|
SHELL
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,7 +13,8 @@ function teardown() {
|
||||||
|
|
||||||
@test "events --stats" {
|
@test "events --stats" {
|
||||||
# XXX: currently cgroups require root containers.
|
# XXX: currently cgroups require root containers.
|
||||||
requires root
|
# TODO: support cgroup v2 memory.events
|
||||||
|
requires root cgroups_v1
|
||||||
|
|
||||||
# run busybox detached
|
# run busybox detached
|
||||||
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
|
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
|
||||||
|
@ -28,7 +29,8 @@ function teardown() {
|
||||||
|
|
||||||
@test "events --interval default " {
|
@test "events --interval default " {
|
||||||
# XXX: currently cgroups require root containers.
|
# XXX: currently cgroups require root containers.
|
||||||
requires root
|
# TODO: support cgroup v2 memory.events
|
||||||
|
requires root cgroups_v1
|
||||||
|
|
||||||
# run busybox detached
|
# run busybox detached
|
||||||
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
|
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
|
||||||
|
@ -55,7 +57,8 @@ function teardown() {
|
||||||
|
|
||||||
@test "events --interval 1s " {
|
@test "events --interval 1s " {
|
||||||
# XXX: currently cgroups require root containers.
|
# XXX: currently cgroups require root containers.
|
||||||
requires root
|
# TODO: support cgroup v2 memory.events
|
||||||
|
requires root cgroups_v1
|
||||||
|
|
||||||
# run busybox detached
|
# run busybox detached
|
||||||
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
|
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
|
||||||
|
@ -81,7 +84,8 @@ function teardown() {
|
||||||
|
|
||||||
@test "events --interval 100ms " {
|
@test "events --interval 100ms " {
|
||||||
# XXX: currently cgroups require root containers.
|
# XXX: currently cgroups require root containers.
|
||||||
requires root
|
# TODO: support cgroup v2 memory.events
|
||||||
|
requires root cgroups_v1
|
||||||
|
|
||||||
# run busybox detached
|
# run busybox detached
|
||||||
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
|
runc run -d --console-socket $CONSOLE_SOCKET test_busybox
|
||||||
|
|
Loading…
Reference in New Issue