diff mbox series

[2/2] testsuite: Handle different sysconfdir

Message ID 20230209191946.243317-2-lucas.de.marchi@gmail.com (mailing list archive)
State New, archived
Headers show
Series [1/2] testsuite: Move setup-rootfs logic from Makefile to script | expand

Commit Message

Lucas De Marchi Feb. 9, 2023, 7:19 p.m. UTC
Instead of skipping tests if sysconfdir isn't /etc, just handle it
during the rootfs setup logic.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
---
 Makefile.am                |  6 +-----
 configure.ac               |  3 ---
 testsuite/setup-rootfs.sh  |  8 ++++++++
 testsuite/test-blacklist.c |  3 ---
 testsuite/test-depmod.c    | 15 ---------------
 testsuite/test-modprobe.c  |  6 ------
 6 files changed, 9 insertions(+), 32 deletions(-)

Comments

Emil Velikov Feb. 10, 2023, 11:16 a.m. UTC | #1
On Thu, 9 Feb 2023 at 19:20, Lucas De Marchi <lucas.de.marchi@gmail.com> wrote:
>
> Instead of skipping tests if sysconfdir isn't /etc, just handle it
> during the rootfs setup logic.
>

Nice. I'm far from an expert in the kmod codebase but the series looks
good IMHO. For the two:
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>

SIde note: while looking through the Makefile.am I've noticed we're
doig manual SED substitution. Didn't look too closely but it should be
possible to:
 - add respective files to the AC_CONFIG_FILES section (barring .in suffix)
 - drop the explicit makefile rules, sed command and extra_dist/cleanfiles

Don't think I'll have the time to submit a patch, I'm literally on the
train right now heading out for a while.

HTH
Emil
Lucas De Marchi Feb. 10, 2023, 10:30 p.m. UTC | #2
On Fri, Feb 10, 2023 at 11:16:02AM +0000, Emil Velikov wrote:
>On Thu, 9 Feb 2023 at 19:20, Lucas De Marchi <lucas.de.marchi@gmail.com> wrote:
>>
>> Instead of skipping tests if sysconfdir isn't /etc, just handle it
>> during the rootfs setup logic.
>>
>
>Nice. I'm far from an expert in the kmod codebase but the series looks
>good IMHO. For the two:
>Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
>
>SIde note: while looking through the Makefile.am I've noticed we're
>doig manual SED substitution. Didn't look too closely but it should be
>possible to:
> - add respective files to the AC_CONFIG_FILES section (barring .in suffix)
> - drop the explicit makefile rules, sed command and extra_dist/cleanfiles
>
>Don't think I'll have the time to submit a patch, I'm literally on the
>train right now heading out for a while.

no rush, we can improve it later.

Applied both patches, thanks.

Lucas De Marchi

>
>HTH
>Emil
diff mbox series

Patch

diff --git a/Makefile.am b/Makefile.am
index 021b315..61dbdf0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -244,7 +244,7 @@  EXTRA_DIST += testsuite/setup-rootfs.sh
 MODULE_PLAYGROUND = testsuite/module-playground
 ROOTFS = testsuite/rootfs
 ROOTFS_PRISTINE = $(top_srcdir)/testsuite/rootfs-pristine
-CREATE_ROOTFS = $(AM_V_GEN) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h
+CREATE_ROOTFS = $(AM_V_GEN) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h $(sysconfdir)
 
 build-module-playground:
 	$(AM_V_GEN)if test "$(top_srcdir)" != "$(top_builddir)"; then \
@@ -330,10 +330,6 @@  TESTSUITE_LDADD = \
 	testsuite/libtestsuite.la libkmod/libkmod-internal.la \
 	shared/libshared.la
 
-if KMOD_SYSCONFDIR_NOT_ETC
-TESTSUITE_CPPFLAGS += -DKMOD_SYSCONFDIR_NOT_ETC
-endif
-
 check_LTLIBRARIES += testsuite/libtestsuite.la
 testsuite_libtestsuite_la_SOURCES = \
 	testsuite/testsuite.c testsuite/testsuite.h
diff --git a/configure.ac b/configure.ac
index 12e0518..892f5d9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -225,9 +225,6 @@  GTK_DOC_CHECK([1.14],[--flavour no-tmpl-flat])
 ], [
 AM_CONDITIONAL([ENABLE_GTK_DOC], false)])
 
-# Some tests are skipped when sysconfdir != /etc.
-AM_CONDITIONAL([KMOD_SYSCONFDIR_NOT_ETC], [test "x$sysconfdir" != "x/etc"])
-
 #####################################################################
 # Default CFLAGS and LDFLAGS
 #####################################################################
