* [PATCH v2] selftests: introduce gen_tar Makefile target
@ 2020-05-19 20:00 Veronika Kabatova
2020-05-19 20:57 ` Stefano Brivio
0 siblings, 1 reply; 3+ messages in thread
From: Veronika Kabatova @ 2020-05-19 20:00 UTC (permalink / raw)
To: shuah, linux-kselftest; +Cc: sbrivio, Veronika Kabatova
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>
---
v2: overriden -> overridden, sent from the matching email address
Documentation/dev-tools/kselftest.rst | 23 ++++++++++++++++++++
tools/testing/selftests/Makefile | 9 +++++++-
tools/testing/selftests/gen_kselftest_tar.sh | 5 +++++
3 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/Documentation/dev-tools/kselftest.rst b/Documentation/dev-tools/kselftest.rst
index 61ae13c44f91..3fc559bcb597 100644
--- a/Documentation/dev-tools/kselftest.rst
+++ b/Documentation/dev-tools/kselftest.rst
@@ -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
======================
diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
index 2ff68702fd41..1195bd85af38 100644
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@ -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
diff --git a/tools/testing/selftests/gen_kselftest_tar.sh b/tools/testing/selftests/gen_kselftest_tar.sh
index 8b2b6088540d..4a974bc03385 100755
--- a/tools/testing/selftests/gen_kselftest_tar.sh
+++ b/tools/testing/selftests/gen_kselftest_tar.sh
@@ -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
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] selftests: introduce gen_tar Makefile target
2020-05-19 20:00 [PATCH v2] selftests: introduce gen_tar Makefile target Veronika Kabatova
@ 2020-05-19 20:57 ` Stefano Brivio
2020-05-19 22:16 ` shuah
0 siblings, 1 reply; 3+ messages in thread
From: Stefano Brivio @ 2020-05-19 20:57 UTC (permalink / raw)
To: Veronika Kabatova; +Cc: shuah, linux-kselftest
On Tue, 19 May 2020 22:00:45 +0200
Veronika Kabatova <vkabatov@redhat.com> wrote:
> 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>
--
Stefano
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] selftests: introduce gen_tar Makefile target
2020-05-19 20:57 ` Stefano Brivio
@ 2020-05-19 22:16 ` shuah
0 siblings, 0 replies; 3+ messages in thread
From: shuah @ 2020-05-19 22:16 UTC (permalink / raw)
To: Stefano Brivio, Veronika Kabatova; +Cc: linux-kselftest, shuah
On 5/19/20 2:57 PM, Stefano Brivio wrote:
> On Tue, 19 May 2020 22:00:45 +0200
> Veronika Kabatova <vkabatov@redhat.com> wrote:
>
>> 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>
>
Applied to
git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git next
for Linux 5.8-rc1.
thanks,
-- Shuah
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-05-19 22:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-19 20:00 [PATCH v2] selftests: introduce gen_tar Makefile target Veronika Kabatova
2020-05-19 20:57 ` Stefano Brivio
2020-05-19 22:16 ` shuah
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).