Re: [PATCH] selftests: Install settings files to fix TIMEOUT failures

From: Michael Ellerman
Date: Fri Feb 21 2020 - 00:12:36 EST


Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx> writes:
> On 2/20/20 3:51 PM, Kees Cook wrote:
>> On Thu, Feb 20, 2020 at 03:42:41PM +1100, Michael Ellerman wrote:
>>> Commit 852c8cbf34d3 ("selftests/kselftest/runner.sh: Add 45 second
>>> timeout per test") added a 45 second timeout for tests, and also added
>>> a way for tests to customise the timeout via a settings file.
>>>
>>> For example the ftrace tests take multiple minutes to run, so they
>>> were given longer in commit b43e78f65b1d ("tracing/selftests: Turn off
>>> timeout setting").
>>>
>>> This works when the tests are run from the source tree. However if the
>>> tests are installed with "make -C tools/testing/selftests install",
>>> the settings files are not copied into the install directory. When the
>>> tests are then run from the install directory the longer timeouts are
>>> not applied and the tests timeout incorrectly.
>>
>> Eek, yes, nice catch.
>>
>>> So add the settings files to TEST_FILES of the appropriate Makefiles
>>> to cause the settings files to be installed using the existing install
>>> logic.
>>
>> Instead, shouldn't lib.mk "notice" the settings file and automatically
>> include it in TEST_FILES instead of having to do this in each separate
>> Makefile?
>>
>
> Let's keep it custom per test for now.

Yeah that seems less magical.

FWIW the patch below does work, so it's a small patch, but I'm not sure
it's worth the added complexity vs just listing the file in the few
tests that need it.

cheers


diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
index 1c8a1963d03f..82086c6ad5e7 100644
--- a/tools/testing/selftests/lib.mk
+++ b/tools/testing/selftests/lib.mk
@@ -20,6 +20,10 @@ TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS))
TEST_GEN_PROGS_EXTENDED := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS_EXTENDED))
TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES))

+ifeq ($(wildcard settings),settings)
+ TEST_FILES += settings
+endif
+
ifdef KSFT_KHDR_INSTALL
top_srcdir ?= ../../../..
include $(top_srcdir)/scripts/subarch.include