diff --git a/testsuite/setup-rootfs.sh b/testsuite/setup-rootfs.sh
index d155a30..4440ddc 100755
--- a/testsuite/setup-rootfs.sh
+++ b/testsuite/setup-rootfs.sh
@@ -6,6 +6,7 @@  ROOTFS_PRISTINE=$1
 ROOTFS=$2
 MODULE_PLAYGROUND=$3
 CONFIG_H=$4
+SYSCONFDIR=$5
 
 # create rootfs from rootfs-pristine
 
@@ -15,6 +16,13 @@  create_rootfs() {
 	cp -r "$ROOTFS_PRISTINE" "$ROOTFS"
 	find "$ROOTFS" -type d -exec chmod +w {} \;
 	find "$ROOTFS" -type f -name .gitignore -exec rm -f {} \;
+
+	if [ "$SYSCONFDIR" != "/etc" ]; then
+		find "$ROOTFS" -type d -name etc -printf "%h\n" | while read -r e; do
+			mkdir -p "$(dirname $e/$SYSCONFDIR)"
+			mv $e/{etc,$SYSCONFDIR}
+		done
+	fi
 }
 
 feature_enabled() {
diff --git a/testsuite/test-blacklist.c b/testsuite/test-blacklist.c
index d03eedb..969567d 100644
--- a/testsuite/test-blacklist.c
+++ b/testsuite/test-blacklist.c
@@ -95,9 +95,6 @@  fail_lookup:
 }
 
 DEFINE_TEST(blacklist_1,
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
-        .skip = true,
-#endif
 	.description = "check if modules are correctly blacklisted",
 	.config = {
 		[TC_ROOTFS] = TESTSUITE_ROOTFS "test-blacklist/",
diff --git a/testsuite/test-depmod.c b/testsuite/test-depmod.c
index d910459..9360694 100644
--- a/testsuite/test-depmod.c
+++ b/testsuite/test-depmod.c
@@ -41,9 +41,6 @@  static noreturn int depmod_modules_order_for_compressed(const struct test *t)
 }
 
 DEFINE_TEST(depmod_modules_order_for_compressed,
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
-        .skip = true,
-#endif
 	.description = "check if depmod let aliases in right order when using compressed modules",
 	.config = {
 		[TC_UNAME_R] = MODULES_UNAME,
@@ -74,9 +71,6 @@  static noreturn int depmod_modules_outdir(const struct test *t)
 }
 
 DEFINE_TEST(depmod_modules_outdir,
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
-        .skip = true,
-#endif
 	.description = "check if depmod honours the outdir option",
 	.config = {
 		[TC_UNAME_R] = MODULES_UNAME,
@@ -159,9 +153,6 @@  static noreturn int depmod_detect_loop(const struct test *t)
 	exit(EXIT_FAILURE);
 }
 DEFINE_TEST(depmod_detect_loop,
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
-        .skip = true,
-#endif
 	.description = "check if depmod detects module loops correctly",
 	.config = {
 		[TC_UNAME_R] = MODULES_UNAME,
@@ -186,9 +177,6 @@  static noreturn int depmod_search_order_external_first(const struct test *t)
 	exit(EXIT_FAILURE);
 }
 DEFINE_TEST(depmod_search_order_external_first,
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
-        .skip = true,
-#endif
 	.description = "check if depmod honor external keyword with higher priority",
 	.config = {
 		[TC_UNAME_R] = MODULES_UNAME,
@@ -243,9 +231,6 @@  static noreturn int depmod_search_order_override(const struct test *t)
 	exit(EXIT_FAILURE);
 }
 DEFINE_TEST(depmod_search_order_override,
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
-        .skip = true,
-#endif
 	.description = "check if depmod honor override keyword",
 	.config = {
 		[TC_UNAME_R] = MODULES_UNAME,
diff --git a/testsuite/test-modprobe.c b/testsuite/test-modprobe.c
index 3ddb976..309f3e3 100644
--- a/testsuite/test-modprobe.c
+++ b/testsuite/test-modprobe.c
@@ -83,9 +83,6 @@  static noreturn int modprobe_show_alias_to_none(const struct test *t)
 	exit(EXIT_FAILURE);
 }
 DEFINE_TEST(modprobe_show_alias_to_none,
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
-        .skip = true,
-#endif
 	.description = "check if modprobe --show-depends doesn't explode with an alias to nothing",
 	.config = {
 		[TC_UNAME_R] = "4.4.4",
@@ -175,9 +172,6 @@  static noreturn int modprobe_softdep_loop(const struct test *t)
 	exit(EXIT_FAILURE);
 }
 DEFINE_TEST(modprobe_softdep_loop,
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
-        .skip = true,
-#endif
 	.description = "check if modprobe breaks softdep loop",
 	.config = {
 		[TC_UNAME_R] = "4.4.4",