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@xxxxxxxxxxxxxxx> >> --- >> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html