Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1731290 > unrolled thread

[PATCH 09/11] selftests: lib.mk: copy test scripts and test files for make O=dir run

Started byShuah Khan <shuahkh@osg.samsung.com>
First post2017-09-13 02:00 +0200
Last post2017-09-13 21:50 +0200
Articles 2 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 09/11] selftests: lib.mk: copy test scripts and test files for make O=dir run Shuah Khan <shuahkh@osg.samsung.com> - 2017-09-13 02:00 +0200
    Re: [PATCH 09/11] selftests: lib.mk: copy test scripts and test files  for make O=dir run Shuah Khan <shuahkh@osg.samsung.com> - 2017-09-13 21:50 +0200

#1731290 — [PATCH 09/11] selftests: lib.mk: copy test scripts and test files for make O=dir run

FromShuah Khan <shuahkh@osg.samsung.com>
Date2017-09-13 02:00 +0200
Subject[PATCH 09/11] selftests: lib.mk: copy test scripts and test files for make O=dir run
Message-ID<up3fY-83p-7@gated-at.bofh.it>
For make O=dir run_tests to work, test scripts, test files, and other
dependencies need to be copied over to the object directory. Running
tests from the object directory is necessary to avoid making the source
tree dirty.

Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
---
 tools/testing/selftests/lib.mk | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
index 2e13cabb8007..9aa820d35c0c 100644
--- a/tools/testing/selftests/lib.mk
+++ b/tools/testing/selftests/lib.mk
@@ -37,7 +37,18 @@ define RUN_TESTS
 endef
 
 run_tests: all
+ifneq ($(KBUILD_SRC),)
+	@if [ "X$(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)" != "X" ]; then
+		@rsync -aq $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(OUTPUT)
+	fi
+	@if [ "X$(TEST_PROGS)" != "X" ]; then
+		$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(OUTPUT)/$(TEST_PROGS))
+	else
+		$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS))
+	fi
+else
 	$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS))
+endif
 
 define INSTALL_RULE
 	@if [ "X$(TEST_PROGS)$(TEST_PROGS_EXTENDED)$(TEST_FILES)" != "X" ]; then					\
-- 
2.11.0

[toc] | [next] | [standalone]


#1731817 — Re: [PATCH 09/11] selftests: lib.mk: copy test scripts and test files for make O=dir run

FromShuah Khan <shuahkh@osg.samsung.com>
Date2017-09-13 21:50 +0200
SubjectRe: [PATCH 09/11] selftests: lib.mk: copy test scripts and test files for make O=dir run
Message-ID<uplPz-3aF-7@gated-at.bofh.it>
In reply to#1731290
On 09/13/2017 12:14 PM, Bird, Timothy wrote:
> 
> 
>> -----Original Message-----
>> From: Shuah Khan on Tuesday, September 12, 2017 4:53 PM
>>
>> For make O=dir run_tests to work, test scripts, test files, and other
>> dependencies need to be copied over to the object directory. Running
>> tests from the object directory is necessary to avoid making the source
>> tree dirty.
>>
>> Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
>> ---
>>  tools/testing/selftests/lib.mk | 11 +++++++++++
>>  1 file changed, 11 insertions(+)
>>
>> diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
>> index 2e13cabb8007..9aa820d35c0c 100644
>> --- a/tools/testing/selftests/lib.mk
>> +++ b/tools/testing/selftests/lib.mk
>> @@ -37,7 +37,18 @@ define RUN_TESTS
>>  endef
>>
>>  run_tests: all
>> +ifneq ($(KBUILD_SRC),)
>> +	@if [ "X$(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)" !=
>> "X" ]; then
>> +		@rsync -aq $(TEST_PROGS) $(TEST_PROGS_EXTENDED)
>> $(TEST_FILES) $(OUTPUT)
> 
> rsync seems a bit heavy-handed for this.  Is there a reason to use
> rsync vs. just a regular cp?   Does the existing kbuild system already
> have a dependency on rsync?  If not, I don't think we should introduce one
> here.
> 

rsync is used now in kselftest make files for install. The reason
I picked rsync in this case is that these files might exist in the
object directory, if the same object directory is used for multiple
kselftest builds. Using rsync helps avoid copying them again. These
files are not generated each time build is run. These are shell scripts
and other dependencies that won't change from build to build.

Are you concerned about rsync availability on some environments?

> BTW - great work!

Thanks.

> 
>> +	fi
>> +	@if [ "X$(TEST_PROGS)" != "X" ]; then
>> +		$(call RUN_TESTS, $(TEST_GEN_PROGS)
>> $(TEST_CUSTOM_PROGS) $(OUTPUT)/$(TEST_PROGS))
>> +	else
>> +		$(call RUN_TESTS, $(TEST_GEN_PROGS)
>> $(TEST_CUSTOM_PROGS))
>> +	fi
>> +else
>>  	$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS)
>> $(TEST_PROGS))
>> +endif
>>
>>  define INSTALL_RULE
>>  	@if [ "X$(TEST_PROGS)$(TEST_PROGS_EXTENDED)$(TEST_FILES)" !=
>> "X" ]; then					\
>> --
>> 2.11.0
>>
> 

thanks,
-- Shuah

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web