summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-12-05 22:15:43 +0100
committerLennart Poettering <lennart@poettering.net>2018-12-07 12:25:24 +0100
commitbf246ba00ee70b46f6f52483382aad7c383d0c3a (patch)
treebd3ed39fe0774bf4b0ba668fef50d3cbecd70c08
parent0373fc5b6f8478aa5d07458a7c2267a5b26daa1d (diff)
downloadsystemd-bf246ba00ee70b46f6f52483382aad7c383d0c3a.tar.gz
networkd-test: add mkosi snippet for building and running networkd-tets.py in a network namespaced container
This provides us with an easy command line to test this script. Because the test was so difficult to get running noone ever did, hence it broke badly quickly. Let's fix that.
-rwxr-xr-xtest/mkosi.build.networkd-test24
-rw-r--r--test/mkosi.default.networkd-test80
-rw-r--r--test/mkosi.nspawn.networkd-test2
3 files changed, 106 insertions, 0 deletions
diff --git a/test/mkosi.build.networkd-test b/test/mkosi.build.networkd-test
new file mode 100755
index 0000000000..cdaa4302f7
--- /dev/null
+++ b/test/mkosi.build.networkd-test
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -ex
+
+# First, source in the main build script
+. "$SRCDIR"/mkosi.build
+
+mkdir -p "$DESTDIR"/usr/local/bin
+cp "$SRCDIR"/test/networkd-test.py "$DESTDIR"/usr/local/bin/networkd-test.py
+
+mkdir -p "$DESTDIR"/etc/systemd/system
+cat > "$DESTDIR"/etc/systemd/system/networkd-test.service <<EOF
+[Unit]
+Description=networkd test service
+SuccessAction=exit
+FailureAction=exit
+
+[Service]
+ExecStart=/usr/local/bin/networkd-test.py
+EOF
+
+mkdir -p "$DESTDIR"/etc/systemd/system/multi-user.target.wants/
+ln -s ../networkd-test.service "$DESTDIR"/etc/systemd/system/multi-user.target.wants/
+
+systemctl --root="$DESTDIR" disable systemd-networkd.service
diff --git a/test/mkosi.default.networkd-test b/test/mkosi.default.networkd-test
new file mode 100644
index 0000000000..9630d3ec42
--- /dev/null
+++ b/test/mkosi.default.networkd-test
@@ -0,0 +1,80 @@
+# Puts together an nspawn container and runs networkd-test.py in it, inside a
+# network namespace and everything. Run this with "mkosi
+# --default=mkosi.default.networkd-test boot". This will start the test and
+# eventually exit with sucess in case the test succeeded.
+
+[Distribution]
+Distribution=fedora
+Release=29
+
+[Output]
+Format=raw_btrfs
+Bootable=yes
+KernelCommandLine=printk.devkmsg=on
+OutputDirectory=../mkosi.output
+Output=networkd-test.raw
+
+[Partitions]
+RootSize=3G
+
+[Packages]
+BuildPackages=
+ audit-libs-devel
+ bzip2-devel
+ cryptsetup-devel
+ dbus-devel
+ diffutils
+ docbook-style-xsl
+ elfutils-devel
+ gcc
+ gettext
+ git
+ gnu-efi
+ gnu-efi-devel
+ gnutls-devel
+ gperf
+ hostname
+ iptables-devel
+ kmod-devel
+ libacl-devel
+ libblkid-devel
+ libcap-devel
+ libcurl-devel
+ libgcrypt-devel
+ libidn2-devel
+ libmicrohttpd-devel
+ libmount-devel
+ libseccomp-devel
+ libselinux-devel
+ libtool
+ libxkbcommon-devel
+ libxslt
+ lz4
+ lz4-devel
+ m4
+ meson
+ pam-devel
+ pcre2-devel
+ pkgconfig
+ python3-devel
+ python3-lxml
+ qrencode-devel
+ tree
+ xz-devel
+
+Packages=
+ dnsmasq
+ iproute
+ libidn2
+ polkit
+ python3
+
+# Share caches with the top-level mkosi
+BuildDirectory=../mkosi.builddir
+Cache=../mkosi.cache
+
+# Run our own script
+BuildScript=mkosi.build.networkd-test
+
+BuildSources=..
+NSpawnSettings=mkosi.nspawn.networkd-test
diff --git a/test/mkosi.nspawn.networkd-test b/test/mkosi.nspawn.networkd-test
new file mode 100644
index 0000000000..a23aed6eda
--- /dev/null
+++ b/test/mkosi.nspawn.networkd-test
@@ -0,0 +1,2 @@
+[Network]
+Private=yes