aboutsummaryrefslogtreecommitdiff
path: root/test
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 /test
parentnetworkd-test: change test_transient_hostname_with_static to use an explicit ... (diff)
downloadsystemd-bf246ba00ee70b46f6f52483382aad7c383d0c3a.tar.gz
systemd-bf246ba00ee70b46f6f52483382aad7c383d0c3a.tar.bz2
systemd-bf246ba00ee70b46f6f52483382aad7c383d0c3a.zip
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.
Diffstat (limited to 'test')
-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 000000000..cdaa4302f
--- /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 000000000..9630d3ec4
--- /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 000000000..a23aed6ed
--- /dev/null
+++ b/test/mkosi.nspawn.networkd-test
@@ -0,0 +1,2 @@
+[Network]
+Private=yes