2022-07-24 19:29:56

by Sadiya Kazi

[permalink] [raw]
Subject: [PATCH v3] Documentation: kunit: Add CLI args for kunit_tool

Run_wrapper.rst was missing some command line arguments. Added
additional args in the file.

Signed-off-by: Sadiya Kazi <[email protected]>
---
Changes since v2:
https://lore.kernel.org/linux-kselftest/[email protected]/
-Added a code block for —kconfig_add argument to make the styling consistent
-Slightly changed the words for —arch argument
-Changed QEMU to qemu wherever applicable for the cli args
-Changed the style for ``-smp 8``
-Changed "Might be repeated" to "may be repeated” for kernel_args



---
Documentation/dev-tools/kunit/run_wrapper.rst | 61 ++++++++++++++++++-
1 file changed, 60 insertions(+), 1 deletion(-)

diff --git a/Documentation/dev-tools/kunit/run_wrapper.rst b/Documentation/dev-tools/kunit/run_wrapper.rst
index 5e560f2c5fca..ed3715fef32d 100644
--- a/Documentation/dev-tools/kunit/run_wrapper.rst
+++ b/Documentation/dev-tools/kunit/run_wrapper.rst
@@ -233,7 +233,7 @@ Command-Line Arguments
======================

kunit_tool has a number of other command-line arguments which can
-be useful for our test environment. Below the most commonly used
+be useful for our test environment. Below are the most commonly used
command line arguments:

- ``--help``: Lists all available options. To list common options,
@@ -257,3 +257,62 @@ command line arguments:
added or modified. Instead, enable all tests
which have satisfied dependencies by adding
``CONFIG_KUNIT_ALL_TESTS=y`` to your ``.kunitconfig``.
+
+- ``--kunitconfig``: Specifies the path or the directory of the ``.kunitconfig``
+ file. For example:
+
+ - ``lib/kunit/.kunitconfig`` can be the path of the file.
+
+ - ``lib/kunit`` can be the directory in which the file is located.
+
+ This file is used to build and run with a predefined set of tests
+ and their dependencies. For example, to run tests for a given subsystem.
+
+- ``--kconfig_add``: Specifies additional configuration options to be
+ appended to the ``.kunitconfig`` file. For example:
+ .. code-block::
+ ./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_KASAN=y
+
+- ``--arch``: Runs tests on the specified architecture. The architecture
+ argument is same as the Kbuild ARCH environment variable.
+ For example, i386, x86_64, arm, um, etc. Non-UML architectures run on qemu.
+ Default is `um`.
+
+- ``--cross_compile``: Specifies the Kbuild toolchain. It passes the
+ same argument as passed to the ``CROSS_COMPILE`` variable used by
+ Kbuild. This will be the prefix for the toolchain
+ binaries such as GCC. For example:
+
+ - ``sparc64-linux-gnu-`` if we have the sparc toolchain installed on
+ our system.
+
+ - ``$HOME/toolchains/microblaze/gcc-9.2.0-nolibc/microblaze-linux/bin/microblaze-linux``
+ if we have downloaded the microblaze toolchain from the 0-day
+ website to a specified path in our home directory called toolchains.
+
+- ``--qemu_config``: Specifies the path to a file containing a
+ custom qemu architecture definition. This should be a python file
+ containing a `QemuArchParams` object.
+
+- ``--qemu_args``: Specifies additional qemu arguments, for example, ``-smp 8``.
+
+- ``--jobs``: Specifies the number of jobs (commands) to run simultaneously.
+ By default, this is set to the number of cores on your system.
+
+- ``--timeout``: Specifies the maximum number of seconds allowed for all tests to run.
+ This does not include the time taken to build the tests.
+
+- ``--kernel_args``: Specifies additional kernel command-line arguments. May be repeated.
+
+- ``--run_isolated``: If set, boots the kernel for each individual suite/test.
+ This is useful for debugging a non-hermetic test, one that
+ might pass/fail based on what ran before it.
+
+- ``--raw_output``: If set, generates unformatted output from kernel. Possible options are:
+
+ - ``all``: To view the full kernel output, use ``--raw_output=all``.
+
+ - ``kunit``: This is the default option and filters to KUnit output. Use ``--raw_output`` or ``--raw_output=kunit``.
+
+- ``--json``: If set, stores the test results in a JSON format and prints to `stdout` or
+ saves to a file if a filename is specified.
--
2.37.1.359.gd136c6c3e2-goog


2022-07-25 09:18:19

by Bagas Sanjaya

[permalink] [raw]
Subject: Re: [PATCH v3] Documentation: kunit: Add CLI args for kunit_tool

