sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget//translations/zh_CN/dev-tools/kunit/run_wrappermodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/zh_TW/dev-tools/kunit/run_wrappermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/it_IT/dev-tools/kunit/run_wrappermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ja_JP/dev-tools/kunit/run_wrappermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ko_KR/dev-tools/kunit/run_wrappermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/pt_BR/dev-tools/kunit/run_wrappermodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/sp_SP/dev-tools/kunit/run_wrappermodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhI/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/run_wrapper.rsthKubhsection)}(hhh](htitle)}(hRunning tests with kunit_toolh]hRunning tests with kunit_tool}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hWe can either run KUnit tests using kunit_tool or can run tests manually, and then use kunit_tool to parse the results. To run tests manually, see: Documentation/dev-tools/kunit/run_manual.rst. As long as we can build the kernel, we can run KUnit.h]hWe can either run KUnit tests using kunit_tool or can run tests manually, and then use kunit_tool to parse the results. To run tests manually, see: Documentation/dev-tools/kunit/run_manual.rst. As long as we can build the kernel, we can run KUnit.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hmkunit_tool is a Python script which configures and builds a kernel, runs tests, and formats the test results.h]hmkunit_tool is a Python script which configures and builds a kernel, runs tests, and formats the test results.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(h Run command:h]h Run command:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh literal_block)}(h"./tools/testing/kunit/kunit.py runh]h"./tools/testing/kunit/kunit.py run}hj sbah}(h]h ]h"]h$]h&]hhƌforcelanguagenonehighlight_args}uh1j hhhKhhhhubh)}(hWe should see the following:h]hWe should see the following:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubj )}(hNConfiguring KUnit Kernel ... Building KUnit kernel... Starting KUnit kernel...h]hNConfiguring KUnit Kernel ... Building KUnit kernel... Starting KUnit kernel...}hj,sbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhKhhhhubh)}(h)We may want to use the following options:h]h)We may want to use the following options:}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubj )}(hD./tools/testing/kunit/kunit.py run --timeout=30 --jobs=`nproc --all`h]hD./tools/testing/kunit/kunit.py run --timeout=30 --jobs=`nproc --all`}hjIsbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhKhhhhubh bullet_list)}(hhh](h list_item)}(h=``--timeout`` sets a maximum amount of time for tests to run.h]h)}(hjah](hliteral)}(h ``--timeout``h]h --timeout}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjcubh0 sets a maximum amount of time for tests to run.}(hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK#hj_ubah}(h]h ]h"]h$]h&]uh1j]hjZhhhhhNubj^)}(h;``--jobs`` sets the number of threads to build the kernel. h]h)}(h:``--jobs`` sets the number of threads to build the kernel.h](jg)}(h ``--jobs``h]h--jobs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh0 sets the number of threads to build the kernel.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1j]hjZhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jXhhhK#hhhhubh)}(hXkunit_tool will generate a ``.kunitconfig`` with a default configuration, if no other ``.kunitconfig`` file exists (in the build directory). In addition, it verifies that the generated ``.config`` file contains the ``CONFIG`` options in the ``.kunitconfig``. It is also possible to pass a separate ``.kunitconfig`` fragment to kunit_tool. This is useful if we have several different groups of tests we want to run independently, or if we want to use pre-defined test configs for certain subsystems.h](hkunit_tool will generate a }(hjhhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh+ with a default configuration, if no other }(hjhhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubhS file exists (in the build directory). In addition, it verifies that the generated }(hjhhhNhNubjg)}(h ``.config``h]h.config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh file contains the }(hjhhhNhNubjg)}(h ``CONFIG``h]hCONFIG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh options in the }(hjhhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh). It is also possible to pass a separate }(hjhhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh fragment to kunit_tool. This is useful if we have several different groups of tests we want to run independently, or if we want to use pre-defined test configs for certain subsystems.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK&hhhhubh)}(huTo use a different ``.kunitconfig`` file (such as one provided to test a particular subsystem), pass it as an option:h](hTo use a different }(hj.hhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj.ubhR file (such as one provided to test a particular subsystem), pass it as an option:}(hj.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK0hhhhubj )}(hE./tools/testing/kunit/kunit.py run --kunitconfig=fs/ext4/.kunitconfigh]hE./tools/testing/kunit/kunit.py run --kunitconfig=fs/ext4/.kunitconfig}hjNsbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhK3hhhhubh)}(h@To view kunit_tool flags (optional command-line arguments), run:h]h@To view kunit_tool flags (optional command-line arguments), run:}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hhhhubj )}(h)./tools/testing/kunit/kunit.py run --helph]h)./tools/testing/kunit/kunit.py run --help}hjksbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhK9hhhhubh)}(hhh](h)}(h Creating a ``.kunitconfig`` fileh](h Creating a }(hj}hhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}ubh file}(hj}hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjzhhhhhK>ubh)}(hXIf we want to run a specific set of tests (rather than those listed in the KUnit ``defconfig``), we can provide Kconfig options in the ``.kunitconfig`` file. For default .kunitconfig, see: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/kunit/configs/default.config. A ``.kunitconfig`` is a ``minconfig`` (a .config generated by running ``make savedefconfig``), used for running a specific set of tests. This file contains the regular Kernel configs with specific test targets. The ``.kunitconfig`` also contains any other config options required by the tests (For example: dependencies for features under tests, configs that enable/disable certain code blocks, arch configs and so on).h](hQIf we want to run a specific set of tests (rather than those listed in the KUnit }(hjhhhNhNubjg)}(h ``defconfig``h]h defconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh)), we can provide Kconfig options in the }(hjhhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh& file. For default .kunitconfig, see: }(hjhhhNhNubh reference)}(hrhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/kunit/configs/default.configh]hrhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/kunit/configs/default.config}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhjubh. A }(hjhhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh is a }(hjhhhNhNubjg)}(h ``minconfig``h]h minconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh! (a .config generated by running }(hjhhhNhNubjg)}(h``make savedefconfig``h]hmake savedefconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh{), used for running a specific set of tests. This file contains the regular Kernel configs with specific test targets. The }(hjhhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh also contains any other config options required by the tests (For example: dependencies for features under tests, configs that enable/disable certain code blocks, arch configs and so on).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK@hjzhhubh)}(hubh)}(hhh](h)}(h(Configuring, building, and running testsh]h(Configuring, building, and running tests}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\hhhhhKfubh)}(hIf we want to make manual changes to the KUnit build process, we can run part of the KUnit build process independently. When running kunit_tool, from a ``.kunitconfig``, we can generate a ``.config`` by using the ``config`` argument:h](hIf we want to make manual changes to the KUnit build process, we can run part of the KUnit build process independently. When running kunit_tool, from a }(hjmhhhNhNubjg)}(h``.kunitconfig``h]h .kunitconfig}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmubh, we can generate a }(hjmhhhNhNubjg)}(h ``.config``h]h.config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmubh by using the }(hjmhhhNhNubjg)}(h ``config``h]hconfig}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjmubh argument:}(hjmhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhj\hhubj )}(h%./tools/testing/kunit/kunit.py configh]h%./tools/testing/kunit/kunit.py config}hjsbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhKmhj\hhubh)}(hXTo build a KUnit kernel from the current ``.config``, we can use the ``build`` argument:h](h)To build a KUnit kernel from the current }(hjhhhNhNubjg)}(h ``.config``h]h.config}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh, we can use the }(hjhhhNhNubjg)}(h ``build``h]hbuild}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh argument:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKqhj\hhubj )}(h$./tools/testing/kunit/kunit.py buildh]h$./tools/testing/kunit/kunit.py build}hjsbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhKthj\hhubh)}(hIf we already have built UML kernel with built-in KUnit tests, we can run the kernel, and display the test results with the ``exec`` argument:h](h|If we already have built UML kernel with built-in KUnit tests, we can run the kernel, and display the test results with the }(hjhhhNhNubjg)}(h``exec``h]hexec}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh argument:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKxhj\hhubj )}(h#./tools/testing/kunit/kunit.py exech]h#./tools/testing/kunit/kunit.py exec}hj!sbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhK|hj\hhubh)}(hThe ``run`` command discussed in section: **Running tests with kunit_tool**, is equivalent to running the above three commands in sequence.h](hThe }(hj0hhhNhNubjg)}(h``run``h]hrun}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj0ubh command discussed in section: }(hj0hhhNhNubhstrong)}(h!**Running tests with kunit_tool**h]hRunning tests with kunit_tool}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jJhj0ubh@, is equivalent to running the above three commands in sequence.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj\hhubeh}(h]&configuring-building-and-running-testsah ]h"](configuring, building, and running testsah$]h&]uh1hhhhhhhhKfubh)}(hhh](h)}(hParsing test resultsh]hParsing test results}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhhhhhKubh)}(hKUnit tests output displays results in TAP (Test Anything Protocol) format. When running tests, kunit_tool parses this output and prints a summary. To see the raw test results in TAP format, we can pass the ``--raw_output`` argument:h](hKUnit tests output displays results in TAP (Test Anything Protocol) format. When running tests, kunit_tool parses this output and prints a summary. To see the raw test results in TAP format, we can pass the }(hj}hhhNhNubjg)}(h``--raw_output``h]h --raw_output}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj}ubh argument:}(hj}hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjlhhubj )}(h/./tools/testing/kunit/kunit.py run --raw_outputh]h/./tools/testing/kunit/kunit.py run --raw_output}hjsbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhKhjlhhubh)}(hIf we have KUnit results in the raw TAP format, we can parse them and print the human-readable summary with the ``parse`` command for kunit_tool. This accepts a filename for an argument, or will read from standard input.h](hpIf we have KUnit results in the raw TAP format, we can parse them and print the human-readable summary with the }(hjhhhNhNubjg)}(h ``parse``h]hparse}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubhc command for kunit_tool. This accepts a filename for an argument, or will read from standard input.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjlhhubj )}(h# Reading from a file ./tools/testing/kunit/kunit.py parse /var/log/dmesg # Reading from stdin dmesg | ./tools/testing/kunit/kunit.py parseh]h# Reading from a file ./tools/testing/kunit/kunit.py parse /var/log/dmesg # Reading from stdin dmesg | ./tools/testing/kunit/kunit.py parse}hjsbah}(h]h ]h"]h$]h&]hhjjbashj}uh1j hhhKhjlhhubeh}(h]parsing-test-resultsah ]h"]parsing test resultsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hFiltering testsh]hFiltering tests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hBy passing a bash style glob filter to the ``exec`` or ``run`` commands, we can run a subset of the tests built into a kernel . For example: if we only want to run KUnit resource tests, use:h](h+By passing a bash style glob filter to the }(hjhhhNhNubjg)}(h``exec``h]hexec}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh or }(hjhhhNhNubjg)}(h``run``h]hrun}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh commands, we can run a subset of the tests built into a kernel . For example: if we only want to run KUnit resource tests, use:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj )}(h4./tools/testing/kunit/kunit.py run 'kunit-resource*'h]h4./tools/testing/kunit/kunit.py run 'kunit-resource*'}hj'sbah}(h]h ]h"]h$]h&]hhjjjj}uh1j hhhKhjhhubh)}(hhjU ubh block_quote)}(h- ``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``. h]jY)}(hhh](j^)}(hC``all``: To view the full kernel output, use ``--raw_output=all``. h]h)}(hB``all``: To view the full kernel output, use ``--raw_output=all``.h](jg)}(h``all``h]hall}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj ubh&: To view the full kernel output, use }(hj hhhNhNubjg)}(h``--raw_output=all``h]h--raw_output=all}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM@hj~ ubah}(h]h ]h"]h$]h&]uh1j]hj{ ubj^)}(hs``kunit``: This is the default option and filters to KUnit output. Use ``--raw_output`` or ``--raw_output=kunit``. h]h)}(hr``kunit``: This is the default option and filters to KUnit output. Use ``--raw_output`` or ``--raw_output=kunit``.h](jg)}(h ``kunit``h]hkunit}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj ubh>: This is the default option and filters to KUnit output. Use }(hj hhhNhNubjg)}(h``--raw_output``h]h --raw_output}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj ubh or }(hj hhhNhNubjg)}(h``--raw_output=kunit``h]h--raw_output=kunit}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMBhj ubah}(h]h ]h"]h$]h&]uh1j]hj{ ubeh}(h]h ]h"]h$]h&]jjuh1jXhhhM@hjw ubah}(h]h ]h"]h$]h&]uh1ju hhhM@hjU ubeh}(h]h ]h"]h$]h&]uh1j]hjhhhhhNubj^)}(h``--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. h]h)}(h``--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.h](jg)}(h ``--json``h]h--json}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubhA: If set, stores the test results in a JSON format and prints to }(hjhhhNhNubj )}(h`stdout`h]hstdout}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j hjubh/ or saves to a file if a filename is specified.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMDhjubah}(h]h ]h"]h$]h&]uh1j]hjhhhhhNubj^)}(h``--filter``: Specifies filters on test attributes, for example, ``speed!=slow``. Multiple filters can be used by wrapping input in quotes and separating filters by commas. Example: ``--filter "speed>slow, module=example"``. h]h)}(h``--filter``: Specifies filters on test attributes, for example, ``speed!=slow``. Multiple filters can be used by wrapping input in quotes and separating filters by commas. Example: ``--filter "speed>slow, module=example"``.h](jg)}(h ``--filter``h]h--filter}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNubh5: Specifies filters on test attributes, for example, }(hjNhhhNhNubjg)}(h``speed!=slow``h]h speed!=slow}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNubhf. Multiple filters can be used by wrapping input in quotes and separating filters by commas. Example: }(hjNhhhNhNubjg)}(h)``--filter "speed>slow, module=example"``h]h%--filter "speed>slow, module=example"}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjNubh.}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMGhjJubah}(h]h ]h"]h$]h&]uh1j]hjhhhhhNubj^)}(h~``--filter_action``: If set to ``skip``, filtered tests will be shown as skipped in the output rather than showing no output. h]h)}(h}``--filter_action``: If set to ``skip``, filtered tests will be shown as skipped in the output rather than showing no output.h](jg)}(h``--filter_action``h]h--filter_action}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh : If set to }(hjhhhNhNubjg)}(h``skip``h]hskip}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubhV, filtered tests will be shown as skipped in the output rather than showing no output.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMKhjubah}(h]h ]h"]h$]h&]uh1j]hjhhhhhNubj^)}(h<``--list_tests``: If set, lists all tests that will be run. h]h)}(h;``--list_tests``: If set, lists all tests that will be run.h](jg)}(h``--list_tests``h]h --list_tests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh+: If set, lists all tests that will be run.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMNhjubah}(h]h ]h"]h$]h&]uh1j]hjhhhhhNubj^)}(h]``--list_tests_attr``: If set, lists all tests that will be run and all of their attributes. h]h)}(h\``--list_tests_attr``: If set, lists all tests that will be run and all of their attributes.h](jg)}(h``--list_tests_attr``h]h--list_tests_attr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubhG: If set, lists all tests that will be run and all of their attributes.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMPhjubah}(h]h ]h"]h$]h&]uh1j]hjhhhhhNubj^)}(h>``--list_suites``: If set, lists all suites that will be run. h]h)}(h=``--list_suites``: If set, lists all suites that will be run.h](jg)}(h``--list_suites``h]h --list_suites}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jfhjubh,: If set, lists all suites that will be run.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMShjubah}(h]h ]h"]h$]h&]uh1j]hjhhhhhNubeh}(h]h ]h"]h$]h&]jjuh1jXhhhKhjhhubeh}(h]running-command-line-argumentsah ]h"]running command-line argumentsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hCommand-line completionh]hCommand-line completion}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhhhhhMVubh)}(h3The kunit_tool comes with a bash completion script:h]h3The kunit_tool comes with a bash completion script:}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMXhjLhhubj )}(h.source tools/testing/kunit/kunit-completion.shh]h.source tools/testing/kunit/kunit-completion.sh}hjksbah}(h]h ]h"]h$]h&]hhjjbashj}uh1j hhhMZhjLhhubeh}(h]command-line-completionah ]h"]command-line completionah$]h&]uh1hhhhhhhhMVubeh}(h]running-tests-with-kunit-toolah ]h"]running tests with kunit_toolah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}jQ]jFasnameids}(jjjYjVjijfjjjWjTjjQjjjIjFjj}u nametypes}(jjYjijjWjjjIjuh}(jhjVjzjfj\jjljTjjQjZjjZjFjj}jLu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h3Hyperlink target "kunit-on-qemu" is not referenced.}hjsbah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehnjlineKuh1juba transformerN include_log] decorationNhhub.