summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@intel.com>2018-01-03 11:19:02 -0800
committerLucas De Marchi <lucas.demarchi@intel.com>2018-01-03 14:22:05 -0800
commit7bc6b67dc6e0394153974234722eaa35dcd445aa (patch)
tree7e3a1164ffc8a14da25663e6c1adad78a3f5e4bd
parent8d9c7e37c95da12bcff0e1ba21a45d3efb8b9041 (diff)
downloadkmod-7bc6b67dc6e0394153974234722eaa35dcd445aa.tar.gz
kmod-7bc6b67dc6e0394153974234722eaa35dcd445aa.tar.bz2
kmod-7bc6b67dc6e0394153974234722eaa35dcd445aa.zip
testsuite: generalize mkosi support for other distros
Instead of using the mkosi.default symlink, use an env var passed from the build system. We would need to pass the --default switch nonetheless or change the symlink, making the git tree dirty. Also, search for installed kernel headers in a way that's compatible with more distros. On Fedora, for example, the /usr/lib/modules/<kver>/build symlink is only available if there's a kernel installed. We don't care about a kernel installed since we don't need to boot it on a real machine: the only thing we need is the kernel-devel package.
-rw-r--r--Makefile.am4
-rw-r--r--testsuite/mkosi/.gitignore3
-rw-r--r--testsuite/mkosi/mkosi.arch3
-rwxr-xr-xtestsuite/mkosi/mkosi.build29
l---------testsuite/mkosi/mkosi.default1
5 files changed, 29 insertions, 11 deletions
diff --git a/Makefile.am b/Makefile.am
index 3ea4274..7b01201 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -503,6 +503,8 @@ tar-sync: kmod-$(VERSION).tar.xz kmod-$(VERSION).tar.sign
# mkosi
# ------------------------------------------------------------------------------
+DISTRO ?= "arch"
+
mkosi:
-$(MKDIR_P) $(top_srcdir)/testsuite/mkosi/mkosi.cache
- $(MKOSI) -C $(top_srcdir)/testsuite/mkosi --build-sources ../../ -fi
+ $(MKOSI) -C $(top_srcdir)/testsuite/mkosi --build-sources ../../ --default mkosi.${DISTRO} -fi
diff --git a/testsuite/mkosi/.gitignore b/testsuite/mkosi/.gitignore
index 024d05b..0e0981a 100644
--- a/testsuite/mkosi/.gitignore
+++ b/testsuite/mkosi/.gitignore
@@ -1,4 +1,3 @@
-/image.raw*
+/*-image.raw*
/.mkosi-*
/mkosi.cache
-/rootfs
diff --git a/testsuite/mkosi/mkosi.arch b/testsuite/mkosi/mkosi.arch
index 308dcdb..5ac0a45 100644
--- a/testsuite/mkosi/mkosi.arch
+++ b/testsuite/mkosi/mkosi.arch
@@ -2,6 +2,9 @@
Distribution=arch
Release=(rolling)
+[Output]
+Output = arch-image.raw
+
[Packages]
Packages = valgrind
BuildPackages =
diff --git a/testsuite/mkosi/mkosi.build b/testsuite/mkosi/mkosi.build
index a6b325f..53fc797 100755
--- a/testsuite/mkosi/mkosi.build
+++ b/testsuite/mkosi/mkosi.build
@@ -1,5 +1,26 @@
#!/bin/bash -ex
+function find_kdir() {
+ local kdirs=(/usr/lib/modules/*/build/Makefile /usr/src/kernels/*/Makefile)
+ local kdir=""
+
+ for f in "${kdirs[@]}"; do
+ if [ -f "$f" ]; then
+ kdir=$f
+ break
+ fi
+ done
+
+ if [ -z "$kdir" ]; then
+ printf '==> Unable to find kernel headers to build modules for tests\n' >&2
+ exit 1
+ fi
+
+ kdir=${kdir%/Makefile}
+
+ echo $kdir
+}
+
if [ -f configure ]; then
make distclean
fi
@@ -8,13 +29,7 @@ rm -rf build
mkdir build
cd build
-kdirs=(/usr/lib/modules/*/build/Makefile)
-if [[ ! -f ${kdirs[0]} ]]; then
- printf '==> Unable to find kernel headers to build modules for tests\n' >&2
- return 1
-fi
-
-kdir=${kdirs[0]%/Makefile}
+kdir=$(find_kdir)
IFS=/ read _ _ _ kver _ <<<"$kdir"
../autogen.sh c
diff --git a/testsuite/mkosi/mkosi.default b/testsuite/mkosi/mkosi.default
deleted file mode 120000
index 695b71a..0000000
--- a/testsuite/mkosi/mkosi.default
+++ /dev/null
@@ -1 +0,0 @@
-mkosi.arch \ No newline at end of file