On Sun, Jul 24, 2022 at 06:47:59PM +0000, Sadiya Kazi wrote:
> Run_wrapper.rst was missing some command line arguments. Added
> additional args in the file.
>
Hi Sadiya,

The patch description looks awkward. Better say:
"Many kunit_tool common command line arguments are missing from the
documentation. Document them."


> +- ``--kconfig_add``: Specifies additional configuration options to be
> + appended to the ``.kunitconfig`` file. For example:
> + .. code-block::
> + ./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_KASAN=y
> +

Above generated new warning:

Documentation/dev-tools/kunit/run_wrapper.rst:262: WARNING: Unexpected indentation.

I have applied the fixup:

---- >8 ----

From cd4cf7c5bb2a7bfe3b006d7859e84de0814d7af4 Mon Sep 17 00:00:00 2001
From: Bagas Sanjaya <[email protected]>
Date: Mon, 25 Jul 2022 15:54:24 +0700
Subject: [PATCH] fixup for "Documentation: kunit: Add CLI args for kunit_tool"

Pad --kconfig_add code block with blank line

Signed-off-by: Bagas Sanjaya <[email protected]>
---
Documentation/dev-tools/kunit/run_wrapper.rst | 2 ++
1 file changed, 2 insertions(+)

diff --git a/Documentation/dev-tools/kunit/run_wrapper.rst b/Documentation/dev-tools/kunit/run_wrapper.rst
index 479d16d1f17d60..d19a1b0d58595b 100644
--- a/Documentation/dev-tools/kunit/run_wrapper.rst
+++ b/Documentation/dev-tools/kunit/run_wrapper.rst
@@ -258,7 +258,9 @@ command line arguments:

- ``--kconfig_add``: Specifies additional configuration options to be
appended to the ``.kunitconfig`` file. For example:
+
.. code-block::
+
./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_KASAN=y

- ``--arch``: Runs tests on the specified architecture. The architecture
--

Thanks.

--
An old man doll... just what I always wanted! - Clara

2022-07-25 11:24:13

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH v3] Documentation: kunit: Add CLI args for kunit_tool

Hi Sadiya,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on lwn/docs-next]
[also build test WARNING on linus/master v5.19-rc8 next-20220722]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Sadiya-Kazi/Documentation-kunit-Add-CLI-args-for-kunit_tool/20220725-025055
base: git://git.lwn.net/linux.git docs-next
reproduce: make htmldocs

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

>> Documentation/dev-tools/kunit/run_wrapper.rst:262: WARNING: Unexpected indentation.

vim +262 Documentation/dev-tools/kunit/run_wrapper.rst

226
227 - ``--help``: Lists all available options. To list common options,
228 place ``--help`` before the command. To list options specific to that
229 command, place ``--help`` after the command.
230
231 .. note:: Different commands (``config``, ``build``, ``run``, etc)
232 have different supported options.
233 - ``--build_dir``: Specifies kunit_tool build directory. It includes
234 the ``.kunitconfig``, ``.config`` files and compiled kernel.
235
236 - ``--make_options``: Specifies additional options to pass to make, when
237 compiling a kernel (using ``build`` or ``run`` commands). For example:
238 to enable compiler warnings, we can pass ``--make_options W=1``.
239
240 - ``--alltests``: Builds a UML kernel with all config options enabled
241 using ``make allyesconfig``. This allows us to run as many tests as
242 possible.
243
244 .. note:: It is slow and prone to breakage as new options are
245 added or modified. Instead, enable all tests
246 which have satisfied dependencies by adding
247 ``CONFIG_KUNIT_ALL_TESTS=y`` to your ``.kunitconfig``.
248
249 - ``--kunitconfig``: Specifies the path or the directory of the ``.kunitconfig``
250 file. For example:
251
252 - ``lib/kunit/.kunitconfig`` can be the path of the file.
253
254 - ``lib/kunit`` can be the directory in which the file is located.
255
256 This file is used to build and run with a predefined set of tests
257 and their dependencies. For example, to run tests for a given subsystem.
258
259 - ``--kconfig_add``: Specifies additional configuration options to be
260 appended to the ``.kunitconfig`` file. For example:
261 .. code-block::
> 262 ./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_KASAN=y
263

--
0-DAY CI Kernel Test Service
https://01.org/lkp

2022-07-25 20:34:47

by Maira Canal

[permalink] [raw]
Subject: Re: [PATCH v3] Documentation: kunit: Add CLI args for kunit_tool

Hi Sadiya,

On 7/24/22 15:47, Sadiya Kazi wrote:
> Run_wrapper.rst was missing some command line arguments. Added
> additional args in the file.
>
> Signed-off-by: Sadiya Kazi <[email protected]>

