On 5/4/20 5:50 AM, Veronika Kabatova wrote:
----- Original Message -----
From: "shuah" <shuah@xxxxxxxxxx>
To: "Veronika Kabatova" <veronicca114@xxxxxxxxx>
Cc: sbrivio@xxxxxxxxxx, linux-kselftest@xxxxxxxxxxxxxxx, "Veronika Kabatova" <vkabatov@xxxxxxxxxx>, "shuah"
<shuah@xxxxxxxxxx>
Sent: Friday, May 1, 2020 4:49:34 PM
Subject: Re: [PATCH] selftests: introduce gen_tar Makefile target
Hi Veronica,
Hi,
On 4/28/20 6:38 AM, Veronika Kabatova 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.
Thanks for working on this. gen_kselftest_tar.sh a while back before a
lot of the install features went in and Makefile supports it fully. It
makes perfect sense to use Makefile drive this.
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.
Not sure how many people use this. It is a good idea keeping it around
for now.
Signed-off-by: Veronika Kabatova <vkabatov@xxxxxxxxxx>
Reviewed-by: Stefano Brivio <sbrivio@xxxxxxxxxx>
---
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
+
Does this work in the case of relocatable build.cross-build cases?
+This generates a tarball in the `INSTALL_PATH/kselftest-packages`
directory. By
+default, `.gz` format is used. The tar format can be overriden 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
Does this work in the case of relocatable build.cross-build cases?
The command only adds a "tar" call on top of "make install" and doesn't
reach outside of INSTALL_PATH. If the cases you mention are supported by
the regular "make install" then they should work with "gen_tar" as well.
Sounds good. I will queue this up for 5.8-rc1
thanks,
-- Shuah