(2014/11/12 5:27), Shuah Khan wrote: > Add a new make target to enable installing selftests. This > new target will call install targets for the tests that are > specified in INSTALL_TARGETS. During install, a script is > generated to run tests that are installed. This script will > be installed in the selftest install directory. Individual > test Makefiles are changed to add to the script. This will > allow new tests to add install and run test commands to the > generated kselftest script. run_tests target runs the > generated kselftest script to run tests when it is initiated > from from "make kselftest" from top level source directory. > > Approach: > > make kselftest_target: > -- exports kselftest INSTALL_KSFT_PATH > default $(INSTALL_MOD_PATH)/lib/kselftest/$(KERNELRELEASE) > -- exports path for ksefltest.sh > -- runs selftests make install target: > > selftests make install target > -- creates kselftest.sh script in install install dir > -- runs install targets for all INSTALL_TARGETS > (Note: ftrace and powerpc aren't included in INSTALL_TARGETS, > to not add more content to patch v1 series. This work > will happen soon. In this series these two targets are > run after running the generated kselftest script, without > any regression in the way these tests are run with > "make kselftest" prior to this work.) > -- install target can be run only from top level source dir. > > Individual test make install targets: > -- install test programs and/or scripts in install dir > -- append to the ksefltest.sh file to add commands to run test > -- install target can be run only from top level source dir. > > Adds the following new ways to initiate selftests: > -- Installing and running kselftest from install directory > by running "make kselftest" > -- Running kselftest script from install directory > > Maintains the following ways to run tests: > -- make -C tools/testing/selftests run_tests > -- make -C tools/testing/selftests TARGETS=target run_tests > Ability specify targets: e.g TARGETS=net > -- make run_tests from tools/testing/selftests > -- make run_tests from individual test directories: > e.g: make run_tests in tools/testing/selftests/breakpoints > > Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx> > --- > tools/testing/selftests/Makefile | 31 ++++++++++++++++++++++++++++++- > 1 file changed, 30 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile > index 45f145c..b9bdc1d 100644 > --- a/tools/testing/selftests/Makefile > +++ b/tools/testing/selftests/Makefile > @@ -16,6 +16,10 @@ TARGETS += sysctl > TARGETS += firmware > TARGETS += ftrace > > +INSTALL_TARGETS = breakpoints cpu-hotplug efivarfs firmware ipc > +INSTALL_TARGETS += kcmp memfd memory-hotplug mqueue mount net > +INSTALL_TARGETS += ptrace sysctl timers user vm > + > TARGETS_HOTPLUG = cpu-hotplug > TARGETS_HOTPLUG += memory-hotplug > I think KSELFTEST itself should be defined here, since that is not a parameter. > @@ -24,10 +28,35 @@ all: > make -C $$TARGET; \ > done; > > -run_tests: all > +install: > +ifdef INSTALL_KSFT_PATH > + make all > + @echo #!/bin/sh\n# Kselftest Run Tests .... >> $(KSELFTEST) > + @echo # This file is generated during kselftest_install >> $(KSELFTEST) > + @echo # Please don't change it !!\n >> $(KSELFTEST) > + @echo echo ============================== >> $(KSELFTEST) > + for TARGET in $(INSTALL_TARGETS); do \ > + echo Installing $$TARGET; \ > + make -C $$TARGET install; \ Please pass O= option and others here. > + done; > + chmod +x $(KSELFTEST) > +else > + @echo Run make kselftest_install in top level source directory > +endif > + > +run_tests: > +ifdef INSTALL_KSFT_PATH > + @cd $(INSTALL_KSFT_PATH); ./kselftest.sh; cd - We'd better use some macro instead of ./kselftest.sh? Thank you, > +# TODO: include ftrace and powerpc in install targets > + for TARGET in ftrace powerpc; do \ > + make -C $$TARGET run_tests; \ > + done; > +else > + make all > for TARGET in $(TARGETS); do \ > make -C $$TARGET run_tests; \ > done; > +endif > > hotplug: > for TARGET in $(TARGETS_HOTPLUG); do \ > -- Masami HIRAMATSU Software Platform Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu.pt@xxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html