Usually, when people send their Reviewed-by on a previous version, we
send the next version with their tags in chronological order [1].

> ---
> Changes since v2:
> https://lore.kernel.org/linux-kselftest/[email protected]/
> -Added a code block for —kconfig_add argument to make the styling consistent
> -Slightly changed the words for —arch argument
> -Changed QEMU to qemu wherever applicable for the cli args
> -Changed the style for ``-smp 8``
> -Changed "Might be repeated" to "may be repeated” for kernel_args
>

Also, it is a common practice to keep the entire changelog here [1].

Other than the error reported-by kernel test robot, looks good to me.

Reviewed-by: Maíra Canal <[email protected]>

[1]
https://docs.kernel.org/process/submitting-patches.html#the-canonical-patch-format

Best Regards,
- Maíra Canal

>
>
> ---
> Documentation/dev-tools/kunit/run_wrapper.rst | 61 ++++++++++++++++++-
> 1 file changed, 60 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/dev-tools/kunit/run_wrapper.rst b/Documentation/dev-tools/kunit/run_wrapper.rst
> index 5e560f2c5fca..ed3715fef32d 100644
> --- a/Documentation/dev-tools/kunit/run_wrapper.rst
> +++ b/Documentation/dev-tools/kunit/run_wrapper.rst
> @@ -233,7 +233,7 @@ Command-Line Arguments
> ======================
>
> kunit_tool has a number of other command-line arguments which can
> -be useful for our test environment. Below the most commonly used
> +be useful for our test environment. Below are the most commonly used
> command line arguments:
>
> - ``--help``: Lists all available options. To list common options,
> @@ -257,3 +257,62 @@ command line arguments:
> added or modified. Instead, enable all tests
> which have satisfied dependencies by adding
> ``CONFIG_KUNIT_ALL_TESTS=y`` to your ``.kunitconfig``.
> +
> +- ``--kunitconfig``: Specifies the path or the directory of the ``.kunitconfig``
> + file. For example:
> +
> + - ``lib/kunit/.kunitconfig`` can be the path of the file.
> +
> + - ``lib/kunit`` can be the directory in which the file is located.
> +
> + This file is used to build and run with a predefined set of tests
> + and their dependencies. For example, to run tests for a given subsystem.
> +
> +- ``--kconfig_add``: Specifies additional configuration options to be
> + appended to the ``.kunitconfig`` file. For example:
> + .. code-block::
> + ./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_KASAN=y
> +
> +- ``--arch``: Runs tests on the specified architecture. The architecture
> + argument is same as the Kbuild ARCH environment variable.
> + For example, i386, x86_64, arm, um, etc. Non-UML architectures run on qemu.
> + Default is `um`.
> +
> +- ``--cross_compile``: Specifies the Kbuild toolchain. It passes the
> + same argument as passed to the ``CROSS_COMPILE`` variable used by
> + Kbuild. This will be the prefix for the toolchain
> + binaries such as GCC. For example:
> +
> + - ``sparc64-linux-gnu-`` if we have the sparc toolchain installed on
> + our system.
> +
> + - ``$HOME/toolchains/microblaze/gcc-9.2.0-nolibc/microblaze-linux/bin/microblaze-linux``
> + if we have downloaded the microblaze toolchain from the 0-day
> + website to a specified path in our home directory called toolchains.
> +
> +- ``--qemu_config``: Specifies the path to a file containing a
> + custom qemu architecture definition. This should be a python file
> + containing a `QemuArchParams` object.
> +
> +- ``--qemu_args``: Specifies additional qemu arguments, for example, ``-smp 8``.
> +
> +- ``--jobs``: Specifies the number of jobs (commands) to run simultaneously.
> + By default, this is set to the number of cores on your system.
> +
> +- ``--timeout``: Specifies the maximum number of seconds allowed for all tests to run.
> + This does not include the time taken to build the tests.
> +
> +- ``--kernel_args``: Specifies additional kernel command-line arguments. May be repeated.
> +
> +- ``--run_isolated``: If set, boots the kernel for each individual suite/test.
> + This is useful for debugging a non-hermetic test, one that
> + might pass/fail based on what ran before it.
> +
> +- ``--raw_output``: If set, generates unformatted output from kernel. Possible options are:
> +
> + - ``all``: To view the full kernel output, use ``--raw_output=all``.
> +
> + - ``kunit``: This is the default option and filters to KUnit output. Use ``--raw_output`` or ``--raw_output=kunit``.
> +
> +- ``--json``: If set, stores the test results in a JSON format and prints to `stdout` or
> + saves to a file if a filename is specified.