From: Martin Wilck Date: Mon, 10 Dec 2018 09:49:36 +0000 (+0100) Subject: tests/hwtable: set multipath_dir in local configuration X-Git-Tag: 0.8.0~66 X-Git-Url: https://git.opensvc.com/gitweb.cgi?p=multipath-tools%2F.git;a=commitdiff_plain;h=d5e34499d8742530c90562ac260cba87e41b5fea;hp=9050cd5a12ba8ec9d2ea26a8117204790ff53975 tests/hwtable: set multipath_dir in local configuration If internal libmultipath APIs change (such as, recently, the checker API), test programs will fail because they'll link with the standard system prioritizer / checker / foreign APIs. Make sure we always link with our own shared libraries. Reviewed-by: Benjamin Marzinski Signed-off-by: Martin Wilck --- diff --git a/tests/Makefile b/tests/Makefile index b37b5027..ef900866 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -26,7 +26,11 @@ hwtable-test_LIBDEPS := -ludev -lpthread -ldl blacklist-test_OBJDEPS := ../libmultipath/blacklist.o blacklist-test_LIBDEPS := -ludev -%.out: %-test +lib/libchecktur.so: + mkdir lib + ln -t lib ../libmultipath/{checkers,prioritizers,foreign}/*.so + +%.out: %-test lib/libchecktur.so @echo == running $< == @LD_LIBRARY_PATH=$(multipathdir):$(mpathcmddir) ./$< >$@ @@ -34,6 +38,7 @@ OBJS = $(TESTS:%=%.o) test-lib.o clean: dep_clean $(RM) $(TESTS:%=%-test) $(TESTS:%=%.out) $(OBJS) + $(RM) -rf lib .SECONDARY: $(OBJS) diff --git a/tests/hwtable.c b/tests/hwtable.c index 9146ecc3..1cd788ac 100644 --- a/tests/hwtable.c +++ b/tests/hwtable.c @@ -250,14 +250,19 @@ static void write_defaults(const struct hwt_state *hwt) static struct key_value defaults[] = { { "config_dir", NULL }, { "bindings_file", NULL }, + { "multipath_dir", NULL }, { "detect_prio", "no" }, { "detect_checker", "no" }, }; char buf[sizeof(tmplate) + sizeof(bindings_name)]; + char dirbuf[PATH_MAX]; snprintf(buf, sizeof(buf), "%s/%s", hwt->tmpname, bindings_name); defaults[0].value = hwt->dirname; defaults[1].value = buf; + assert_ptr_not_equal(getcwd(dirbuf, sizeof(dirbuf)), NULL); + strncat(dirbuf, "/lib", sizeof(dirbuf)); + defaults[2].value = dirbuf; write_section(hwt->config_file, "defaults", ARRAY_SIZE(defaults), defaults); }