Message ID | 20220719092214.995965-1-sadiyakazi@google.com (mailing list archive) |
---|---|
State | New |
Delegated to: | Brendan Higgins |
Headers | show |
Series | Documentation: kunit: Add CLI args for kunit_tool | expand |
On 7/19/22 06:22, 'Sadiya Kazi' via KUnit Development wrote: > Run_wrapper.rst was missing some command line arguments. Added > additional args in the file. Included all initial review comments. > > Signed-off-by: Sadiya Kazi <sadiyakazi@google.com> > --- > Documentation/dev-tools/kunit/run_wrapper.rst | 48 +++++++++++++++++++ > 1 file changed, 48 insertions(+) > > diff --git a/Documentation/dev-tools/kunit/run_wrapper.rst b/Documentation/dev-tools/kunit/run_wrapper.rst > index 5e560f2c5fca..91f5dda36e83 100644 > --- a/Documentation/dev-tools/kunit/run_wrapper.rst > +++ b/Documentation/dev-tools/kunit/run_wrapper.rst > @@ -257,3 +257,51 @@ 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 to the ``.kunitconfig`` file. > + This Kconfig fragment enables KUnit tests. The "/.kunitconfig" gets > + appended to the path specified. For example, If a directory path "lib/kunit" You might want to change it for a lower-case "if", like: "For example, if a directory path "lib/kunit"". > + is given, the complete path will be "lib/kunit/.kunitconfig". This explanation may imply that if I pass `--kunitconfig lib/kunit/.kunitconfig` it wouldn't work, as "/.kunitconfig" is always appended to the path. But this is not true, both `--kunitconfig lib/kunit/.kunitconfig` and `--kunitconfig lib/kunit` are valid options. > + > +- ``--kconfig_add``: Specifies additional configuration options to be > + appended to the ``.kunitconfig`` file. For example, ``CONFIG_KASAN=y``. You could expand this example to: ``` ./tools/testing/kunit/kunit.py run --kconfig_add CONFIG_KASAN=y ``` > + > +- ``--arch``: Runs tests with the specified architecture. The architecture "Runs tests on the specified architecture." > + specified must match the string passed to the ARCH make parameter. ARCH is not a "make parameter", ARCH is a environment variable. Therefor, ARCH is not "passed to make", as it a environment variable on the shell. Check the ARCH documentation [1]. > + For example, i386, x86_64, arm, um, etc. Non-UML architectures run on QEMU. > + Default to '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. This is a copy of the explanation on [2]. You may want to delete the previous explanation or change this one. > + > +- ``--qemu_config``: Specifies the path to the file containing a "Specifies the path to a file containing a" > + custom qemu architecture definition. This should be a python file > + containing a QemuArchParams object. "containing a `QemuArchParams` object." The qemu_config has also a pretty good documentation on [2]. > + > +- ``--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. This CLI argument is already explained on [3]. You may want to delete the previous explanation or change this one. > + > +- ``--timeout``: Specifies the maximum number of seconds allowed for all tests to run. > + This does not include the time taken to build the tests. Same here. > + > +- ``--kernel_args``: Specifies the kernel command-line arguments. Might 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. > + If set to ``--raw_output=kunit``, filters to just KUnit output. This command line argument is already explain on the Parse Test Results section [4]. > + > +- ``--json``: If set, it stores the test results in a JSON format and prints to stdout or "If set, it stores the test results in a JSON format and prints it to `stdout` or" > + saves to a file if a filename is specified. It's great to see new documentation for KUnit! [1] https://docs.kernel.org/kbuild/kbuild.html#arch [2] https://docs.kernel.org/dev-tools/kunit/run_wrapper.html#run-tests-on-qemu [3] https://docs.kernel.org/dev-tools/kunit/run_wrapper.html#run-tests-with-kunit-tool [4] https://docs.kernel.org/dev-tools/kunit/run_wrapper.html#parse-test-results Best Regards, - Maíra Canal
On Tue, Jul 19, 2022 at 5:22 PM Sadiya Kazi <sadiyakazi@google.com> wrote: > > Run_wrapper.rst was missing some command line arguments. Added > additional args in the file. Included all initial review comments. > > Signed-off-by: Sadiya Kazi <sadiyakazi@google.com> > --- This looks pretty good, save for some minor nitpicks below. I also echo Maíra's comments, though I'm not _too_ worried about having a little bit of duplication if it means we get a complete (or nearly-complete) list of arguments here, but still have them described in the appropriate part of the rest of the documentation. Cheers, -- David > Documentation/dev-tools/kunit/run_wrapper.rst | 48 +++++++++++++++++++ > 1 file changed, 48 insertions(+) > > diff --git a/Documentation/dev-tools/kunit/run_wrapper.rst b/Documentation/dev-tools/kunit/run_wrapper.rst > index 5e560f2c5fca..91f5dda36e83 100644 > --- a/Documentation/dev-tools/kunit/run_wrapper.rst > +++ b/Documentation/dev-tools/kunit/run_wrapper.rst > @@ -257,3 +257,51 @@ 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 to the ``.kunitconfig`` file. > + This Kconfig fragment enables KUnit tests. The "/.kunitconfig" gets > + appended to the path specified. For example, If a directory path "lib/kunit" > + is given, the complete path will be "lib/kunit/.kunitconfig". This is definitely a bit confusing: it seems to describe "how it works" more than "what is it, and when do you use it". Perhaps something more like: "Specifies a .kunitconfig file to use to build and run with a predefined set of tests and their dependencies. (e.g., to run tests for a given subsystem). This can be the path to a file, or to a directory (in which case a file named ".kunitconfig" in said directory will be used.)" > + > +- ``--kconfig_add``: Specifies additional configuration options to be > + appended to the ``.kunitconfig`` file. For example, ``CONFIG_KASAN=y``. > + > +- ``--arch``: Runs tests with the specified architecture. The architecture > + specified must match the string passed to the ARCH make parameter. > + For example, i386, x86_64, arm, um, etc. Non-UML architectures run on QEMU. > + Default to '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. This example should be ``sparc64-linux-gnu-`` (with the extra hyphen-minus at the end). It's concatenated to produce, e.g., sparc64-linux-gnu-gcc. > + > + - ``$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 the 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 the kernel command-line arguments. Might be repeated. Nit: maybe "Specifies _additional_ kernel command-line arguments". kunit_tool already sets some. > + > +- ``--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. > + If set to ``--raw_output=kunit``, filters to just KUnit output. --raw_output=kunit is the default if just --raw_output is set. You need to specify --raw_output=all for the full kernel output. > + > +- ``--json``: If set, it stores the test results in a JSON format and prints to stdout or > + saves to a file if a filename is specified. Nit: let's remove the first 'it' to be consistent with the previous entries. i.e., "If set, stores..." > -- > 2.37.0.170.g444d1eabd0-goog >
diff --git a/Documentation/dev-tools/kunit/run_wrapper.rst b/Documentation/dev-tools/kunit/run_wrapper.rst index 5e560f2c5fca..91f5dda36e83 100644 --- a/Documentation/dev-tools/kunit/run_wrapper.rst +++ b/Documentation/dev-tools/kunit/run_wrapper.rst @@ -257,3 +257,51 @@ 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 to the ``.kunitconfig`` file. + This Kconfig fragment enables KUnit tests. The "/.kunitconfig" gets + appended to the path specified. For example, If a directory path "lib/kunit" + is given, the complete path will be "lib/kunit/.kunitconfig". + +- ``--kconfig_add``: Specifies additional configuration options to be + appended to the ``.kunitconfig`` file. For example, ``CONFIG_KASAN=y``. + +- ``--arch``: Runs tests with the specified architecture. The architecture + specified must match the string passed to the ARCH make parameter. + For example, i386, x86_64, arm, um, etc. Non-UML architectures run on QEMU. + Default to '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 the 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 the kernel command-line arguments. Might 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. + If set to ``--raw_output=kunit``, filters to just KUnit output. + +- ``--json``: If set, it stores the test results in a JSON format and prints to stdout or + saves to a file if a filename is specified.
Run_wrapper.rst was missing some command line arguments. Added additional args in the file. Included all initial review comments. Signed-off-by: Sadiya Kazi <sadiyakazi@google.com> --- Documentation/dev-tools/kunit/run_wrapper.rst | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+)