mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 10:43:43 +00:00
selftests: introduce gen_tar Makefile target
The gen_kselftest_tar.sh always packages *all* selftests and doesn't pass along any variables to `make install` to influence what should be built. This can result in an early error on the command line ("Unknown tarball format TARGETS=XXX"), or unexpected test failures as the tarball contains tests people wanted to skip on purpose. Since the makefile already contains all the logic, we can add a target for packaging. Keep the default .gz target the script uses, and actually extend the supported formats by using tar's autodetection. To not break current workflows, keep the gen_kselftest_tar.sh script as it is, with an added suggestion to use the makefile target instead. Signed-off-by: Veronika Kabatova <vkabatov@redhat.com> Reviewed-by: Stefano Brivio <sbrivio@redhat.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
2ef96a5bb1
commit
a5f304670b
@ -151,6 +151,29 @@ note some tests will require root privileges::
|
||||
$ cd kselftest
|
||||
$ ./run_kselftest.sh
|
||||
|
||||
Packaging selftests
|
||||
===================
|
||||
|
||||
In some cases packaging is desired, such as when tests need to run on a
|
||||
different system. To package selftests, run::
|
||||
|
||||
$ make -C tools/testing/selftests gen_tar
|
||||
|
||||
This generates a tarball in the `INSTALL_PATH/kselftest-packages` directory. By
|
||||
default, `.gz` format is used. The tar format can be overridden by specifying
|
||||
a `FORMAT` make variable. Any value recognized by `tar's auto-compress`_ option
|
||||
is supported, such as::
|
||||
|
||||
$ make -C tools/testing/selftests gen_tar FORMAT=.xz
|
||||
|
||||
`make gen_tar` invokes `make install` so you can use it to package a subset of
|
||||
tests by using variables specified in `Running a subset of selftests`_
|
||||
section::
|
||||
|
||||
$ make -C tools/testing/selftests gen_tar TARGETS="bpf" FORMAT=.xz
|
||||
|
||||
.. _tar's auto-compress: https://www.gnu.org/software/tar/manual/html_node/gzip.html#auto_002dcompress
|
||||
|
||||
Contributing new tests
|
||||
======================
|
||||
|
||||
|
@ -249,10 +249,17 @@ else
|
||||
$(error Error: set INSTALL_PATH to use install)
|
||||
endif
|
||||
|
||||
FORMAT ?= .gz
|
||||
TAR_PATH = $(abspath ${INSTALL_PATH}/kselftest-packages/kselftest.tar${FORMAT})
|
||||
gen_tar: install
|
||||
@mkdir -p ${INSTALL_PATH}/kselftest-packages/
|
||||
@tar caf ${TAR_PATH} --exclude=kselftest-packages -C ${INSTALL_PATH} .
|
||||
@echo "Created ${TAR_PATH}"
|
||||
|
||||
clean:
|
||||
@for TARGET in $(TARGETS); do \
|
||||
BUILD_TARGET=$$BUILD/$$TARGET; \
|
||||
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
|
||||
done;
|
||||
|
||||
.PHONY: khdr all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean
|
||||
.PHONY: khdr all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean gen_tar
|
||||
|
@ -49,6 +49,11 @@ main()
|
||||
# directory
|
||||
./kselftest_install.sh "$install_dir"
|
||||
(cd "$install_work"; tar $copts "$dest"/kselftest${ext} $install_name)
|
||||
|
||||
# Don't put the message at the actual end as people may be parsing the
|
||||
# "archive created" line in their scripts.
|
||||
echo -e "\nConsider using 'make gen_tar' instead of this script\n"
|
||||
|
||||
echo "Kselftest archive kselftest${ext} created!"
|
||||
|
||||
# clean up top-level install work directory
|
||||
|
Loading…
Reference in New Issue
Block a user