<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/docker-playground/+/23123">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">kernel-test: add KERNEL_TEST_KVM env var<br><br>Allow to disable KVM, as the jenkins nodes apparently don't support it.<br>This makes the tests run a bit slower, but not much.<br><br>Related: OS#3208<br>Change-Id: I1f337af1e2de6db05b22636bc31a535404235559<br>---<br>M README.md<br>M jenkins-common.sh<br>M scripts/kernel-test/run-qemu.sh<br>M ttcn3-ggsn-test/jenkins.sh<br>4 files changed, 25 insertions(+), 3 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/23/23123/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/README.md b/README.md</span><br><span>index 27a589e..6a9f4b9 100644</span><br><span>--- a/README.md</span><br><span>+++ b/README.md</span><br><span>@@ -35,6 +35,7 @@</span><br><span> </span><br><span> Environment variables:</span><br><span> * `KERNEL_TEST`: set to 1 to run the SUT in QEMU</span><br><span style="color: hsl(120, 100%, 40%);">+* `KERNEL_TEST_KVM`: set to 0 to disable KVM acceleration</span><br><span> * `KERNEL_BUILD`: set to 1 to build the kernel instead of using the</span><br><span>   pre-built one</span><br><span> * `KERNEL_REMOTE_NAME`: git remote name (to add multiple git</span><br><span>diff --git a/jenkins-common.sh b/jenkins-common.sh</span><br><span>index 6c54109..e19b321 100644</span><br><span>--- a/jenkins-common.sh</span><br><span>+++ b/jenkins-common.sh</span><br><span>@@ -194,6 +194,12 @@</span><br><span>   trap clean_up_common EXIT INT TERM 0</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+docker_kvm_param() {</span><br><span style="color: hsl(120, 100%, 40%);">+   if [ "$KERNEL_TEST_KVM" != 0 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+                echo "--device /dev/kvm:/dev/kvm"</span><br><span style="color: hsl(120, 100%, 40%);">+   fi</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # Generate the initrd, and optionally build a kernel, for tests that involve</span><br><span> # kernel modules. Boot the kernel once in QEMU inside docker to verify that it</span><br><span> # works. See README.md for description of the KERNEL_* environment variables.</span><br><span>@@ -212,6 +218,11 @@</span><br><span>    local docker_image="$4"</span><br><span>    shift 4</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   if [ "$KERNEL_TEST_KVM" != 0 ] && ! [ -e /dev/kvm ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+           echo "ERROR: /dev/kvm not found! Consider running with: KERNEL_TEST_KVM=0"</span><br><span style="color: hsl(120, 100%, 40%);">+          exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+        fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         mkdir -p "$CACHE_DIR/kernel-test"</span><br><span> </span><br><span>      cp "$kernel_config_fragment" \</span><br><span>@@ -221,7 +232,7 @@</span><br><span> </span><br><span>   docker run \</span><br><span>                 --cap-add=NET_ADMIN \</span><br><span style="color: hsl(0, 100%, 40%);">-           --device /dev/kvm:/dev/kvm \</span><br><span style="color: hsl(120, 100%, 40%);">+          $(docker_kvm_param) \</span><br><span>                --device /dev/net/tun:/dev/net/tun \</span><br><span>                 -v "$CACHE_DIR:/cache" \</span><br><span>           -v "$KERNEL_TEST_DIR:/kernel-test:ro" \</span><br><span>diff --git a/scripts/kernel-test/run-qemu.sh b/scripts/kernel-test/run-qemu.sh</span><br><span>index 0a1824f..1873af4 100755</span><br><span>--- a/scripts/kernel-test/run-qemu.sh</span><br><span>+++ b/scripts/kernel-test/run-qemu.sh</span><br><span>@@ -13,8 +13,14 @@</span><br><span>      $@</span><br><span> "</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+if [ -e /dev/kvm ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+    MACHINE_ARG="-machine pc,accel=kvm"</span><br><span style="color: hsl(120, 100%, 40%);">+else</span><br><span style="color: hsl(120, 100%, 40%);">+   MACHINE_ARG="-machine pc"</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> qemu-system-x86_64 \</span><br><span style="color: hsl(0, 100%, 40%);">-       -machine pc,accel=kvm \</span><br><span style="color: hsl(120, 100%, 40%);">+       $MACHINE_ARG \</span><br><span>       -smp 1 \</span><br><span>     -m 512M \</span><br><span>    -nodefconfig -no-user-config -nodefaults -display none \</span><br><span>diff --git a/ttcn3-ggsn-test/jenkins.sh b/ttcn3-ggsn-test/jenkins.sh</span><br><span>index c6ea729..1881d59 100755</span><br><span>--- a/ttcn3-ggsn-test/jenkins.sh</span><br><span>+++ b/ttcn3-ggsn-test/jenkins.sh</span><br><span>@@ -41,7 +41,7 @@</span><br><span>    GGSN_CMD="/kernel-test/run-qemu.sh"</span><br><span>        GGSN_DOCKER_ARGS="</span><br><span>              $(docker_network_params $SUBNET 200)</span><br><span style="color: hsl(0, 100%, 40%);">-            --device /dev/kvm:/dev/kvm</span><br><span style="color: hsl(120, 100%, 40%);">+            $(docker_kvm_param) \</span><br><span>                -v "$KERNEL_TEST_DIR:/kernel-test:ro"</span><br><span>              -v "$CACHE_DIR:/cache"</span><br><span>             "</span><br><span>@@ -64,6 +64,10 @@</span><br><span>          $REPO_USER/osmo-ggsn-$IMAGE_SUFFIX \</span><br><span>                 /bin/sh -c "$GGSN_CMD >/data/osmo-ggsn.log 2>&1"</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+if [ "$KERNEL_TEST" = 1 ] && [ "$KERNEL_TEST_KVM" = 0 ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+   sleep 5</span><br><span style="color: hsl(120, 100%, 40%);">+fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> # start docker container with testsuite in foreground</span><br><span> docker run    --rm \</span><br><span>               --sysctl net.ipv6.conf.all.disable_ipv6=0 \</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/docker-playground/+/23123">change 23123</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/docker-playground/+/23123"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: docker-playground </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I1f337af1e2de6db05b22636bc31a535404235559 </div>
<div style="display:none"> Gerrit-Change-Number: 23123 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>