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/api/testmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/zh_TW/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/it_IT/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/ja_JP/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/ko_KR/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/sp_SP/dev-tools/kunit/api/testmodnameN 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:spacepreserveuh1hhhhhhF/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test.rsthKubhsection)}(hhh](htitle)}(hTest APIh]hTest API}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(h4This file documents all of the standard testing API.h]h4This file documents all of the standard testing API.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlekunit_status (C enum)c.kunit_statushNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(h kunit_statush]hdesc_signature_line)}(henum kunit_statush](hdesc_sig_keyword)}(henumh]henum}(hhhhhNhNubah}(h]h ]kah"]h$]h&]uh1hhhhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1j hhhhhj hKubh desc_name)}(h kunit_statush]h desc_sig_name)}(hhh]h kunit_status}(hj&hhhNhNubah}(h]h ]nah"]h$]h&]uh1j$hj ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhhhhhj hKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1hsphinx_line_type declaratorhhhhhj hKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhj hKhhhhubh desc_content)}(hhh]h)}(h'Type of result for a test or test suiteh]h'Type of result for a test or test suite}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK7hjRhhubah}(h]h ]h"]h$]h&]uh1jPhhhhhj hKubeh}(h]h ](cenumeh"]h$]h&]domainjmobjtypejndesctypejnnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(h**Constants** ``KUNIT_SUCCESS`` Denotes the test suite has not failed nor been skipped ``KUNIT_FAILURE`` Denotes the test has failed. ``KUNIT_SKIPPED`` Denotes the test has been skipped.h](h)}(h **Constants**h]hstrong)}(hjh]h Constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK;hjzubhdefinition_list)}(hhh](hdefinition_list_item)}(hI``KUNIT_SUCCESS`` Denotes the test suite has not failed nor been skipped h](hterm)}(h``KUNIT_SUCCESS``h]hliteral)}(hjh]h KUNIT_SUCCESS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK>hjubh definition)}(hhh]h)}(h6Denotes the test suite has not failed nor been skippedh]h6Denotes the test suite has not failed nor been skipped}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK>hjubj)}(h/``KUNIT_FAILURE`` Denotes the test has failed. h](j)}(h``KUNIT_FAILURE``h]j)}(hjh]h KUNIT_FAILURE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKAhjubj)}(hhh]h)}(hDenotes the test has failed.h]hDenotes the test has failed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKAhjubj)}(h4``KUNIT_SKIPPED`` Denotes the test has been skipped.h](j)}(h``KUNIT_SKIPPED``h]j)}(hjh]h KUNIT_SKIPPED}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKChjubj)}(hhh]h)}(h"Denotes the test has been skipped.h]h"Denotes the test has been skipped.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKDhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hKChjubeh}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_case (C struct) c.kunit_casehNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_caseh]h)}(hstruct kunit_caseh](h)}(hstructh]hstruct}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjshhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKIubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjshhhjhKIubj)}(h kunit_caseh]j%)}(hjqh]h kunit_case}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjshhhjhKIubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjohhhjhKIubah}(h]jjah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhKIhjlhhubjQ)}(hhh]h)}(h#represents an individual test case.h]h#represents an individual test case.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKYhjhhubah}(h]h ]h"]h$]h&]uh1jPhjlhhhjhKIubeh}(h]h ](jmstructeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(hX**Definition**:: struct kunit_case { void (*run_case)(struct kunit *test); const char *name; const void* (*generate_params)(struct kunit *test, const void *prev, char *desc); struct kunit_attributes attr; int (*param_init)(struct kunit *test); void (*param_exit)(struct kunit *test); }; **Members** ``run_case`` the function representing the actual test case. ``name`` the name of the test case. ``generate_params`` the generator function for parameterized tests. ``attr`` the attributes associated with the test ``param_init`` The init function to run before a parameterized test. ``param_exit`` The exit function to run after a parameterized test.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK]hjubh literal_block)}(hX%struct kunit_case { void (*run_case)(struct kunit *test); const char *name; const void* (*generate_params)(struct kunit *test, const void *prev, char *desc); struct kunit_attributes attr; int (*param_init)(struct kunit *test); void (*param_exit)(struct kunit *test); };h]hX%struct kunit_case { void (*run_case)(struct kunit *test); const char *name; const void* (*generate_params)(struct kunit *test, const void *prev, char *desc); struct kunit_attributes attr; int (*param_init)(struct kunit *test); void (*param_exit)(struct kunit *test); };}hjsbah}(h]h ]h"]h$]h&]hhuh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK_hjubh)}(h **Members**h]j)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhhjubj)}(hhh](j)}(h=``run_case`` the function representing the actual test case. h](j)}(h ``run_case``h]j)}(hj)h]hrun_case}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK\hj#ubj)}(hhh]h)}(h/the function representing the actual test case.h]h/the function representing the actual test case.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hK\hj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hK\hj ubj)}(h$``name`` the name of the test case. h](j)}(h``name``h]j)}(hjbh]hname}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK]hj\ubj)}(hhh]h)}(hthe name of the test case.h]hthe name of the test case.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhK]hjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhK]hj ubj)}(hD``generate_params`` the generator function for parameterized tests. h](j)}(h``generate_params``h]j)}(hjh]hgenerate_params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK^hjubj)}(hhh]h)}(h/the generator function for parameterized tests.h]h/the generator function for parameterized tests.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK^hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK^hj ubj)}(h1``attr`` the attributes associated with the test h](j)}(h``attr``h]j)}(hjh]hattr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK_hjubj)}(hhh]h)}(h'the attributes associated with the testh]h'the attributes associated with the test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK_hj ubj)}(hE``param_init`` The init function to run before a parameterized test. h](j)}(h``param_init``h]j)}(hj h]h param_init}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK`hjubj)}(hhh]h)}(h5The init function to run before a parameterized test.h]h5The init function to run before a parameterized test.}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hK`hj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj"hK`hj ubj)}(hC``param_exit`` The exit function to run after a parameterized test.h](j)}(h``param_exit``h]j)}(hjFh]h param_exit}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK`hj@ubj)}(hhh]h)}(h4The exit function to run after a parameterized test.h]h4The exit function to run after a parameterized test.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKahj\ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj[hK`hj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKdhhhhubh)}(hXdA test case is a function with the signature, ``void (*)(struct kunit *)`` that makes expectations and assertions (see KUNIT_EXPECT_TRUE() and KUNIT_ASSERT_TRUE()) about code under test. Each test case is associated with a :c:type:`struct kunit_suite ` and will be run after the suite's init function and followed by the suite's exit function.h](h.A test case is a function with the signature, }(hjhhhNhNubj)}(h``void (*)(struct kunit *)``h]hvoid (*)(struct kunit *)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh that makes expectations and assertions (see KUNIT_EXPECT_TRUE() and KUNIT_ASSERT_TRUE()) about code under test. Each test case is associated with a }(hjhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](xrefjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocdev-tools/kunit/api/test refdomainjmreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]sb reftarget kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKahjubh_ and will be run after the suite’s init function and followed by the suite’s exit function.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKahhhhubh)}(hA test case should be static and should only be created with the KUNIT_CASE() macro; additionally, every array of test cases should be terminated with an empty test case.h]hA test case should be static and should only be created with the KUNIT_CASE() macro; additionally, every array of test cases should be terminated with an empty test case.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhhhhhubh)}(h **Example**h]j)}(hjh]hExample}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKlhhhhubj)}(hXvoid add_test_basic(struct kunit *test) { KUNIT_EXPECT_EQ(test, 1, add(1, 0)); KUNIT_EXPECT_EQ(test, 2, add(1, 1)); KUNIT_EXPECT_EQ(test, 0, add(-1, 1)); KUNIT_EXPECT_EQ(test, INT_MAX, add(0, INT_MAX)); KUNIT_EXPECT_EQ(test, -1, add(INT_MAX, INT_MIN)); } static struct kunit_case example_test_cases[] = { KUNIT_CASE(add_test_basic), {} };h]hXvoid add_test_basic(struct kunit *test) { KUNIT_EXPECT_EQ(test, 1, add(1, 0)); KUNIT_EXPECT_EQ(test, 2, add(1, 1)); KUNIT_EXPECT_EQ(test, 0, add(-1, 1)); KUNIT_EXPECT_EQ(test, INT_MAX, add(0, INT_MAX)); KUNIT_EXPECT_EQ(test, -1, add(INT_MAX, INT_MIN)); } static struct kunit_case example_test_cases[] = { KUNIT_CASE(add_test_basic), {} };}hjsbah}(h]h ]h"]h$]h&]hhforcelanguagejmhighlight_args}uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKmhhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE (C macro) c.KUNIT_CASEhNtauh1hhhhhhNhNubh)}(hhh](h)}(h KUNIT_CASEh]h)}(h KUNIT_CASEh]j)}(h KUNIT_CASEh]j%)}(hj;h]h KUNIT_CASE}(hjEhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjAubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj=hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj9hhhjXhKubah}(h]j4ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjXhKhj6hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj6hhhjXhKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjqjtjqjujvjwuh1hhhhhhNhNubh)}(h``KUNIT_CASE (test_name)``h]j)}(hjwh]hKUNIT_CASE (test_name)}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhhhhubh block_quote)}(hAA helper for creating a :c:type:`struct kunit_case ` h]h)}(h@A helper for creating a :c:type:`struct kunit_case `h](hA helper for creating a }(hjhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhhhhubjy)}(hX8**Parameters** ``test_name`` a reference to a test case function. **Description** Takes a symbol for a function representing a test case and creates a :c:type:`struct kunit_case ` object from it. See the documentation for :c:type:`struct kunit_case ` for an example on how to use it.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubj)}(hhh]j)}(h3``test_name`` a reference to a test case function. h](j)}(h ``test_name``h]j)}(hjh]h test_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubj)}(hhh]h)}(h$a reference to a test case function.h]h$a reference to a test case function.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj'h]h Description}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubh)}(hTakes a symbol for a function representing a test case and creates a :c:type:`struct kunit_case ` object from it. See the documentation for :c:type:`struct kunit_case ` for an example on how to use it.h](hETakes a symbol for a function representing a test case and creates a }(hj=hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjGh]hstruct kunit_case}(hjIhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj=ubh+ object from it. See the documentation for }(hj=hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjkh]hstruct kunit_case}(hjmhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hhjdhKhj=ubh! for an example on how to use it.}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjdhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_ATTR (C macro)c.KUNIT_CASE_ATTRhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_ATTRh]h)}(hKUNIT_CASE_ATTRh]j)}(hKUNIT_CASE_ATTRh]j%)}(hjh]hKUNIT_CASE_ATTR}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhKubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhKhjhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjhhhjhKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_CASE_ATTR (test_name, attributes)``h]j)}(hjh]h'KUNIT_CASE_ATTR (test_name, attributes)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhhhhubj)}(hQA helper for creating a :c:type:`struct kunit_case ` with attributes h]h)}(hPA helper for creating a :c:type:`struct kunit_case ` with attributesh](hA helper for creating a }(hjhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hj h]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubh with attributes}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj)hKhjubah}(h]h ]h"]h$]h&]uh1jhj)hKhhhhubjy)}(h**Parameters** ``test_name`` a reference to a test case function. ``attributes`` a reference to a struct kunit_attributes object containing test attributesh](h)}(h**Parameters**h]j)}(hj@h]h Parameters}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj:ubj)}(hhh](j)}(h3``test_name`` a reference to a test case function. h](j)}(h ``test_name``h]j)}(hj_h]h test_name}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjYubj)}(hhh]h)}(h$a reference to a test case function.h]h$a reference to a test case function.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthKhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthKhjVubj)}(hY``attributes`` a reference to a struct kunit_attributes object containing test attributesh](j)}(h``attributes``h]j)}(hjh]h attributes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubj)}(hhh]h)}(hJa reference to a struct kunit_attributes object containing test attributesh]hJa reference to a struct kunit_attributes object containing test attributes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjVubeh}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_SLOW (C macro)c.KUNIT_CASE_SLOWhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_SLOWh]h)}(hKUNIT_CASE_SLOWh]j)}(hKUNIT_CASE_SLOWh]j%)}(hjh]hKUNIT_CASE_SLOW}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhKubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhKhjhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjhhhjhKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj!jtj!jujvjwuh1hhhhhhNhNubh)}(h``KUNIT_CASE_SLOW (test_name)``h]j)}(hj'h]hKUNIT_CASE_SLOW (test_name)}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhhhhubj)}(hYA helper for creating a :c:type:`struct kunit_case ` with the slow attribute h]h)}(hXA helper for creating a :c:type:`struct kunit_case ` with the slow attributeh](hA helper for creating a }(hjAhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjKh]hstruct kunit_case}(hjMhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjAubh with the slow attribute}(hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhhKhj=ubah}(h]h ]h"]h$]h&]uh1jhjhhKhhhhubjy)}(hD**Parameters** ``test_name`` a reference to a test case function.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjyubj)}(hhh]j)}(h2``test_name`` a reference to a test case function.h](j)}(h ``test_name``h]j)}(hjh]h test_name}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubj)}(hhh]h)}(h$a reference to a test case function.h]h$a reference to a test case function.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_PARAM (C macro)c.KUNIT_CASE_PARAMhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_PARAMh]h)}(hKUNIT_CASE_PARAMh]j)}(hKUNIT_CASE_PARAMh]j%)}(hjh]hKUNIT_CASE_PARAM}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhj hKubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj hKhjhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjhhhj hKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj( jtj( jujvjwuh1hhhhhhNhNubh)}(h,``KUNIT_CASE_PARAM (test_name, gen_params)``h]j)}(hj. h]h(KUNIT_CASE_PARAM (test_name, gen_params)}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj, ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhhhhubj)}(hOA helper for creation a parameterized :c:type:`struct kunit_case ` h]h)}(hNA helper for creation a parameterized :c:type:`struct kunit_case `h](h&A helper for creation a parameterized }(hjH hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjR h]hstruct kunit_case}(hjT hhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjP ubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjH ubeh}(h]h ]h"]h$]h&]uh1hhjo hKhjD ubah}(h]h ]h"]h$]h&]uh1jhjo hKhhhhubjy)}(hX**Parameters** ``test_name`` a reference to a test case function. ``gen_params`` a reference to a parameter generator function. **Description** The generator function:: const void* gen_params(const void *prev, char *desc) is used to lazily generate a series of arbitrarily typed values that fit into a void*. The argument **prev** is the previously returned value, which should be used to derive the next value; **prev** is set to NULL on the initial generator call. When no more values are available, the generator must return NULL. Optionally write a string into **desc** (size of KUNIT_PARAM_DESC_SIZE) describing the parameter.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj| ubj)}(hhh](j)}(h3``test_name`` a reference to a test case function. h](j)}(h ``test_name``h]j)}(hj h]h test_name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(hhh]h)}(h$a reference to a test case function.h]h$a reference to a test case function.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h>``gen_params`` a reference to a parameter generator function. h](j)}(h``gen_params``h]j)}(hj h]h gen_params}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(hhh]h)}(h.a reference to a parameter generator function.h]h.a reference to a parameter generator function.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj| ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj| ubh)}(hThe generator function::h]hThe generator function:}(hj+ hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj| ubj)}(h4const void* gen_params(const void *prev, char *desc)h]h4const void* gen_params(const void *prev, char *desc)}hj: sbah}(h]h ]h"]h$]h&]hhuh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj| ubh)}(hXis used to lazily generate a series of arbitrarily typed values that fit into a void*. The argument **prev** is the previously returned value, which should be used to derive the next value; **prev** is set to NULL on the initial generator call. When no more values are available, the generator must return NULL. Optionally write a string into **desc** (size of KUNIT_PARAM_DESC_SIZE) describing the parameter.h](hdis used to lazily generate a series of arbitrarily typed values that fit into a void*. The argument }(hjI hhhNhNubj)}(h**prev**h]hprev}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubhR is the previously returned value, which should be used to derive the next value; }(hjI hhhNhNubj)}(h**prev**h]hprev}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubh is set to NULL on the initial generator call. When no more values are available, the generator must return NULL. Optionally write a string into }(hjI hhhNhNubj)}(h**desc**h]hdesc}(hju hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjI ubh: (size of KUNIT_PARAM_DESC_SIZE) describing the parameter.}(hjI hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj| ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_PARAM_ATTR (C macro)c.KUNIT_CASE_PARAM_ATTRhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_PARAM_ATTRh]h)}(hKUNIT_CASE_PARAM_ATTRh]j)}(hKUNIT_CASE_PARAM_ATTRh]j%)}(hj h]hKUNIT_CASE_PARAM_ATTR}(hj hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj hhhj hKubah}(h]j ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj hKhj hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj hhhj hKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj jtj jujvjwuh1hhhhhhNhNubh)}(h=``KUNIT_CASE_PARAM_ATTR (test_name, gen_params, attributes)``h]j)}(hj h]h9KUNIT_CASE_PARAM_ATTR (test_name, gen_params, attributes)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhhhhubj)}(h_A helper for creating a parameterized :c:type:`struct kunit_case ` with attributes h]h)}(h^A helper for creating a parameterized :c:type:`struct kunit_case ` with attributesh](h&A helper for creating a parameterized }(hj hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hj h]hstruct kunit_case}(hj hhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubh with attributes}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj% hKhj ubah}(h]h ]h"]h$]h&]uh1jhj% hKhhhhubjy)}(h**Parameters** ``test_name`` a reference to a test case function. ``gen_params`` a reference to a parameter generator function. ``attributes`` a reference to a struct kunit_attributes object containing test attributesh](h)}(h**Parameters**h]j)}(hj< h]h Parameters}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj: ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj6 ubj)}(hhh](j)}(h3``test_name`` a reference to a test case function. h](j)}(h ``test_name``h]j)}(hj[ h]h test_name}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjU ubj)}(hhh]h)}(h$a reference to a test case function.h]h$a reference to a test case function.}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp hKhjq ubah}(h]h ]h"]h$]h&]uh1jhjU ubeh}(h]h ]h"]h$]h&]uh1jhjp hKhjR ubj)}(h>``gen_params`` a reference to a parameter generator function. h](j)}(h``gen_params``h]j)}(hj h]h gen_params}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(hhh]h)}(h.a reference to a parameter generator function.h]h.a reference to a parameter generator function.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjR ubj)}(hY``attributes`` a reference to a struct kunit_attributes object containing test attributesh](j)}(h``attributes``h]j)}(hj h]h attributes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(hhh]h)}(hJa reference to a struct kunit_attributes object containing test attributesh]hJa reference to a struct kunit_attributes object containing test attributes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjR ubeh}(h]h ]h"]h$]h&]uh1jhj6 ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$KUNIT_CASE_PARAM_WITH_INIT (C macro)c.KUNIT_CASE_PARAM_WITH_INIThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_PARAM_WITH_INITh]h)}(hKUNIT_CASE_PARAM_WITH_INITh]j)}(hKUNIT_CASE_PARAM_WITH_INITh]j%)}(hj h]hKUNIT_CASE_PARAM_WITH_INIT}(hj* hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj& ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj" hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj hhhj= hKubah}(h]j ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj= hKhj hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj hhhj= hKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjV jtjV jujvjwuh1hhhhhhNhNubh)}(hB``KUNIT_CASE_PARAM_WITH_INIT (test_name, gen_params, init, exit)``h]j)}(hj\ h]h>KUNIT_CASE_PARAM_WITH_INIT (test_name, gen_params, init, exit)}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZ ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhhhhubj)}(h\Define a parameterized KUnit test case with custom param_init() and param_exit() functions. h]h)}(h[Define a parameterized KUnit test case with custom param_init() and param_exit() functions.h]h[Define a parameterized KUnit test case with custom param_init() and param_exit() functions.}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjr ubah}(h]h ]h"]h$]h&]uh1jhj hKhhhhubjy)}(hX**Parameters** ``test_name`` The function implementing the test case. ``gen_params`` The function to generate parameters for the test case. ``init`` A reference to the param_init() function to run before a parameterized test. ``exit`` A reference to the param_exit() function to run after a parameterized test. **Description** Provides the option to register param_init() and param_exit() functions. param_init/exit will be passed the parameterized test context and run once before and once after the parameterized test. The init function can be used to add resources to share between parameter runs, pass parameter arrays, and any other setup logic. The exit function can be used to clean up resources that were not managed by the parameterized test, and any other teardown logic. **Note** If you are registering a parameter array in param_init() with kunit_register_param_array() then you need to pass kunit_array_gen_params() to this as the generator function.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(hhh](j)}(h7``test_name`` The function implementing the test case. h](j)}(h ``test_name``h]j)}(hj h]h test_name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(hhh]h)}(h(The function implementing the test case.h]h(The function implementing the test case.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hF``gen_params`` The function to generate parameters for the test case. h](j)}(h``gen_params``h]j)}(hj h]h gen_params}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(hhh]h)}(h6The function to generate parameters for the test case.h]h6The function to generate parameters for the test case.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hV``init`` A reference to the param_init() function to run before a parameterized test. h](j)}(h``init``h]j)}(hj" h]hinit}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(hhh]h)}(hLA reference to the param_init() function to run before a parameterized test.h]hLA reference to the param_init() function to run before a parameterized test.}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7 hKhj8 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj7 hKhj ubj)}(hU``exit`` A reference to the param_exit() function to run after a parameterized test. h](j)}(h``exit``h]j)}(hj[ h]hexit}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjU ubj)}(hhh]h)}(hKA reference to the param_exit() function to run after a parameterized test.h]hKA reference to the param_exit() function to run after a parameterized test.}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp hKhjq ubah}(h]h ]h"]h$]h&]uh1jhjU ubeh}(h]h ]h"]h$]h&]uh1jhjp hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubh)}(hXProvides the option to register param_init() and param_exit() functions. param_init/exit will be passed the parameterized test context and run once before and once after the parameterized test. The init function can be used to add resources to share between parameter runs, pass parameter arrays, and any other setup logic. The exit function can be used to clean up resources that were not managed by the parameterized test, and any other teardown logic.h]hXProvides the option to register param_init() and param_exit() functions. param_init/exit will be passed the parameterized test context and run once before and once after the parameterized test. The init function can be used to add resources to share between parameter runs, pass parameter arrays, and any other setup logic. The exit function can be used to clean up resources that were not managed by the parameterized test, and any other teardown logic.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubh)}(h**Note**h]j)}(hj h]hNote}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubh)}(hIf you are registering a parameter array in param_init() with kunit_register_param_array() then you need to pass kunit_array_gen_params() to this as the generator function.h]hIf you are registering a parameter array in param_init() with kunit_register_param_array() then you need to pass kunit_array_gen_params() to this as the generator function.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_suite (C struct) c.kunit_suitehNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_suiteh]h)}(hstruct kunit_suiteh](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhjhKubj)}(h kunit_suiteh]j%)}(hj h]h kunit_suite}(hj"hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj hhhjhKubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj hhhjhKubah}(h]j ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhKhj hhubjQ)}(hhh]h)}(hJdescribes a related collection of :c:type:`struct kunit_case `h](h"describes a related collection of }(hjDhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjNh]hstruct kunit_case}(hjPhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjj)}j]j ASTIdentifier)} identifierj sb c.kunit_suiteasbj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjDubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjAhhubah}(h]h ]h"]h$]h&]uh1jPhj hhhjhKubeh}(h]h ](jmstructeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(hX**Definition**:: struct kunit_suite { const char name[256]; int (*suite_init)(struct kunit_suite *suite); void (*suite_exit)(struct kunit_suite *suite); int (*init)(struct kunit *test); void (*exit)(struct kunit *test); struct kunit_case *test_cases; struct kunit_attributes attr; }; **Members** ``name`` the name of the test. Purely informational. ``suite_init`` called once per test suite before the test cases. ``suite_exit`` called once per test suite after all test cases. ``init`` called before every test case. ``exit`` called after every test case. ``test_cases`` a null terminated array of test cases. ``attr`` the attributes associated with the test suiteh](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hX&struct kunit_suite { const char name[256]; int (*suite_init)(struct kunit_suite *suite); void (*suite_exit)(struct kunit_suite *suite); int (*init)(struct kunit *test); void (*exit)(struct kunit *test); struct kunit_case *test_cases; struct kunit_attributes attr; };h]hX&struct kunit_suite { const char name[256]; int (*suite_init)(struct kunit_suite *suite); void (*suite_exit)(struct kunit_suite *suite); int (*init)(struct kunit *test); void (*exit)(struct kunit *test); struct kunit_case *test_cases; struct kunit_attributes attr; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjubj)}(hhh](j)}(h5``name`` the name of the test. Purely informational. h](j)}(h``name``h]j)}(hjh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubj)}(hhh]h)}(h+the name of the test. Purely informational.h]h+the name of the test. Purely informational.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hA``suite_init`` called once per test suite before the test cases. h](j)}(h``suite_init``h]j)}(hjh]h suite_init}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h1called once per test suite before the test cases.h]h1called once per test suite before the test cases.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hMhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj)hMhjubj)}(h@``suite_exit`` called once per test suite after all test cases. h](j)}(h``suite_exit``h]j)}(hjMh]h suite_exit}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjGubj)}(hhh]h)}(h0called once per test suite after all test cases.h]h0called once per test suite after all test cases.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhMhjcubah}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1jhjbhMhjubj)}(h(``init`` called before every test case. h](j)}(h``init``h]j)}(hjh]hinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hcalled before every test case.h]hcalled before every test case.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h'``exit`` called after every test case. h](j)}(h``exit``h]j)}(hjh]hexit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hcalled after every test case.h]hcalled after every test case.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h6``test_cases`` a null terminated array of test cases. h](j)}(h``test_cases``h]j)}(hjh]h test_cases}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h&a null terminated array of test cases.h]h&a null terminated array of test cases.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h6``attr`` the attributes associated with the test suiteh](j)}(h``attr``h]j)}(hj1h]hattr}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj+ubj)}(hhh]h)}(h-the attributes associated with the test suiteh]h-the attributes associated with the test suite}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(h**Description**h]j)}(hjth]h Description}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjrubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubh)}(hX-A kunit_suite is a collection of related :c:type:`struct kunit_case ` s, such that **init** is called before every test case and **exit** is called after every test case, similar to the notion of a *test fixture* or a *test class* in other unit testing frameworks like JUnit or Googletest.h](h)A kunit_suite is a collection of related }(hjhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh s, such that }(hjhhhNhNubj)}(h**init**h]hinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh& is called before every test case and }(hjhhhNhNubj)}(h**exit**h]hexit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh= is called after every test case, similar to the notion of a }(hjhhhNhNubhemphasis)}(h*test fixture*h]h test fixture}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or a }(hjhhhNhNubj)}(h *test class*h]h test class}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh; in other unit testing frameworks like JUnit or Googletest.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhhhhubh)}(hNote that **exit** and **suite_exit** will run even if **init** or **suite_init** fail: make sure they can handle any inconsistent state which may result.h](h Note that }(hjhhhNhNubj)}(h**exit**h]hexit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h**suite_exit**h]h suite_exit}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh will run even if }(hjhhhNhNubj)}(h**init**h]hinit}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h**suite_init**h]h suite_init}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhI fail: make sure they can handle any inconsistent state which may result.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hhhhubh)}(hiEvery :c:type:`struct kunit_case ` must be associated with a kunit_suite for KUnit to run it.h](hEvery }(hj]hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjgh]hstruct kunit_case}(hjihhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hj]ubh; must be associated with a kunit_suite for KUnit to run it.}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM hhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit (C struct)c.kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunith]h)}(h struct kunith](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hkunith]j%)}(hjh]hkunit}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjhhubjQ)}(hhh]h)}(h(represents a running instance of a test.h]h(represents a running instance of a test.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM7hjhhubah}(h]h ]h"]h$]h&]uh1jPhjhhhjhMubeh}(h]h ](jmstructeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(hX**Definition**:: struct kunit { void *priv; struct kunit *parent; struct kunit_params params_array; }; **Members** ``priv`` for user to store arbitrary data. Commonly used to pass data created in the init function (see :c:type:`struct kunit_suite `). ``parent`` reference to the parent context of type struct kunit that can be used for storing shared resources. ``params_array`` for storing the parameter array.h](h)}(h**Definition**::h](j)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM;hjubj)}(hastruct kunit { void *priv; struct kunit *parent; struct kunit_params params_array; };h]hastruct kunit { void *priv; struct kunit *parent; struct kunit_params params_array; };}hj'sbah}(h]h ]h"]h$]h&]hhuh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM=hjubh)}(h **Members**h]j)}(hj8h]hMembers}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMChjubj)}(hhh](j)}(h``priv`` for user to store arbitrary data. Commonly used to pass data created in the init function (see :c:type:`struct kunit_suite `). h](j)}(h``priv``h]j)}(hjWh]hpriv}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM;hjQubj)}(hhh]h)}(hfor user to store arbitrary data. Commonly used to pass data created in the init function (see :c:type:`struct kunit_suite `).h](h_for user to store arbitrary data. Commonly used to pass data created in the init function (see }(hjphhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjzh]hstruct kunit_suite}(hj|hhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM:hjpubh).}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM:hjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjlhM;hjNubj)}(ho``parent`` reference to the parent context of type struct kunit that can be used for storing shared resources. h](j)}(h ``parent``h]j)}(hjh]hparent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM=hjubj)}(hhh]h)}(hcreference to the parent context of type struct kunit that can be used for storing shared resources.h]hcreference to the parent context of type struct kunit that can be used for storing shared resources.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM<hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM=hjNubj)}(h1``params_array`` for storing the parameter array.h](j)}(h``params_array``h]j)}(hjh]h params_array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM=hjubj)}(hhh]h)}(h for storing the parameter array.h]h for storing the parameter array.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM=hjNubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(h**Description**h]j)}(hj1h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMAhhhhubh)}(hXtUsed to store information about the current context under which the test is running. Most of this data is private and should only be accessed indirectly via public functions; the exceptions are **priv**, **parent** and **params_array** which can be used by the test writer to store arbitrary data, access the parent context, and to store the parameter array, respectively.h](hUsed to store information about the current context under which the test is running. Most of this data is private and should only be accessed indirectly via public functions; the exceptions are }(hjGhhhNhNubj)}(h**priv**h]hpriv}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh, }(hjGhhhNhNubj)}(h **parent**h]hparent}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh and }(hjGhhhNhNubj)}(h**params_array**h]h params_array}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh which can be used by the test writer to store arbitrary data, access the parent context, and to store the parameter array, respectively.}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM>hhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_test_suites (C macro)c.kunit_test_suiteshNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunit_test_suitesh]h)}(hkunit_test_suitesh]j)}(hkunit_test_suitesh]j%)}(hjh]hkunit_test_suites}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjhhhjhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubh)}(h#``kunit_test_suites (__suites...)``h]j)}(hjh]hkunit_test_suites (__suites...)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hTused to register one or more :c:type:`struct kunit_suite ` with KUnit. h]h)}(hSused to register one or more :c:type:`struct kunit_suite ` with KUnit.h](hused to register one or more }(hjhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh with KUnit.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjhMhhhhubjy)}(hX**Parameters** ``__suites...`` a statically allocated list of :c:type:`struct kunit_suite `. **Description** Registers **suites** with the test framework. This is done by placing the array of struct kunit_suite * in the .kunit_test_suites ELF section. When builtin, KUnit tests are all run via the executor at boot, and when built as a module, they run on module load.h](h)}(h**Parameters**h]j)}(hj3h]h Parameters}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj-ubj)}(hhh]j)}(h[``__suites...`` a statically allocated list of :c:type:`struct kunit_suite `. h](j)}(h``__suites...``h]j)}(hjRh]h __suites...}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjLubj)}(hhh]h)}(hJa statically allocated list of :c:type:`struct kunit_suite `.h](ha statically allocated list of }(hjkhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjuh]hstruct kunit_suite}(hjwhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_suiteuh1hhjghMhjkubh.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjghMhjhubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjghMhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj-ubh)}(hRegisters **suites** with the test framework. This is done by placing the array of struct kunit_suite * in the .kunit_test_suites ELF section.h](h Registers }(hjhhhNhNubj)}(h **suites**h]hsuites}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhz with the test framework. This is done by placing the array of struct kunit_suite * in the .kunit_test_suites ELF section.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj-ubh)}(htWhen builtin, KUnit tests are all run via the executor at boot, and when built as a module, they run on module load.h]htWhen builtin, KUnit tests are all run via the executor at boot, and when built as a module, they run on module load.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(kunit_test_init_section_suites (C macro) c.kunit_test_init_section_suiteshNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunit_test_init_section_suitesh]h)}(hkunit_test_init_section_suitesh]j)}(hkunit_test_init_section_suitesh]j%)}(hjh]hkunit_test_init_section_suites}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhj-hMubah}(h]j ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj-hMhj hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj hhhj-hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjFjtjFjujvjwuh1hhhhhhNhNubh)}(h0``kunit_test_init_section_suites (__suites...)``h]j)}(hjLh]h,kunit_test_init_section_suites (__suites...)}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hpused to register one or more :c:type:`struct kunit_suite ` containing init functions or init data. h]h)}(housed to register one or more :c:type:`struct kunit_suite ` containing init functions or init data.h](hused to register one or more }(hjfhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjph]hstruct kunit_suite}(hjrhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjfubh( containing init functions or init data.}(hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjbubah}(h]h ]h"]h$]h&]uh1jhjhMhhhhubjy)}(hX**Parameters** ``__suites...`` a statically allocated list of :c:type:`struct kunit_suite `. **Description** This functions similar to kunit_test_suites() except that it compiles the list of suites during init phase. This macro also suffixes the array and suite declarations it makes with _probe; so that modpost suppresses warnings about referencing init data for symbols named in this manner. **Note** these init tests are not able to be run after boot so there is no "run" debugfs file generated for these tests. Also, do not mark the suite or test case structs with __initdata because they will be used after the init phase with debugfs.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]j)}(h[``__suites...`` a statically allocated list of :c:type:`struct kunit_suite `. h](j)}(h``__suites...``h]j)}(hjh]h __suites...}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hJa statically allocated list of :c:type:`struct kunit_suite `.h](ha statically allocated list of }(hjhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj kunit_suiteuh1hhjhMhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj!h]h Description}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(hkThis functions similar to kunit_test_suites() except that it compiles the list of suites during init phase.h]hkThis functions similar to kunit_test_suites() except that it compiles the list of suites during init phase.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(hThis macro also suffixes the array and suite declarations it makes with _probe; so that modpost suppresses warnings about referencing init data for symbols named in this manner.h]hThis macro also suffixes the array and suite declarations it makes with _probe; so that modpost suppresses warnings about referencing init data for symbols named in this manner.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(h**Note**h]j)}(hjWh]hNote}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(hothese init tests are not able to be run after boot so there is no "run" debugfs file generated for these tests.h]hsthese init tests are not able to be run after boot so there is no “run” debugfs file generated for these tests.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(h}Also, do not mark the suite or test case structs with __initdata because they will be used after the init phase with debugfs.h]h}Also, do not mark the suite or test case structs with __initdata because they will be used after the init phase with debugfs.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h kunit_kmalloc_array (C function)c.kunit_kmalloc_arrayhNtauh1hhhhhhNhNubh)}(hhh](h)}(hQvoid * kunit_kmalloc_array (struct kunit *test, size_t n, size_t size, gfp_t gfp)h]h)}(hOvoid *kunit_kmalloc_array(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](hdesc_sig_keyword_type)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhMubj)}(hkunit_kmalloc_arrayh]j%)}(hkunit_kmalloc_arrayh]hkunit_kmalloc_array}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhjhMubhdesc_parameterlist)}(h6(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](hdesc_parameter)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetj modnameN classnameNjj)}j]jn)}jqjsbc.kunit_kmalloc_arrayasbuh1hhjubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hjYhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hsize_t nh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjuhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjrubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjwmodnameN classnameNjj)}j]j:c.kunit_kmalloc_arrayasbuh1hhjnubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjnubj%)}(hj0h]hn}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjnubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjmodnameN classnameNjj)}j]j:c.kunit_kmalloc_arrayasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjmodnameN classnameNjj)}j]j:c.kunit_kmalloc_arrayasbuh1hhjubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hgfph]hgfp}(hj0hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjhhubjQ)}(hhh]h)}(h=Like kmalloc_array() except the allocation is *test managed*.h](h.Like kmalloc_array() except the allocation is }(hjZhhhNhNubj)}(h*test managed*h]h test managed}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubh.}(hjZhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjWhhubah}(h]h ]h"]h$]h&]uh1jPhjhhhjhMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``size_t n`` number of elements. ``size_t size`` The size in bytes of the desired memory. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** Just like `kmalloc_array(...)`, except the allocation is managed by the test case and is automatically cleaned up after the test case concludes. See kunit_add_action() for more information. Note that some internal context data is also allocated with GFP_KERNEL, regardless of the gfp passed in.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hjh]hstruct kunit *test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h!``size_t n`` number of elements. h](j)}(h ``size_t n``h]j)}(hjh]hsize_t n}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hnumber of elements.h]hnumber of elements.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h9``size_t size`` The size in bytes of the desired memory. h](j)}(h``size_t size``h]j)}(hjh]h size_t size}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h(The size in bytes of the desired memory.h]h(The size in bytes of the desired memory.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hjXh]h gfp_t gfp}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjRubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjmhMhjnubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(hJust like `kmalloc_array(...)`, except the allocation is managed by the test case and is automatically cleaned up after the test case concludes. See kunit_add_action() for more information.h](h Just like }(hjhhhNhNubhtitle_reference)}(h`kmalloc_array(...)`h]hkmalloc_array(...)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, except the allocation is managed by the test case and is automatically cleaned up after the test case concludes. See kunit_add_action() for more information.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(hhNote that some internal context data is also allocated with GFP_KERNEL, regardless of the gfp passed in.h]hhNote that some internal context data is also allocated with GFP_KERNEL, regardless of the gfp passed in.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kmalloc (C function)c.kunit_kmallochNtauh1hhhhhhNhNubh)}(hhh](h)}(hAvoid * kunit_kmalloc (struct kunit *test, size_t size, gfp_t gfp)h]h)}(h?void *kunit_kmalloc(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj hMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj hMubj)}(h kunit_kmalloch]j%)}(h kunit_kmalloch]h kunit_kmalloc}(hj)hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj%ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhj hMubj)}(h,(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjAubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubh)}(hhh]j%)}(hkunith]hkunit}(hjchhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj`ubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjemodnameN classnameNjj)}j]jn)}jqj+sbc.kunit_kmallocasbuh1hhjAubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjAubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjAubj%)}(htesth]htest}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjAubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj=ubj)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjmodnameN classnameNjj)}j]jc.kunit_kmallocasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj=ubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjmodnameN classnameNjj)}j]jc.kunit_kmallocasbuh1hhjubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hgfph]hgfp}(hj.hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj=ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhj hMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhj hMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj hMhjhhubjQ)}(hhh]h)}(h7Like kmalloc() except the allocation is *test managed*.h](h(Like kmalloc() except the allocation is }(hjXhhhNhNubj)}(h*test managed*h]h test managed}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjUhhubah}(h]h ]h"]h$]h&]uh1jPhjhhhj hMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(hXn**Parameters** ``struct kunit *test`` The test context object. ``size_t size`` The size in bytes of the desired memory. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** See kmalloc() and kunit_kmalloc_array() for more information. Note that some internal context data is also allocated with GFP_KERNEL, regardless of the gfp passed in.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hjh]hstruct kunit *test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h9``size_t size`` The size in bytes of the desired memory. h](j)}(h``size_t size``h]j)}(hjh]h size_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h(The size in bytes of the desired memory.h]h(The size in bytes of the desired memory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hjh]h gfp_t gfp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjXh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(h=See kmalloc() and kunit_kmalloc_array() for more information.h]h=See kmalloc() and kunit_kmalloc_array() for more information.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(hhNote that some internal context data is also allocated with GFP_KERNEL, regardless of the gfp passed in.h]hhNote that some internal context data is also allocated with GFP_KERNEL, regardless of the gfp passed in.}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kfree (C function) c.kunit_kfreehNtauh1hhhhhhNhNubh)}(hhh](h)}(h6void kunit_kfree (struct kunit *test, const void *ptr)h]h)}(h5void kunit_kfree(struct kunit *test, const void *ptr)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h kunit_kfreeh]j%)}(h kunit_kfreeh]h kunit_kfree}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhjhMubj)}(h%(struct kunit *test, const void *ptr)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetj modnameN classnameNjj)}j]jn)}jqjsb c.kunit_kfreeasbuh1hhjubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hjBhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst void *ptrh](h)}(hconsth]hconst}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjWubj)}(h h]h }(hjihhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj)}(hvoidh]hvoid}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjWubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjWubj%)}(hptrh]hptr}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjWubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjhhubjQ)}(hhh]h)}(h3Like kfree except for allocations managed by KUnit.h]h3Like kfree except for allocations managed by KUnit.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jPhjhhhjhMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(h**Parameters** ``struct kunit *test`` The test case to which the resource belongs. ``const void *ptr`` The memory allocation to free.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh](j)}(hD``struct kunit *test`` The test case to which the resource belongs. h](j)}(h``struct kunit *test``h]j)}(hj h]hstruct kunit *test}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h,The test case to which the resource belongs.h]h,The test case to which the resource belongs.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj!ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h2``const void *ptr`` The memory allocation to free.h](j)}(h``const void *ptr``h]j)}(hjDh]hconst void *ptr}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj>ubj)}(hhh]h)}(hThe memory allocation to free.h]hThe memory allocation to free.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjZubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhjYhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kzalloc (C function)c.kunit_kzallochNtauh1hhhhhhNhNubh)}(hhh](h)}(hAvoid * kunit_kzalloc (struct kunit *test, size_t size, gfp_t gfp)h]h)}(h?void *kunit_kzalloc(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(h kunit_kzalloch]j%)}(h kunit_kzalloch]h kunit_kzalloc}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhjhMubj)}(h,(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjmodnameN classnameNjj)}j]jn)}jqjsbc.kunit_kzallocasbuh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hjAhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hj]hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjZubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetj_modnameN classnameNjj)}j]j"c.kunit_kzallocasbuh1hhjVubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjVubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjmodnameN classnameNjj)}j]j"c.kunit_kzallocasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hgfph]hgfp}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjhhubjQ)}(hhh]h)}(h5Just like kunit_kmalloc(), but zeroes the allocation.h]h5Just like kunit_kmalloc(), but zeroes the allocation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jPhjhhhjhMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj jtj jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``size_t size`` The size in bytes of the desired memory. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** See kzalloc() and kunit_kmalloc_array() for more information.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj ubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hj< h]hstruct kunit *test}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj: ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj6 ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQ hMhjR ubah}(h]h ]h"]h$]h&]uh1jhj6 ubeh}(h]h ]h"]h$]h&]uh1jhjQ hMhj3 ubj)}(h9``size_t size`` The size in bytes of the desired memory. h](j)}(h``size_t size``h]j)}(hju h]h size_t size}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjo ubj)}(hhh]h)}(h(The size in bytes of the desired memory.h]h(The size in bytes of the desired memory.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhjo ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj3 ubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hj h]h gfp_t gfp}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj ubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj3 ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj ubh)}(h=See kzalloc() and kunit_kmalloc_array() for more information.h]h=See kzalloc() and kunit_kmalloc_array() for more information.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kcalloc (C function)c.kunit_kcallochNtauh1hhhhhhNhNubh)}(hhh](h)}(hKvoid * kunit_kcalloc (struct kunit *test, size_t n, size_t size, gfp_t gfp)h]h)}(hIvoid *kunit_kcalloc(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](j)}(hvoidh]hvoid}(hj.!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*!hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM ubj)}(h h]h }(hj=!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*!hhhj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:$hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjM$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj:$hhhjL$hMubj)}(hkunit_kfree_consth]j%)}(hkunit_kfree_consth]hkunit_kfree_const}(hj_$hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj[$ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj:$hhhjL$hMubj)}(h#(struct kunit *test, const void *x)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hj{$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjw$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjw$ubh)}(hhh]j%)}(hkunith]hkunit}(hj$hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj$ubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetj$modnameN classnameNjj)}j]jn)}jqja$sbc.kunit_kfree_constasbuh1hhjw$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjw$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw$ubj%)}(htesth]htest}(hj$hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjw$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjs$ubj)}(h const void *xh](h)}(hj]h]hconst}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj)}(hjh]h*}(hj$%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj%)}(hxh]hx}(hj1%hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjs$ubeh}(h]h ]h"]h$]h&]hhuh1jhj:$hhhjL$hMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj6$hhhjL$hMubah}(h]j1$ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjL$hMhj3$hhubjQ)}(hhh]h)}(h&conditionally free test managed memoryh]h&conditionally free test managed memory}(hj[%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjX%hhubah}(h]h ]h"]h$]h&]uh1jPhj3$hhhjL$hMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjs%jtjs%jujvjwuh1hhhhhhNhNubjy)}(h**Parameters** ``struct kunit *test`` The test context object. ``const void *x`` pointer to the memory **Description** Calls kunit_kfree() only if **x** is not in .rodata section. See kunit_kstrdup_const() for more information.h](h)}(h**Parameters**h]j)}(hj}%h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{%ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjw%ubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hj%h]hstruct kunit *test}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj%ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhj%ubj)}(h(``const void *x`` pointer to the memory h](j)}(h``const void *x``h]j)}(hj%h]h const void *x}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj%ubj)}(hhh]h)}(hpointer to the memoryh]hpointer to the memory}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhj%ubeh}(h]h ]h"]h$]h&]uh1jhjw%ubh)}(h**Description**h]j)}(hj&h]h Description}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjw%ubh)}(hlCalls kunit_kfree() only if **x** is not in .rodata section. See kunit_kstrdup_const() for more information.h](hCalls kunit_kfree() only if }(hj&&hhhNhNubj)}(h**x**h]hx}(hj.&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&&ubhK is not in .rodata section. See kunit_kstrdup_const() for more information.}(hj&&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjw%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kstrdup (C function)c.kunit_kstrduphNtauh1hhhhhhNhNubh)}(hhh](h)}(hEchar * kunit_kstrdup (struct kunit *test, const char *str, gfp_t gfp)h]h)}(hCchar *kunit_kstrdup(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hcharh]hchar}(hjg&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc&hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM&ubj)}(h h]h }(hjv&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjc&hhhju&hM&ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjc&hhhju&hM&ubj)}(h kunit_kstrduph]j%)}(h kunit_kstrduph]h kunit_kstrdup}(hj&hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj&ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjc&hhhju&hM&ubj)}(h0(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubh)}(hhh]j%)}(hkunith]hkunit}(hj&hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj&ubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetj&modnameN classnameNjj)}j]jn)}jqj&sbc.kunit_kstrdupasbuh1hhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj%)}(htesth]htest}(hj 'hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubj)}(hconst char *strh](h)}(hj]h]hconst}(hj#'hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj'ubj)}(h h]h }(hj0'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hcharh]hchar}(hj>'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj)}(h h]h }(hjL'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj'ubj)}(hjh]h*}(hjZ'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'ubj%)}(hstrh]hstr}(hjg'hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hj'hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj'ubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetj'modnameN classnameNjj)}j]j&c.kunit_kstrdupasbuh1hhj|'ubj)}(h h]h }(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|'ubj%)}(hgfph]hgfp}(hj'hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj|'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubeh}(h]h ]h"]h$]h&]hhuh1jhjc&hhhju&hM&ubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj_&hhhju&hM&ubah}(h]jZ&ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhju&hM&hj\&hhubjQ)}(hhh]h)}(h3Duplicates a string into a test managed allocation.h]h3Duplicates a string into a test managed allocation.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM&hj'hhubah}(h]h ]h"]h$]h&]uh1jPhj\&hhhju&hM&ubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj'jtj'jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``const char *str`` The NULL-terminated string to duplicate. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** See kstrdup() and kunit_kmalloc_array() for more information.h](h)}(h**Parameters**h]j)}(hj'h]h Parameters}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM*hj'ubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hj(h]hstruct kunit *test}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM(hj(ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj3(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/(hM(hj0(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj/(hM(hj(ubj)}(h=``const char *str`` The NULL-terminated string to duplicate. h](j)}(h``const char *str``h]j)}(hjS(h]hconst char *str}(hjU(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ(ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM)hjM(ubj)}(hhh]h)}(h(The NULL-terminated string to duplicate.h]h(The NULL-terminated string to duplicate.}(hjl(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjh(hM)hji(ubah}(h]h ]h"]h$]h&]uh1jhjM(ubeh}(h]h ]h"]h$]h&]uh1jhjh(hM)hj(ubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hj(h]h gfp_t gfp}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM*hj(ubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(hM*hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj(hM*hj(ubeh}(h]h ]h"]h$]h&]uh1jhj'ubh)}(h**Description**h]j)}(hj(h]h Description}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM,hj'ubh)}(h=See kstrdup() and kunit_kmalloc_array() for more information.h]h=See kstrdup() and kunit_kmalloc_array() for more information.}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM+hj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h kunit_kstrdup_const (C function)c.kunit_kstrdup_consthNtauh1hhhhhhNhNubh)}(hhh](h)}(hQconst char * kunit_kstrdup_const (struct kunit *test, const char *str, gfp_t gfp)h]h)}(hOconst char *kunit_kstrdup_const(struct kunit *test, const char *str, gfp_t gfp)h](h)}(hj]h]hconst}(hj )hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM>ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)hhhj)hM>ubj)}(hcharh]hchar}(hj()hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hM>ubj)}(h h]h }(hj6)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)hhhj)hM>ubj)}(hjh]h*}(hjD)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj)hM>ubj)}(hkunit_kstrdup_consth]j%)}(hkunit_kstrdup_consth]hkunit_kstrdup_const}(hjU)hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjQ)ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj)hhhj)hM>ubj)}(h0(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjq)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjm)ubj)}(h h]h }(hj~)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm)ubh)}(hhh]j%)}(hkunith]hkunit}(hj)hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj)ubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetj)modnameN classnameNjj)}j]jn)}jqjW)sbc.kunit_kstrdup_constasbuh1hhjm)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjm)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm)ubj%)}(htesth]htest}(hj)hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjm)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhji)ubj)}(hconst char *strh](h)}(hj]h]hconst}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hcharh]hchar}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(h h]h }(hj *hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj)ubj)}(hjh]h*}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj%)}(hstrh]hstr}(hj'*hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhji)ubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hjC*hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj@*ubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjE*modnameN classnameNjj)}j]j)c.kunit_kstrdup_constasbuh1hhj<*ubj)}(h h]h }(hja*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj<*ubj%)}(hgfph]hgfp}(hjo*hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj<*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhji)ubeh}(h]h ]h"]h$]h&]hhuh1jhj)hhhj)hM>ubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj)hhhj)hM>ubah}(h]j(ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj)hM>hj)hhubjQ)}(hhh]h)}(hAConditionally duplicates a string into a test managed allocation.h]hAConditionally duplicates a string into a test managed allocation.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM>hj*hhubah}(h]h ]h"]h$]h&]uh1jPhj)hhhj)hM>ubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj*jtj*jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``const char *str`` The NULL-terminated string to duplicate. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** Calls kunit_kstrdup() only if **str** is not in the rodata section. Must be freed with kunit_kfree_const() -- not kunit_kfree(). See kstrdup_const() and kunit_kmalloc_array() for more information.h](h)}(h**Parameters**h]j)}(hj*h]h Parameters}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMBhj*ubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hj*h]hstruct kunit *test}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM@hj*ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hM@hj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hM@hj*ubj)}(h=``const char *str`` The NULL-terminated string to duplicate. h](j)}(h``const char *str``h]j)}(hj+h]hconst char *str}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMAhj +ubj)}(hhh]h)}(h(The NULL-terminated string to duplicate.h]h(The NULL-terminated string to duplicate.}(hj,+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(+hMAhj)+ubah}(h]h ]h"]h$]h&]uh1jhj +ubeh}(h]h ]h"]h$]h&]uh1jhj(+hMAhj*ubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hjL+h]h gfp_t gfp}(hjN+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ+ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMBhjF+ubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hje+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhja+hMBhjb+ubah}(h]h ]h"]h$]h&]uh1jhjF+ubeh}(h]h ]h"]h$]h&]uh1jhja+hMBhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*ubh)}(h**Description**h]j)}(hj+h]h Description}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMDhj*ubh)}(hCalls kunit_kstrdup() only if **str** is not in the rodata section. Must be freed with kunit_kfree_const() -- not kunit_kfree(). See kstrdup_const() and kunit_kmalloc_array() for more information.h](hCalls kunit_kstrdup() only if }(hj+hhhNhNubj)}(h**str**h]hstr}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh is not in the rodata section. Must be freed with kunit_kfree_const() -- not kunit_kfree(). See kstrdup_const() and kunit_kmalloc_array() for more information.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMChj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_attach_mm (C function)c.kunit_attach_mmhNtauh1hhhhhhNhNubh)}(hhh](h)}(hint kunit_attach_mm (void)h]h)}(hint kunit_attach_mm(void)h](j)}(hinth]hint}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMKubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+hhhj+hMKubj)}(hkunit_attach_mmh]j%)}(hkunit_attach_mmh]hkunit_attach_mm}(hj+hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj+ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj+hhhj+hMKubj)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]noemphhhuh1jhj,ubah}(h]h ]h"]h$]h&]hhuh1jhj+hhhj+hMKubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj+hhhj+hMKubah}(h]j+ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj+hMKhj+hhubjQ)}(hhh]h)}(h7Create and attach a new mm if it doesn't already exist.h]h9Create and attach a new mm if it doesn’t already exist.}(hjE,hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMKhjB,hhubah}(h]h ]h"]h$]h&]uh1jPhj+hhhj+hMKubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj],jtj],jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``void`` no arguments **Description** Allocates a :c:type:`struct mm_struct ` and attaches it to **current**. In most cases, call kunit_vm_mmap() without calling kunit_attach_mm() directly. Only necessary when code under test accesses the mm before executing the mmap (e.g., to perform additional initialization beforehand). **Return** 0 on success, -errno on failure.h](h)}(h**Parameters**h]j)}(hjg,h]h Parameters}(hji,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje,ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMOhja,ubj)}(hhh]j)}(h``void`` no arguments h](j)}(h``void``h]j)}(hj,h]hvoid}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj,ubj)}(hhh]h)}(h no argumentsh]h no arguments}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,hKhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhj,hKhj},ubah}(h]h ]h"]h$]h&]uh1jhja,ubh)}(h**Description**h]j)}(hj,h]h Description}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhja,ubh)}(hX)Allocates a :c:type:`struct mm_struct ` and attaches it to **current**. In most cases, call kunit_vm_mmap() without calling kunit_attach_mm() directly. Only necessary when code under test accesses the mm before executing the mmap (e.g., to perform additional initialization beforehand).h](h Allocates a }(hj,hhhNhNubh)}(h&:c:type:`struct mm_struct `h]j)}(hj,h]hstruct mm_struct}(hj,hhhNhNubah}(h]h ](jjmc-typeeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocj refdomainjmreftypetype refexplicitrefwarnjjj mm_structuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMLhj,ubh and attaches it to }(hj,hhhNhNubj)}(h **current**h]hcurrent}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubh. In most cases, call kunit_vm_mmap() without calling kunit_attach_mm() directly. Only necessary when code under test accesses the mm before executing the mmap (e.g., to perform additional initialization beforehand).}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj,hMLhja,ubh)}(h **Return**h]j)}(hj-h]hReturn}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMQhja,ubh)}(h 0 on success, -errno on failure.h]h 0 on success, -errno on failure.}(hj3-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMRhja,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_vm_mmap (C function)c.kunit_vm_mmaphNtauh1hhhhhhNhNubh)}(hhh](h)}(hunsigned long kunit_vm_mmap (struct kunit *test, struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long offset)h]h)}(hunsigned long kunit_vm_mmap(struct kunit *test, struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long offset)h](j)}(hunsignedh]hunsigned}(hjb-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^-hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMWubj)}(h h]h }(hjq-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^-hhhjp-hMWubj)}(hlongh]hlong}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^-hhhjp-hMWubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj^-hhhjp-hMWubj)}(h kunit_vm_mmaph]j%)}(h kunit_vm_mmaph]h kunit_vm_mmap}(hj-hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj-ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj^-hhhjp-hMWubj)}(h(struct kunit *test, struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long offset)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubh)}(hhh]j%)}(hkunith]hkunit}(hj-hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj-ubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetj-modnameN classnameNjj)}j]jn)}jqj-sbc.kunit_vm_mmapasbuh1hhj-ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj-ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj%)}(htesth]htest}(hj.hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hstruct file *fileh](h)}(hjyh]hstruct}(hj-.hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj).ubj)}(h h]h }(hj:.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj).ubh)}(hhh]j%)}(hfileh]hfile}(hjK.hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjH.ubah}(h]h ]h"]h$]h&] refdomainjmreftypejq reftargetjM.modnameN classnameNjj)}j]j-c.kunit_vm_mmapasbuh1hhj).ubj)}(h h]h }(hji.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj).ubj)}(hjh]h*}(hjw.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj).ubj%)}(hfileh]hfile}(hj.hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj).ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hunsigned long addrh](j)}(hunsignedh]hunsigned}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hlongh]hlong}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj%)}(haddrh]haddr}(hj.hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hunsigned long lenh](j)}(hunsignedh]hunsigned}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj)}(hlongh]hlong}(hj /hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj.ubj%)}(hlenh]hlen}(hj&/hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hunsigned long proth](j)}(hunsignedh]hunsigned}(hj?/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;/ubj)}(h h]h }(hjM/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;/ubj)}(hlongh]hlong}(hj[/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj;/ubj)}(h h]h }(hji/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj;/ubj%)}(hproth]hprot}(hjw/hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj;/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hunsigned long flagh](j)}(hunsignedh]hunsigned}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj%)}(hflagh]hflag}(hj/hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hunsigned long offseth](j)}(hunsignedh]hunsigned}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj 0hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj/ubj%)}(hoffseth]hoffset}(hj0hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubeh}(h]h ]h"]h$]h&]hhuh1jhj^-hhhjp-hMWubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjZ-hhhjp-hMWubah}(h]jU-ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjp-hMWhjW-hhubjQ)}(hhh]h)}(h%Allocate KUnit-tracked vm_mmap() areah]h%Allocate KUnit-tracked vm_mmap() area}(hjC0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMWhj@0hhubah}(h]h ]h"]h$]h&]uh1jPhjW-hhhjp-hMWubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj[0jtj[0jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``struct file *file`` struct file pointer to map from, if any ``unsigned long addr`` desired address, if any ``unsigned long len`` how many bytes to allocate ``unsigned long prot`` mmap PROT_* bits ``unsigned long flag`` mmap flags ``unsigned long offset`` offset into **file** to start mapping from. **Description** See vm_mmap() for more information.h](h)}(h**Parameters**h]j)}(hje0h]h Parameters}(hjg0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc0ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM[hj_0ubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hj0h]hstruct kunit *test}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMXhj~0ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMXhj0ubah}(h]h ]h"]h$]h&]uh1jhj~0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMXhj{0ubj)}(h>``struct file *file`` struct file pointer to map from, if any h](j)}(h``struct file *file``h]j)}(hj0h]hstruct file *file}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMYhj0ubj)}(hhh]h)}(h'struct file pointer to map from, if anyh]h'struct file pointer to map from, if any}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMYhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMYhj{0ubj)}(h/``unsigned long addr`` desired address, if any h](j)}(h``unsigned long addr``h]j)}(hj0h]hunsigned long addr}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMZhj0ubj)}(hhh]h)}(hdesired address, if anyh]hdesired address, if any}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj 1hMZhj 1ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj 1hMZhj{0ubj)}(h1``unsigned long len`` how many bytes to allocate h](j)}(h``unsigned long len``h]j)}(hj/1h]hunsigned long len}(hj11hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-1ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM[hj)1ubj)}(hhh]h)}(hhow many bytes to allocateh]hhow many bytes to allocate}(hjH1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD1hM[hjE1ubah}(h]h ]h"]h$]h&]uh1jhj)1ubeh}(h]h ]h"]h$]h&]uh1jhjD1hM[hj{0ubj)}(h(``unsigned long prot`` mmap PROT_* bits h](j)}(h``unsigned long prot``h]j)}(hjh1h]hunsigned long prot}(hjj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf1ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM\hjb1ubj)}(hhh]h)}(hmmap PROT_* bitsh]hmmap PROT_* bits}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}1hM\hj~1ubah}(h]h ]h"]h$]h&]uh1jhjb1ubeh}(h]h ]h"]h$]h&]uh1jhj}1hM\hj{0ubj)}(h"``unsigned long flag`` mmap flags h](j)}(h``unsigned long flag``h]j)}(hj1h]hunsigned long flag}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM]hj1ubj)}(hhh]h)}(h mmap flagsh]h mmap flags}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM]hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hM]hj{0ubj)}(hE``unsigned long offset`` offset into **file** to start mapping from. h](j)}(h``unsigned long offset``h]j)}(hj1h]hunsigned long offset}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM^hj1ubj)}(hhh]h)}(h+offset into **file** to start mapping from.h](h offset into }(hj1hhhNhNubj)}(h**file**h]hfile}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubh to start mapping from.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj1hM^hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hM^hj{0ubeh}(h]h ]h"]h$]h&]uh1jhj_0ubh)}(h**Description**h]j)}(hj'2h]h Description}(hj)2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM`hj_0ubh)}(h#See vm_mmap() for more information.h]h#See vm_mmap() for more information.}(hj=2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM_hj_0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_mark_skipped (C macro)c.kunit_mark_skippedhNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunit_mark_skippedh]h)}(hkunit_mark_skippedh]j)}(hkunit_mark_skippedh]j%)}(hjf2h]hkunit_mark_skipped}(hjp2hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjl2ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjh2hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMlubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjd2hhhj2hMlubah}(h]j_2ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj2hMlhja2hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhja2hhhj2hMlubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj2jtj2jujvjwuh1hhhhhhNhNubh)}(h'``kunit_mark_skipped (test, fmt, ...)``h]j)}(hj2h]h#kunit_mark_skipped (test, fmt, ...)}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMnhhhhubj)}(hMarks **test** as skipped h]h)}(hMarks **test** as skippedh](hMarks }(hj2hhhNhNubj)}(h**test**h]htest}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh as skipped}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMlhj2ubah}(h]h ]h"]h$]h&]uh1jhj2hMlhhhhubjy)}(hXH**Parameters** ``test`` The test context object. ``fmt`` A printk() style format string. ``...`` variable arguments **Description** Marks the test as skipped. **fmt** is given output as the test status comment, typically the reason the test was skipped. Test execution continues after kunit_mark_skipped() is called.h](h)}(h**Parameters**h]j)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMphj2ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj3h]htest}(hj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMnhj3ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj!3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMnhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMnhj2ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hjA3h]hfmt}(hjC3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMohj;3ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hjZ3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV3hMohjW3ubah}(h]h ]h"]h$]h&]uh1jhj;3ubeh}(h]h ]h"]h$]h&]uh1jhjV3hMohj2ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hjz3h]h...}(hj|3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjt3ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hKhj3ubah}(h]h ]h"]h$]h&]uh1jhjt3ubeh}(h]h ]h"]h$]h&]uh1jhj3hKhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2ubh)}(h**Description**h]j)}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj2ubh)}(hyMarks the test as skipped. **fmt** is given output as the test status comment, typically the reason the test was skipped.h](hMarks the test as skipped. }(hj3hhhNhNubj)}(h**fmt**h]hfmt}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubhW is given output as the test status comment, typically the reason the test was skipped.}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMphj2ubh)}(h>Test execution continues after kunit_mark_skipped() is called.h]h>Test execution continues after kunit_mark_skipped() is called.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMshj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_skip (C macro) c.kunit_skiphNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_skiph]h)}(h kunit_skiph]j)}(h kunit_skiph]j%)}(hj4h]h kunit_skip}(hj4hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj4ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj4hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj4hhhj24hMubah}(h]j4ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj24hMhj4hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj4hhhj24hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjK4jtjK4jujvjwuh1hhhhhhNhNubh)}(h``kunit_skip (test, fmt, ...)``h]j)}(hjQ4h]hkunit_skip (test, fmt, ...)}(hjS4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hMarks **test** as skipped h]h)}(hMarks **test** as skippedh](hMarks }(hjk4hhhNhNubj)}(h**test**h]htest}(hjs4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk4ubh as skipped}(hjk4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjg4ubah}(h]h ]h"]h$]h&]uh1jhj4hMhhhhubjy)}(hX5**Parameters** ``test`` The test context object. ``fmt`` A printk() style format string. ``...`` variable arguments **Description** Skips the test. **fmt** is given output as the test status comment, typically the reason the test was skipped. Test execution is halted after kunit_skip() is called.h](h)}(h**Parameters**h]j)}(hj4h]h Parameters}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj4ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj4h]htest}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj4ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4hMhj4ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hj4h]hfmt}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj4ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hj 5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hMhj5ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj5hMhj4ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hj)5h]h...}(hj+5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'5ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj#5ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hjB5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>5hKhj?5ubah}(h]h ]h"]h$]h&]uh1jhj#5ubeh}(h]h ]h"]h$]h&]uh1jhj>5hKhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4ubh)}(h**Description**h]j)}(hjd5h]h Description}(hjf5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj4ubh)}(hnSkips the test. **fmt** is given output as the test status comment, typically the reason the test was skipped.h](hSkips the test. }(hjz5hhhNhNubj)}(h**fmt**h]hfmt}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz5ubhW is given output as the test status comment, typically the reason the test was skipped.}(hjz5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj4ubh)}(h6Test execution is halted after kunit_skip() is called.h]h6Test execution is halted after kunit_skip() is called.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_info (C macro) c.kunit_infohNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_infoh]h)}(h kunit_infoh]j)}(h kunit_infoh]j%)}(hj5h]h kunit_info}(hj5hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj5ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj5hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj5hhhj5hMubah}(h]j5ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj5hMhj5hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj5hhhj5hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj5jtj5jujvjwuh1hhhhhhNhNubh)}(h``kunit_info (test, fmt, ...)``h]j)}(hj6h]hkunit_info (test, fmt, ...)}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h7Prints an INFO level message associated with **test**. h]h)}(h6Prints an INFO level message associated with **test**.h](h-Prints an INFO level message associated with }(hj6hhhNhNubj)}(h**test**h]htest}(hj"6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubh.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj6ubah}(h]h ]h"]h$]h&]uh1jhj:6hMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``fmt`` A printk() style format string. ``...`` variable arguments **Description** Prints an info level message associated with the test suite being run. Takes a variable number of format parameters just like printk().h](h)}(h**Parameters**h]j)}(hjG6h]h Parameters}(hjI6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjA6ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjf6h]htest}(hjh6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd6ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj`6ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{6hMhj|6ubah}(h]h ]h"]h$]h&]uh1jhj`6ubeh}(h]h ]h"]h$]h&]uh1jhj{6hMhj]6ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hj6h]hfmt}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj6ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhj]6ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hj6h]h...}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj6ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hKhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hKhj]6ubeh}(h]h ]h"]h$]h&]uh1jhjA6ubh)}(h**Description**h]j)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjA6ubh)}(hPrints an info level message associated with the test suite being run. Takes a variable number of format parameters just like printk().h]hPrints an info level message associated with the test suite being run. Takes a variable number of format parameters just like printk().}(hj)7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjA6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_warn (C macro) c.kunit_warnhNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_warnh]h)}(h kunit_warnh]j)}(h kunit_warnh]j%)}(hjR7h]h kunit_warn}(hj\7hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjX7ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjT7hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjP7hhhjo7hMubah}(h]jK7ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjo7hMhjM7hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjM7hhhjo7hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj7jtj7jujvjwuh1hhhhhhNhNubh)}(h``kunit_warn (test, fmt, ...)``h]j)}(hj7h]hkunit_warn (test, fmt, ...)}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h6Prints a WARN level message associated with **test**. h]h)}(h5Prints a WARN level message associated with **test**.h](h,Prints a WARN level message associated with }(hj7hhhNhNubj)}(h**test**h]htest}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubh.}(hj7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj7ubah}(h]h ]h"]h$]h&]uh1jhj7hMhhhhubjy)}(h**Parameters** ``test`` The test context object. ``fmt`` A printk() style format string. ``...`` variable arguments **Description** Prints a warning level message.h](h)}(h**Parameters**h]j)}(hj7h]h Parameters}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj7ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj7h]htest}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj7ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj 8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj 8hMhj 8ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj 8hMhj7ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hj-8h]hfmt}(hj/8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+8ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj'8ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hjF8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjB8hMhjC8ubah}(h]h ]h"]h$]h&]uh1jhj'8ubeh}(h]h ]h"]h$]h&]uh1jhjB8hMhj7ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hjf8h]h...}(hjh8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd8ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj`8ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{8hKhj|8ubah}(h]h ]h"]h$]h&]uh1jhj`8ubeh}(h]h ]h"]h$]h&]uh1jhj{8hKhj7ubeh}(h]h ]h"]h$]h&]uh1jhj7ubh)}(h**Description**h]j)}(hj8h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj7ubh)}(hPrints a warning level message.h]hPrints a warning level message.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_err (C macro) c.kunit_errhNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_errh]h)}(h kunit_errh]j)}(h kunit_errh]j%)}(hj8h]h kunit_err}(hj8hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj8ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj8hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj8hhhj8hMubah}(h]j8ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj8hMhj8hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj8hhhj8hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj9jtj9jujvjwuh1hhhhhhNhNubh)}(h``kunit_err (test, fmt, ...)``h]j)}(hj9h]hkunit_err (test, fmt, ...)}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h8Prints an ERROR level message associated with **test**. h]h)}(h7Prints an ERROR level message associated with **test**.h](h.Prints an ERROR level message associated with }(hj69hhhNhNubj)}(h**test**h]htest}(hj>9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj69ubh.}(hj69hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj29ubah}(h]h ]h"]h$]h&]uh1jhjV9hMhhhhubjy)}(h**Parameters** ``test`` The test context object. ``fmt`` A printk() style format string. ``...`` variable arguments **Description** Prints an error level message.h](h)}(h**Parameters**h]j)}(hjc9h]h Parameters}(hje9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja9ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj]9ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj9h]htest}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj|9ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj|9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhjy9ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hj9h]hfmt}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj9ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhjy9ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hj9h]h...}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj9ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj :hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj :hKhj :ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj :hKhjy9ubeh}(h]h ]h"]h$]h&]uh1jhj]9ubh)}(h**Description**h]j)}(hj/:h]h Description}(hj1:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-:ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj]9ubh)}(hPrints an error level message.h]hPrints an error level message.}(hjE:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj]9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_SUCCEED (C macro)c.KUNIT_SUCCEEDhNtauh1hhhhhhNhNubh)}(hhh](h)}(h KUNIT_SUCCEEDh]h)}(h KUNIT_SUCCEEDh]j)}(h KUNIT_SUCCEEDh]j%)}(hjn:h]h KUNIT_SUCCEED}(hjx:hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjt:ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjp:hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjl:hhhj:hMubah}(h]jg:ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj:hMhji:hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhji:hhhj:hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj:jtj:jujvjwuh1hhhhhhNhNubh)}(h``KUNIT_SUCCEED (test)``h]j)}(hj:h]hKUNIT_SUCCEED (test)}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h3A no-op expectation. Only exists for code clarity. h]h)}(h2A no-op expectation. Only exists for code clarity.h]h2A no-op expectation. Only exists for code clarity.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj:ubah}(h]h ]h"]h$]h&]uh1jhj:hMhhhhubjy)}(h**Parameters** ``test`` The test context object. **Description** The opposite of KUNIT_FAIL(), it is an expectation that cannot fail. In other words, it does nothing and only exists for code clarity. See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj:h]h Parameters}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj:ubj)}(hhh]j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj:h]htest}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj:ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hMhj;ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj;hMhj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubh)}(h**Description**h]j)}(hj9;h]h Description}(hj;;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7;ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj:ubh)}(hThe opposite of KUNIT_FAIL(), it is an expectation that cannot fail. In other words, it does nothing and only exists for code clarity. See KUNIT_EXPECT_TRUE() for more information.h]hThe opposite of KUNIT_FAIL(), it is an expectation that cannot fail. In other words, it does nothing and only exists for code clarity. See KUNIT_EXPECT_TRUE() for more information.}(hjO;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_FAIL (C macro) c.KUNIT_FAILhNtauh1hhhhhhNhNubh)}(hhh](h)}(h KUNIT_FAILh]h)}(h KUNIT_FAILh]j)}(h KUNIT_FAILh]j%)}(hjx;h]h KUNIT_FAIL}(hj;hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj~;ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjz;hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjv;hhhj;hMubah}(h]jq;ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj;hMhjs;hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjs;hhhj;hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj;jtj;jujvjwuh1hhhhhhNhNubh)}(h``KUNIT_FAIL (test, fmt, ...)``h]j)}(hj;h]hKUNIT_FAIL (test, fmt, ...)}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h-Always causes a test to fail when evaluated. h]h)}(h,Always causes a test to fail when evaluated.h]h,Always causes a test to fail when evaluated.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;ubah}(h]h ]h"]h$]h&]uh1jhj;hMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``fmt`` an informational message to be printed when the assertion is made. ``...`` string format arguments. **Description** The opposite of KUNIT_SUCCEED(), it is an expectation that always fails. In other words, it always results in a failed expectation, and consequently always causes the test case to fail when evaluated. See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj<h]htest}(hj <hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj<ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj!<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhj;ubj)}(hK``fmt`` an informational message to be printed when the assertion is made. h](j)}(h``fmt``h]j)}(hjA<h]hfmt}(hjC<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?<ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;<ubj)}(hhh]h)}(hBan informational message to be printed when the assertion is made.h]hBan informational message to be printed when the assertion is made.}(hjZ<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV<hMhjW<ubah}(h]h ]h"]h$]h&]uh1jhj;<ubeh}(h]h ]h"]h$]h&]uh1jhjV<hMhj;ubj)}(h!``...`` string format arguments. h](j)}(h``...``h]j)}(hjz<h]h...}(hj|<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx<ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjt<ubj)}(hhh]h)}(hstring format arguments.h]hstring format arguments.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhjt<ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;ubh)}(h**Description**h]j)}(hj<h]h Description}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;ubh)}(hThe opposite of KUNIT_SUCCEED(), it is an expectation that always fails. In other words, it always results in a failed expectation, and consequently always causes the test case to fail when evaluated. See KUNIT_EXPECT_TRUE() for more information.h]hThe opposite of KUNIT_SUCCEED(), it is an expectation that always fails. In other words, it always results in a failed expectation, and consequently always causes the test case to fail when evaluated. See KUNIT_EXPECT_TRUE() for more information.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_TRUE (C macro)c.KUNIT_EXPECT_TRUEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_TRUEh]h)}(hKUNIT_EXPECT_TRUEh]j)}(hKUNIT_EXPECT_TRUEh]j%)}(hj<h]hKUNIT_EXPECT_TRUE}(hj<hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj<ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj<hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj<hhhj=hMubah}(h]j<ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj=hMhj<hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj<hhhj=hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj*=jtj*=jujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_TRUE (test, condition)``h]j)}(hj0=h]h#KUNIT_EXPECT_TRUE (test, condition)}(hj2=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h7Causes a test failure when the expression is not true. h]h)}(h6Causes a test failure when the expression is not true.h]h6Causes a test failure when the expression is not true.}(hjJ=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjF=ubah}(h]h ]h"]h$]h&]uh1jhjX=hMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``condition`` an arbitrary boolean expression. The test fails when this does not evaluate to true. **Description** This and expectations of the form `KUNIT_EXPECT_*` will cause the test case to fail when the specified condition is not met; however, it will not prevent the test case from continuing to run; this is otherwise known as an *expectation failure*.h](h)}(h**Parameters**h]j)}(hje=h]h Parameters}(hjg=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj_=ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj=h]htest}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj~=ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMhj=ubah}(h]h ]h"]h$]h&]uh1jhj~=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhj{=ubj)}(hc``condition`` an arbitrary boolean expression. The test fails when this does not evaluate to true. h](j)}(h ``condition``h]j)}(hj=h]h condition}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj=ubj)}(hhh]h)}(hTan arbitrary boolean expression. The test fails when this does not evaluate to true.h]hTan arbitrary boolean expression. The test fails when this does not evaluate to true.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj=ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhj{=ubeh}(h]h ]h"]h$]h&]uh1jhj_=ubh)}(h**Description**h]j)}(hj=h]h Description}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj_=ubh)}(hThis and expectations of the form `KUNIT_EXPECT_*` will cause the test case to fail when the specified condition is not met; however, it will not prevent the test case from continuing to run; this is otherwise known as an *expectation failure*.h](h"This and expectations of the form }(hj>hhhNhNubj)}(h`KUNIT_EXPECT_*`h]hKUNIT_EXPECT_*}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubh will cause the test case to fail when the specified condition is not met; however, it will not prevent the test case from continuing to run; this is otherwise known as an }(hj>hhhNhNubj)}(h*expectation failure*h]hexpectation failure}(hj)>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubh.}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj_=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_FALSE (C macro)c.KUNIT_EXPECT_FALSEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_FALSEh]h)}(hKUNIT_EXPECT_FALSEh]j)}(hKUNIT_EXPECT_FALSEh]j%)}(hj\>h]hKUNIT_EXPECT_FALSE}(hjf>hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjb>ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj^>hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjZ>hhhjy>hMubah}(h]jU>ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjy>hMhjW>hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjW>hhhjy>hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj>jtj>jujvjwuh1hhhhhhNhNubh)}(h(``KUNIT_EXPECT_FALSE (test, condition)``h]j)}(hj>h]h$KUNIT_EXPECT_FALSE (test, condition)}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h7Makes a test failure when the expression is not false. h]h)}(h6Makes a test failure when the expression is not false.h]h6Makes a test failure when the expression is not false.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj>ubah}(h]h ]h"]h$]h&]uh1jhj>hMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``condition`` an arbitrary boolean expression. The test fails when this does not evaluate to false. **Description** Sets an expectation that **condition** evaluates to false. See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj>h]h Parameters}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj>ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj>h]htest}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj>ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhj>ubj)}(hd``condition`` an arbitrary boolean expression. The test fails when this does not evaluate to false. h](j)}(h ``condition``h]j)}(hj%?h]h condition}(hj'?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#?ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj?ubj)}(hhh]h)}(hUan arbitrary boolean expression. The test fails when this does not evaluate to false.h]hUan arbitrary boolean expression. The test fails when this does not evaluate to false.}(hj>?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj:?hMhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>ubh)}(h**Description**h]j)}(hja?h]h Description}(hjc?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj>ubh)}(hhSets an expectation that **condition** evaluates to false. See KUNIT_EXPECT_TRUE() for more information.h](hSets an expectation that }(hjw?hhhNhNubj)}(h **condition**h]h condition}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw?ubhB evaluates to false. See KUNIT_EXPECT_TRUE() for more information.}(hjw?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_EQ (C macro)c.KUNIT_EXPECT_EQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_EQh]h)}(hKUNIT_EXPECT_EQh]j)}(hKUNIT_EXPECT_EQh]j%)}(hj?h]hKUNIT_EXPECT_EQ}(hj?hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj?ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj?hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj?hhhj?hMubah}(h]j?ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj?hMhj?hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj?hhhj?hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj?jtj?jujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_EQ (test, left, right)``h]j)}(hj?h]h#KUNIT_EXPECT_EQ (test, left, right)}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h;Sets an expectation that **left** and **right** are equal. h]h)}(h:Sets an expectation that **left** and **right** are equal.h](hSets an expectation that }(hj@hhhNhNubj)}(h**left**h]hleft}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubh and }(hj@hhhNhNubj)}(h **right**h]hright}(hj"@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubh are equal.}(hj@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj@ubah}(h]h ]h"]h$]h&]uh1jhj:@hMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) == (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hjG@h]h Parameters}(hjI@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE@ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjA@ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjf@h]htest}(hjh@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd@ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj`@ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{@hMhj|@ubah}(h]h ]h"]h$]h&]uh1jhj`@ubeh}(h]h ]h"]h$]h&]uh1jhj{@hMhj]@ubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hj@h]hleft}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj@ubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhj]@ubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hj@h]hright}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj@ubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhj]@ubeh}(h]h ]h"]h$]h&]uh1jhjA@ubh)}(h**Description**h]j)}(hjAh]h Description}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjA@ubh)}(hSets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) == (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)Sets an expectation that the values that }(hj)AhhhNhNubj)}(h**left**h]hleft}(hj1AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)Aubh and }(hj)AhhhNhNubj)}(h **right**h]hright}(hjCAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)AubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj)AhhhNhNubj)}(h**test**h]htest}(hjUAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)Aubh, (}(hj)AhhhNhNubj)}(h**left**h]hleft}(hjgAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)Aubh) == (}(hj)AhhhNhNubj)}(h **right**h]hright}(hjyAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)Aubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj)AhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjA@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_PTR_EQ (C macro)c.KUNIT_EXPECT_PTR_EQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_PTR_EQh]h)}(hKUNIT_EXPECT_PTR_EQh]j)}(hKUNIT_EXPECT_PTR_EQh]j%)}(hjAh]hKUNIT_EXPECT_PTR_EQ}(hjAhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjAubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjAhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjAhhhjAhMubah}(h]jAah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjAhMhjAhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjAhhhjAhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjAjtjAjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_EXPECT_PTR_EQ (test, left, right)``h]j)}(hjAh]h'KUNIT_EXPECT_PTR_EQ (test, left, right)}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h8Expects that pointers **left** and **right** are equal. h]h)}(h7Expects that pointers **left** and **right** are equal.h](hExpects that pointers }(hjBhhhNhNubj)}(h**left**h]hleft}(hj BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubh and }(hjBhhhNhNubj)}(h **right**h]hright}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubh are equal.}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjAubah}(h]h ]h"]h$]h&]uh1jhj4BhMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a pointer. ``right`` an arbitrary expression that evaluates to a pointer. **Description** Sets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) == (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hjABh]h Parameters}(hjCBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?Bubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;Bubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj`Bh]htest}(hjbBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^Bubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjZBubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjyBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuBhMhjvBubah}(h]h ]h"]h$]h&]uh1jhjZBubeh}(h]h ]h"]h$]h&]uh1jhjuBhMhjWBubj)}(h>``left`` an arbitrary expression that evaluates to a pointer. h](j)}(h``left``h]j)}(hjBh]hleft}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjBubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjWBubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. h](j)}(h ``right``h]j)}(hjBh]hright}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjBubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMhjBubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjWBubeh}(h]h ]h"]h$]h&]uh1jhj;Bubh)}(h**Description**h]j)}(hj Ch]h Description}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Cubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;Bubh)}(hSets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) == (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)Sets an expectation that the values that }(hj#ChhhNhNubj)}(h**left**h]hleft}(hj+ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Cubh and }(hj#ChhhNhNubj)}(h **right**h]hright}(hj=ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#CubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj#ChhhNhNubj)}(h**test**h]htest}(hjOChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Cubh, (}(hj#ChhhNhNubj)}(h**left**h]hleft}(hjaChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Cubh) == (}(hj#ChhhNhNubj)}(h **right**h]hright}(hjsChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Cubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj#ChhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;Bubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NE (C macro)c.KUNIT_EXPECT_NEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_NEh]h)}(hKUNIT_EXPECT_NEh]j)}(hKUNIT_EXPECT_NEh]j%)}(hjCh]hKUNIT_EXPECT_NE}(hjChhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjCubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjChhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM'ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjChhhjChM'ubah}(h]jCah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjChM'hjChhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjChhhjChM'ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjCjtjCjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_NE (test, left, right)``h]j)}(hjCh]h#KUNIT_EXPECT_NE (test, left, right)}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM)hhhhubj)}(h:An expectation that **left** and **right** are not equal. h]h)}(h9An expectation that **left** and **right** are not equal.h](hAn expectation that }(hjChhhNhNubj)}(h**left**h]hleft}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubh and }(hjChhhNhNubj)}(h **right**h]hright}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubh are not equal.}(hjChhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM'hjCubah}(h]h ]h"]h$]h&]uh1jhj.DhM'hhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an expectation that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) != (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj;Dh]h Parameters}(hj=DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Dubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM+hj5Dubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjZDh]htest}(hj\DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXDubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM(hjTDubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjsDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjoDhM(hjpDubah}(h]h ]h"]h$]h&]uh1jhjTDubeh}(h]h ]h"]h$]h&]uh1jhjoDhM(hjQDubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjDh]hleft}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM)hjDubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhM)hjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhM)hjQDubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjDh]hright}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM*hjDubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhM*hjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhM*hjQDubeh}(h]h ]h"]h$]h&]uh1jhj5Dubh)}(h**Description**h]j)}(hjEh]h Description}(hj EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM,hj5Dubh)}(hSets an expectation that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) != (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)Sets an expectation that the values that }(hjEhhhNhNubj)}(h**left**h]hleft}(hj%EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh and }(hjEhhhNhNubj)}(h **right**h]hright}(hj7EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjEhhhNhNubj)}(h**test**h]htest}(hjIEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh, (}(hjEhhhNhNubj)}(h**left**h]hleft}(hj[EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh) != (}(hjEhhhNhNubj)}(h **right**h]hright}(hjmEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjEhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM+hj5Dubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_PTR_NE (C macro)c.KUNIT_EXPECT_PTR_NEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_PTR_NEh]h)}(hKUNIT_EXPECT_PTR_NEh]j)}(hKUNIT_EXPECT_PTR_NEh]j%)}(hjEh]hKUNIT_EXPECT_PTR_NE}(hjEhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjEubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjEhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM<ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjEhhhjEhM<ubah}(h]jEah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjEhM<hjEhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjEhhhjEhM<ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjEjtjEjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_EXPECT_PTR_NE (test, left, right)``h]j)}(hjEh]h'KUNIT_EXPECT_PTR_NE (test, left, right)}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM>hhhhubj)}(h``left`` an arbitrary expression that evaluates to a pointer. h](j)}(h``left``h]j)}(hjFh]hleft}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM>hjFubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhM>hjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhM>hjKFubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. h](j)}(h ``right``h]j)}(hjFh]hright}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM?hjFubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhM?hjFubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1jhjFhM?hjKFubeh}(h]h ]h"]h$]h&]uh1jhj/Fubh)}(h**Description**h]j)}(hjGh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMAhj/Fubh)}(hSets an expectation that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) != (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)Sets an expectation that the values that }(hjGhhhNhNubj)}(h**left**h]hleft}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh and }(hjGhhhNhNubj)}(h **right**h]hright}(hj1GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjGhhhNhNubj)}(h**test**h]htest}(hjCGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh, (}(hjGhhhNhNubj)}(h**left**h]hleft}(hjUGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh) != (}(hjGhhhNhNubj)}(h **right**h]hright}(hjgGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM@hj/Fubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_LT (C macro)c.KUNIT_EXPECT_LThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_LTh]h)}(hKUNIT_EXPECT_LTh]j)}(hKUNIT_EXPECT_LTh]j%)}(hjGh]hKUNIT_EXPECT_LT}(hjGhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjGubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjGhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMQubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjGhhhjGhMQubah}(h]jGah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjGhMQhjGhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjGhhhjGhMQubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjGjtjGjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_LT (test, left, right)``h]j)}(hjGh]h#KUNIT_EXPECT_LT (test, left, right)}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMShhhhubj)}(h5An expectation that **left** is less than **right**. h]h)}(h4An expectation that **left** is less than **right**.h](hAn expectation that }(hjGhhhNhNubj)}(h**left**h]hleft}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh is less than }(hjGhhhNhNubj)}(h **right**h]hright}(hj HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh.}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMQhjGubah}(h]h ]h"]h$]h&]uh1jhj"HhMQhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an expectation that the value that **left** evaluates to is less than the value that **right** evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) < (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj/Hh]h Parameters}(hj1HhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-Hubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMUhj)Hubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjNHh]htest}(hjPHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLHubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMRhjHHubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjgHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjcHhMRhjdHubah}(h]h ]h"]h$]h&]uh1jhjHHubeh}(h]h ]h"]h$]h&]uh1jhjcHhMRhjEHubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjHh]hleft}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMShjHubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMShjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMShjEHubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjHh]hright}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMThjHubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMThjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMThjEHubeh}(h]h ]h"]h$]h&]uh1jhj)Hubh)}(h**Description**h]j)}(hjHh]h Description}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMVhj)Hubh)}(hSets an expectation that the value that **left** evaluates to is less than the value that **right** evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) < (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h(Sets an expectation that the value that }(hjIhhhNhNubj)}(h**left**h]hleft}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubh* evaluates to is less than the value that }(hjIhhhNhNubj)}(h **right**h]hright}(hj+IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjIhhhNhNubj)}(h**test**h]htest}(hj=IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubh, (}(hjIhhhNhNubj)}(h**left**h]hleft}(hjOIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubh) < (}(hjIhhhNhNubj)}(h **right**h]hright}(hjaIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMUhj)Hubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_LE (C macro)c.KUNIT_EXPECT_LEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_LEh]h)}(hKUNIT_EXPECT_LEh]j)}(hKUNIT_EXPECT_LEh]j%)}(hjIh]hKUNIT_EXPECT_LE}(hjIhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjIubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjIhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMfubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjIhhhjIhMfubah}(h]jIah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjIhMfhjIhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjIhhhjIhMfubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjIjtjIjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_LE (test, left, right)``h]j)}(hjIh]h#KUNIT_EXPECT_LE (test, left, right)}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhhubj)}(h:Expects that **left** is less than or equal to **right**. h]h)}(h9Expects that **left** is less than or equal to **right**.h](h Expects that }(hjIhhhNhNubj)}(h**left**h]hleft}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubh is less than or equal to }(hjIhhhNhNubj)}(h **right**h]hright}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubh.}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMfhjIubah}(h]h ]h"]h$]h&]uh1jhjJhMfhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an expectation that the value that **left** evaluates to is less than or equal to the value that **right** evaluates to. Semantically this is equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) <= (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj)Jh]h Parameters}(hj+JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'Jubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMjhj#Jubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjHJh]htest}(hjJJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFJubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMghjBJubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjaJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]JhMghj^Jubah}(h]h ]h"]h$]h&]uh1jhjBJubeh}(h]h ]h"]h$]h&]uh1jhj]JhMghj?Jubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjJh]hleft}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhj{Jubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhMhhjJubah}(h]h ]h"]h$]h&]uh1jhj{Jubeh}(h]h ]h"]h$]h&]uh1jhjJhMhhj?Jubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjJh]hright}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMihjJubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhMihjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhMihj?Jubeh}(h]h ]h"]h$]h&]uh1jhj#Jubh)}(h**Description**h]j)}(hjJh]h Description}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMkhj#Jubh)}(hXSets an expectation that the value that **left** evaluates to is less than or equal to the value that **right** evaluates to. Semantically this is equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) <= (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h(Sets an expectation that the value that }(hj KhhhNhNubj)}(h**left**h]hleft}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Kubh6 evaluates to is less than or equal to the value that }(hj KhhhNhNubj)}(h **right**h]hright}(hj%KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj KubhD evaluates to. Semantically this is equivalent to KUNIT_EXPECT_TRUE(}(hj KhhhNhNubj)}(h**test**h]htest}(hj7KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Kubh, (}(hj KhhhNhNubj)}(h**left**h]hleft}(hjIKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Kubh) <= (}(hj KhhhNhNubj)}(h **right**h]hright}(hj[KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Kubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj KhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMjhj#Jubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_GT (C macro)c.KUNIT_EXPECT_GThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_GTh]h)}(hKUNIT_EXPECT_GTh]j)}(hKUNIT_EXPECT_GTh]j%)}(hjKh]hKUNIT_EXPECT_GT}(hjKhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjKubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjKhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM{ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjKhhhjKhM{ubah}(h]jKah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjKhM{hjKhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjKhhhjKhM{ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjKjtjKjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_GT (test, left, right)``h]j)}(hjKh]h#KUNIT_EXPECT_GT (test, left, right)}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM}hhhhubj)}(h8An expectation that **left** is greater than **right**. h]h)}(h7An expectation that **left** is greater than **right**.h](hAn expectation that }(hjKhhhNhNubj)}(h**left**h]hleft}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh is greater than }(hjKhhhNhNubj)}(h **right**h]hright}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh.}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM{hjKubah}(h]h ]h"]h$]h&]uh1jhjLhM{hhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an expectation that the value that **left** evaluates to is greater than the value that **right** evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) > (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj#Lh]h Parameters}(hj%LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!Lubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjLubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjBLh]htest}(hjDLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@Lubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM|hj (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h(Sets an expectation that the value that }(hjMhhhNhNubj)}(h**left**h]hleft}(hj MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh- evaluates to is greater than the value that }(hjMhhhNhNubj)}(h **right**h]hright}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjMhhhNhNubj)}(h**test**h]htest}(hj1MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh, (}(hjMhhhNhNubj)}(h**left**h]hleft}(hjCMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh) > (}(hjMhhhNhNubj)}(h **right**h]hright}(hjUMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjMhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjLubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_GE (C macro)c.KUNIT_EXPECT_GEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_GEh]h)}(hKUNIT_EXPECT_GEh]j)}(hKUNIT_EXPECT_GEh]j%)}(hjMh]hKUNIT_EXPECT_GE}(hjMhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjMubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjMhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjMhhhjMhMubah}(h]jMah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjMhMhjMhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjMhhhjMhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjMjtjMjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_GE (test, left, right)``h]j)}(hjMh]h#KUNIT_EXPECT_GE (test, left, right)}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h=Expects that **left** is greater than or equal to **right**. h]h)}(h= (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hjNh]h Parameters}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjNubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:Nubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj6Nubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjUNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQNhMhjRNubah}(h]h ]h"]h$]h&]uh1jhj6Nubeh}(h]h ]h"]h$]h&]uh1jhjQNhMhj3Nubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjuNh]hleft}(hjwNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsNubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjoNubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhMhjNubah}(h]h ]h"]h$]h&]uh1jhjoNubeh}(h]h ]h"]h$]h&]uh1jhjNhMhj3Nubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjNh]hright}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjNubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhMhjNubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjNhMhj3Nubeh}(h]h ]h"]h$]h&]uh1jhjNubh)}(h**Description**h]j)}(hjNh]h Description}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjNubh)}(hSets an expectation that the value that **left** evaluates to is greater than the value that **right** evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) >= (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h(Sets an expectation that the value that }(hjNhhhNhNubj)}(h**left**h]hleft}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh- evaluates to is greater than the value that }(hjNhhhNhNubj)}(h **right**h]hright}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjNhhhNhNubj)}(h**test**h]htest}(hj+OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh, (}(hjNhhhNhNubj)}(h**left**h]hleft}(hj=OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh) >= (}(hjNhhhNhNubj)}(h **right**h]hright}(hjOOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_STREQ (C macro)c.KUNIT_EXPECT_STREQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_STREQh]h)}(hKUNIT_EXPECT_STREQh]j)}(hKUNIT_EXPECT_STREQh]j%)}(hjOh]hKUNIT_EXPECT_STREQ}(hjOhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjOubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjOhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjOhhhjOhMubah}(h]j{Oah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjOhMhj}OhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj}OhhhjOhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjOjtjOjujvjwuh1hhhhhhNhNubh)}(h*``KUNIT_EXPECT_STREQ (test, left, right)``h]j)}(hjOh]h&KUNIT_EXPECT_STREQ (test, left, right)}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h7Expects that strings **left** and **right** are equal. h]h)}(h6Expects that strings **left** and **right** are equal.h](hExpects that strings }(hjOhhhNhNubj)}(h**left**h]hleft}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh and }(hjOhhhNhNubj)}(h **right**h]hright}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh are equal.}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjOubah}(h]h ]h"]h$]h&]uh1jhj PhMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a null terminated string. ``right`` an arbitrary expression that evaluates to a null terminated string. **Description** Sets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, !strcmp((**left**), (**right**))). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hjPh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjPubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj6Ph]htest}(hj8PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Pubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj0Pubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjOPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKPhMhjLPubah}(h]h ]h"]h$]h&]uh1jhj0Pubeh}(h]h ]h"]h$]h&]uh1jhjKPhMhj-Pubj)}(hM``left`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h``left``h]j)}(hjoPh]hleft}(hjqPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjmPubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjiPubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMhjPubah}(h]h ]h"]h$]h&]uh1jhjiPubeh}(h]h ]h"]h$]h&]uh1jhjPhMhj-Pubj)}(hN``right`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h ``right``h]j)}(hjPh]hright}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjPubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhMhjPubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjPhMhj-Pubeh}(h]h ]h"]h$]h&]uh1jhjPubh)}(h**Description**h]j)}(hjPh]h Description}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjPubh)}(hSets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, !strcmp((**left**), (**right**))). See KUNIT_EXPECT_TRUE() for more information.h](h)Sets an expectation that the values that }(hjPhhhNhNubj)}(h**left**h]hleft}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh and }(hjPhhhNhNubj)}(h **right**h]hright}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjPhhhNhNubj)}(h**test**h]htest}(hj%QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh , !strcmp((}(hjPhhhNhNubj)}(h**left**h]hleft}(hj7QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh), (}(hjPhhhNhNubj)}(h **right**h]hright}(hjIQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_STRNEQ (C macro)c.KUNIT_EXPECT_STRNEQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_STRNEQh]h)}(hKUNIT_EXPECT_STRNEQh]j)}(hKUNIT_EXPECT_STRNEQh]j%)}(hj|Qh]hKUNIT_EXPECT_STRNEQ}(hjQhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjQubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj~Qhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjzQhhhjQhMubah}(h]juQah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjQhMhjwQhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjwQ4hhhjQhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjQjtjQjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_EXPECT_STRNEQ (test, left, right)``h]j)}(hjQh]h'KUNIT_EXPECT_STRNEQ (test, left, right)}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h;Expects that strings **left** and **right** are not equal. h]h)}(h:Expects that strings **left** and **right** are not equal.h](hExpects that strings }(hjQhhhNhNubj)}(h**left**h]hleft}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubh and }(hjQhhhNhNubj)}(h **right**h]hright}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubh are not equal.}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjQubah}(h]h ]h"]h$]h&]uh1jhjRhMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a null terminated string. ``right`` an arbitrary expression that evaluates to a null terminated string. **Description** Sets an expectation that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, strcmp((**left**), (**right**))). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hjRh]h Parameters}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj Rubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj0Rh]htest}(hj2RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.Rubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj*Rubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjIRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjERhMhjFRubah}(h]h ]h"]h$]h&]uh1jhj*Rubeh}(h]h ]h"]h$]h&]uh1jhjERhMhj'Rubj)}(hM``left`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h``left``h]j)}(hjiRh]hleft}(hjkRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgRubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjcRubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~RhMhjRubah}(h]h ]h"]h$]h&]uh1jhjcRubeh}(h]h ]h"]h$]h&]uh1jhj~RhMhj'Rubj)}(hN``right`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h ``right``h]j)}(hjRh]hright}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjRubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjRhMhj'Rubeh}(h]h ]h"]h$]h&]uh1jhj Rubh)}(h**Description**h]j)}(hjRh]h Description}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj Rubh)}(hSets an expectation that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, strcmp((**left**), (**right**))). See KUNIT_EXPECT_TRUE() for more information.h](h)Sets an expectation that the values that }(hjRhhhNhNubj)}(h**left**h]hleft}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubh and }(hjRhhhNhNubj)}(h **right**h]hright}(hj ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjRhhhNhNubj)}(h**test**h]htest}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubh , strcmp((}(hjRhhhNhNubj)}(h**left**h]hleft}(hj1ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubh), (}(hjRhhhNhNubj)}(h **right**h]hright}(hjCShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj Rubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_MEMEQ (C macro)c.KUNIT_EXPECT_MEMEQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_MEMEQh]h)}(hKUNIT_EXPECT_MEMEQh]j)}(hKUNIT_EXPECT_MEMEQh]j%)}(hjvSh]hKUNIT_EXPECT_MEMEQ}(hjShhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj|Subah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjxShhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjtShhhjShMubah}(h]joSah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjShMhjqShhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjqShhhjShMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjSjtjSjujvjwuh1hhhhhhNhNubh)}(h0``KUNIT_EXPECT_MEMEQ (test, left, right, size)``h]j)}(hjSh]h,KUNIT_EXPECT_MEMEQ (test, left, right, size)}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hKExpects that the first **size** bytes of **left** and **right** are equal. h]h)}(hJExpects that the first **size** bytes of **left** and **right** are equal.h](hExpects that the first }(hjShhhNhNubj)}(h**size**h]hsize}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh bytes of }(hjShhhNhNubj)}(h**left**h]hleft}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh and }(hjShhhNhNubj)}(h **right**h]hright}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh are equal.}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjSubah}(h]h ]h"]h$]h&]uh1jhjThMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` An arbitrary expression that evaluates to the specified size. ``right`` An arbitrary expression that evaluates to the specified size. ``size`` Number of bytes compared. **Description** Sets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, !memcmp((**left**), (**right**), (**size**))). See KUNIT_EXPECT_TRUE() for more information. Although this expectation works for any memory block, it is not recommended for comparing more structured data, such as structs. This expectation is recommended for comparing, for example, data arrays.h](h)}(h**Parameters**h]j)}(hjTh]h Parameters}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjTubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:Tubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj6Tubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjUThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQThMhjRTubah}(h]h ]h"]h$]h&]uh1jhj6Tubeh}(h]h ]h"]h$]h&]uh1jhjQThMhj3Tubj)}(hG``left`` An arbitrary expression that evaluates to the specified size. h](j)}(h``left``h]j)}(hjuTh]hleft}(hjwThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsTubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjoTubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMhjTubah}(h]h ]h"]h$]h&]uh1jhjoTubeh}(h]h ]h"]h$]h&]uh1jhjThMhj3Tubj)}(hH``right`` An arbitrary expression that evaluates to the specified size. h](j)}(h ``right``h]j)}(hjTh]hright}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjTubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThMhj3Tubj)}(h#``size`` Number of bytes compared. h](j)}(h``size``h]j)}(hjTh]hsize}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjTubj)}(hhh]h)}(hNumber of bytes compared.h]hNumber of bytes compared.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThMhjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThMhj3Tubeh}(h]h ]h"]h$]h&]uh1jhjTubh)}(h**Description**h]j)}(hj"Uh]h Description}(hj$UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Uubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjTubh)}(hSets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, !memcmp((**left**), (**right**), (**size**))). See KUNIT_EXPECT_TRUE() for more information.h](h)Sets an expectation that the values that }(hj8UhhhNhNubj)}(h**left**h]hleft}(hj@UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8Uubh and }(hj8UhhhNhNubj)}(h **right**h]hright}(hjRUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8UubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj8UhhhNhNubj)}(h**test**h]htest}(hjdUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8Uubh , !memcmp((}(hj8UhhhNhNubj)}(h**left**h]hleft}(hjvUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8Uubh), (}(hj8UhhhNhNubj)}(h **right**h]hright}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8Uubh), (}hj8Usbj)}(h**size**h]hsize}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8Uubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hj8UhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjTubh)}(hAlthough this expectation works for any memory block, it is not recommended for comparing more structured data, such as structs. This expectation is recommended for comparing, for example, data arrays.h]hAlthough this expectation works for any memory block, it is not recommended for comparing more structured data, such as structs. This expectation is recommended for comparing, for example, data arrays.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjTubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_MEMNEQ (C macro)c.KUNIT_EXPECT_MEMNEQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_MEMNEQh]h)}(hKUNIT_EXPECT_MEMNEQh]j)}(hKUNIT_EXPECT_MEMNEQh]j%)}(hjUh]hKUNIT_EXPECT_MEMNEQ}(hjUhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjUubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjUhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjUhhhjUhMubah}(h]jUah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjUhMhjUhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjUhhhjUhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjVjtjVjujvjwuh1hhhhhhNhNubh)}(h1``KUNIT_EXPECT_MEMNEQ (test, left, right, size)``h]j)}(hjVh]h-KUNIT_EXPECT_MEMNEQ (test, left, right, size)}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hOExpects that the first **size** bytes of **left** and **right** are not equal. h]h)}(hNExpects that the first **size** bytes of **left** and **right** are not equal.h](hExpects that the first }(hj2VhhhNhNubj)}(h**size**h]hsize}(hj:VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Vubh bytes of }(hj2VhhhNhNubj)}(h**left**h]hleft}(hjLVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Vubh and }(hj2VhhhNhNubj)}(h **right**h]hright}(hj^VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2Vubh are not equal.}(hj2VhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj.Vubah}(h]h ]h"]h$]h&]uh1jhjvVhMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` An arbitrary expression that evaluates to the specified size. ``right`` An arbitrary expression that evaluates to the specified size. ``size`` Number of bytes compared. **Description** Sets an expectation that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, memcmp((**left**), (**right**), (**size**))). See KUNIT_EXPECT_TRUE() for more information. Although this expectation works for any memory block, it is not recommended for comparing more structured data, such as structs. This expectation is recommended for comparing, for example, data arrays.h](h)}(h**Parameters**h]j)}(hjVh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj}Vubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjVh]htest}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjVubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhMhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhMhjVubj)}(hG``left`` An arbitrary expression that evaluates to the specified size. h](j)}(h``left``h]j)}(hjVh]hleft}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjVubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhMhjVubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjVhMhjVubj)}(hH``right`` An arbitrary expression that evaluates to the specified size. h](j)}(h ``right``h]j)}(hjWh]hright}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjWubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hj-WhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)WhMhj*Wubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhj)WhMhjVubj)}(h#``size`` Number of bytes compared. h](j)}(h``size``h]j)}(hjMWh]hsize}(hjOWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKWubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjGWubj)}(hhh]h)}(hNumber of bytes compared.h]hNumber of bytes compared.}(hjfWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbWhMhjcWubah}(h]h ]h"]h$]h&]uh1jhjGWubeh}(h]h ]h"]h$]h&]uh1jhjbWhMhjVubeh}(h]h ]h"]h$]h&]uh1jhj}Vubh)}(h**Description**h]j)}(hjWh]h Description}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj}Vubh)}(hSets an expectation that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, memcmp((**left**), (**right**), (**size**))). See KUNIT_EXPECT_TRUE() for more information.h](h)Sets an expectation that the values that }(hjWhhhNhNubj)}(h**left**h]hleft}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh and }(hjWhhhNhNubj)}(h **right**h]hright}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjWhhhNhNubj)}(h**test**h]htest}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh , memcmp((}(hjWhhhNhNubj)}(h**left**h]hleft}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh), (}(hjWhhhNhNubj)}(h **right**h]hright}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh), (}hjWsbj)}(h**size**h]hsize}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hjWhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj}Vubh)}(hAlthough this expectation works for any memory block, it is not recommended for comparing more structured data, such as structs. This expectation is recommended for comparing, for example, data arrays.h]hAlthough this expectation works for any memory block, it is not recommended for comparing more structured data, such as structs. This expectation is recommended for comparing, for example, data arrays.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj}Vubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NULL (C macro)c.KUNIT_EXPECT_NULLhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_NULLh]h)}(hKUNIT_EXPECT_NULLh]j)}(hKUNIT_EXPECT_NULLh]j%)}(hjBXh]hKUNIT_EXPECT_NULL}(hjLXhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjHXubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjDXhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj@Xhhhj_XhMubah}(h]j;Xah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj_XhMhj=XhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj=Xhhhj_XhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjxXjtjxXjujvjwuh1hhhhhhNhNubh)}(h!``KUNIT_EXPECT_NULL (test, ptr)``h]j)}(hj~Xh]hKUNIT_EXPECT_NULL (test, ptr)}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|Xubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hExpects that **ptr** is null. h]h)}(hExpects that **ptr** is null.h](h Expects that }(hjXhhhNhNubj)}(h**ptr**h]hptr}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh is null.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjXubah}(h]h ]h"]h$]h&]uh1jhjXhMhhhhubjy)}(hX'**Parameters** ``test`` The test context object. ``ptr`` an arbitrary pointer. **Description** Sets an expectation that the value that **ptr** evaluates to is null. This is semantically equivalent to KUNIT_EXPECT_PTR_EQ(**test**, ptr, NULL). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hjXh]h Parameters}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjXubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjXh]htest}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjXubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjXhMhjXubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjXhMhjXubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hjYh]hptr}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjYubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hj6YhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2YhMhj3Yubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhj2YhMhjXubeh}(h]h ]h"]h$]h&]uh1jhjXubh)}(h**Description**h]j)}(hjXYh]h Description}(hjZYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVYubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjXubh)}(hSets an expectation that the value that **ptr** evaluates to is null. This is semantically equivalent to KUNIT_EXPECT_PTR_EQ(**test**, ptr, NULL). See KUNIT_EXPECT_TRUE() for more information.h](h(Sets an expectation that the value that }(hjnYhhhNhNubj)}(h**ptr**h]hptr}(hjvYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnYubhN evaluates to is null. This is semantically equivalent to KUNIT_EXPECT_PTR_EQ(}(hjnYhhhNhNubj)}(h**test**h]htest}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnYubh;, ptr, NULL). See KUNIT_EXPECT_TRUE() for more information.}(hjnYhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NOT_NULL (C macro)c.KUNIT_EXPECT_NOT_NULLhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_NOT_NULLh]h)}(hKUNIT_EXPECT_NOT_NULLh]j)}(hKUNIT_EXPECT_NOT_NULLh]j%)}(hjYh]hKUNIT_EXPECT_NOT_NULL}(hjYhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjYubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjYhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjYhhhjYhMubah}(h]jYah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjYhMhjYhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjYhhhjYhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjYjtjYjujvjwuh1hhhhhhNhNubh)}(h%``KUNIT_EXPECT_NOT_NULL (test, ptr)``h]j)}(hjYh]h!KUNIT_EXPECT_NOT_NULL (test, ptr)}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h"Expects that **ptr** is not null. h]h)}(h!Expects that **ptr** is not null.h](h Expects that }(hjZhhhNhNubj)}(h**ptr**h]hptr}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubh is not null.}(hjZhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj Zubah}(h]h ]h"]h$]h&]uh1jhj1ZhMhhhhubjy)}(hX+**Parameters** ``test`` The test context object. ``ptr`` an arbitrary pointer. **Description** Sets an expectation that the value that **ptr** evaluates to is not null. This is semantically equivalent to KUNIT_EXPECT_PTR_NE(**test**, ptr, NULL). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj>Zh]h Parameters}(hj@ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj:[ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj6[hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM/ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj2[hhhjQ[hM/ubah}(h]j-[ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjQ[hM/hj/[hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj/[hhhjQ[hM/ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjj[jtjj[jujvjwuh1hhhhhhNhNubh)}(h,``KUNIT_EXPECT_NOT_ERR_OR_NULL (test, ptr)``h]j)}(hjp[h]h(KUNIT_EXPECT_NOT_ERR_OR_NULL (test, ptr)}(hjr[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn[ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM1hhhhubj)}(h.Expects that **ptr** is not null and not err. h]h)}(h-Expects that **ptr** is not null and not err.h](h Expects that }(hj[hhhNhNubj)}(h**ptr**h]hptr}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubh is not null and not err.}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM/hj[ubah}(h]h ]h"]h$]h&]uh1jhj[hM/hhhhubjy)}(hX]**Parameters** ``test`` The test context object. ``ptr`` an arbitrary pointer. **Description** Sets an expectation that the value that **ptr** evaluates to is not null and not an errno stored in a pointer. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, !IS_ERR_OR_NULL(**ptr**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj[h]h Parameters}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM3hj[ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj[h]htest}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM0hj[ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hM0hj[ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hM0hj[ubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hj\h]hptr}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj \ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM1hj \ubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hj(\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$\hM1hj%\ubah}(h]h ]h"]h$]h&]uh1jhj \ubeh}(h]h ]h"]h$]h&]uh1jhj$\hM1hj[ubeh}(h]h ]h"]h$]h&]uh1jhj[ubh)}(h**Description**h]j)}(hjJ\h]h Description}(hjL\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH\ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM3hj[ubh)}(hSets an expectation that the value that **ptr** evaluates to is not null and not an errno stored in a pointer. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, !IS_ERR_OR_NULL(**ptr**)). See KUNIT_EXPECT_TRUE() for more information.h](h(Sets an expectation that the value that }(hj`\hhhNhNubj)}(h**ptr**h]hptr}(hjh\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`\ubhu evaluates to is not null and not an errno stored in a pointer. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj`\hhhNhNubj)}(h**test**h]htest}(hjz\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`\ubh, !IS_ERR_OR_NULL(}(hj`\hhhNhNubj)}(h**ptr**h]hptr}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`\ubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj`\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM2hj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_FAIL_AND_ABORT (C macro)c.KUNIT_FAIL_AND_ABORThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_FAIL_AND_ABORTh]h)}(hKUNIT_FAIL_AND_ABORTh]j)}(hKUNIT_FAIL_AND_ABORTh]j%)}(hj\h]hKUNIT_FAIL_AND_ABORT}(hj\hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj\ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj\hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMCubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj\hhhj\hMCubah}(h]j\ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj\hMChj\hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj\hhhj\hMCubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj\jtj\jujvjwuh1hhhhhhNhNubh)}(h)``KUNIT_FAIL_AND_ABORT (test, fmt, ...)``h]j)}(hj\h]h%KUNIT_FAIL_AND_ABORT (test, fmt, ...)}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMEhhhhubj)}(h7Always causes a test to fail and abort when evaluated. h]h)}(h6Always causes a test to fail and abort when evaluated.h]h6Always causes a test to fail and abort when evaluated.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMChj]ubah}(h]h ]h"]h$]h&]uh1jhj#]hMChhhhubjy)}(hX**Parameters** ``test`` The test context object. ``fmt`` an informational message to be printed when the assertion is made. ``...`` string format arguments. **Description** The opposite of KUNIT_SUCCEED(), it is an assertion that always fails. In other words, it always results in a failed assertion, and consequently always causes the test case to fail and abort when evaluated. See KUNIT_ASSERT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj0]h]h Parameters}(hj2]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.]ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMGhj*]ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjO]h]htest}(hjQ]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM]ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMDhjI]ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjh]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd]hMDhje]ubah}(h]h ]h"]h$]h&]uh1jhjI]ubeh}(h]h ]h"]h$]h&]uh1jhjd]hMDhjF]ubj)}(hK``fmt`` an informational message to be printed when the assertion is made. h](j)}(h``fmt``h]j)}(hj]h]hfmt}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMEhj]ubj)}(hhh]h)}(hBan informational message to be printed when the assertion is made.h]hBan informational message to be printed when the assertion is made.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hMEhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMEhjF]ubj)}(h!``...`` string format arguments. h](j)}(h``...``h]j)}(hj]h]h...}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMFhj]ubj)}(hhh]h)}(hstring format arguments.h]hstring format arguments.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hMFhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMFhjF]ubeh}(h]h ]h"]h$]h&]uh1jhj*]ubh)}(h**Description**h]j)}(hj]h]h Description}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMHhj*]ubh)}(hThe opposite of KUNIT_SUCCEED(), it is an assertion that always fails. In other words, it always results in a failed assertion, and consequently always causes the test case to fail and abort when evaluated. See KUNIT_ASSERT_TRUE() for more information.h]hThe opposite of KUNIT_SUCCEED(), it is an assertion that always fails. In other words, it always results in a failed assertion, and consequently always causes the test case to fail and abort when evaluated. See KUNIT_ASSERT_TRUE() for more information.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMGhj*]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_TRUE (C macro)c.KUNIT_ASSERT_TRUEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_TRUEh]h)}(hKUNIT_ASSERT_TRUEh]j)}(hKUNIT_ASSERT_TRUEh]j%)}(hj;^h]hKUNIT_ASSERT_TRUE}(hjE^hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjA^ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj=^hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMQubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj9^hhhjX^hMQubah}(h]j4^ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjX^hMQhj6^hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj6^hhhjX^hMQubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjq^jtjq^jujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_TRUE (test, condition)``h]j)}(hjw^h]h#KUNIT_ASSERT_TRUE (test, condition)}(hjy^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju^ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMShhhhubj)}(h.Sets an assertion that **condition** is true. h]h)}(h-Sets an assertion that **condition** is true.h](hSets an assertion that }(hj^hhhNhNubj)}(h **condition**h]h condition}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh is true.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMQhj^ubah}(h]h ]h"]h$]h&]uh1jhj^hMQhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``condition`` an arbitrary boolean expression. The test fails and aborts when this does not evaluate to true. **Description** This and assertions of the form `KUNIT_ASSERT_*` will cause the test case to fail *and immediately abort* when the specified condition is not met. Unlike an expectation failure, it will prevent the test case from continuing to run; this is otherwise known as an *assertion failure*.h](h)}(h**Parameters**h]j)}(hj^h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMUhj^ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj^h]htest}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMRhj^ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^hMRhj^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^hMRhj^ubj)}(hn``condition`` an arbitrary boolean expression. The test fails and aborts when this does not evaluate to true. h](j)}(h ``condition``h]j)}(hj_h]h condition}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMThj_ubj)}(hhh]h)}(h_an arbitrary boolean expression. The test fails and aborts when this does not evaluate to true.h]h_an arbitrary boolean expression. The test fails and aborts when this does not evaluate to true.}(hj/_hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMShj,_ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj+_hMThj^ubeh}(h]h ]h"]h$]h&]uh1jhj^ubh)}(h**Description**h]j)}(hjR_h]h Description}(hjT_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP_ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMVhj^ubh)}(hXThis and assertions of the form `KUNIT_ASSERT_*` will cause the test case to fail *and immediately abort* when the specified condition is not met. Unlike an expectation failure, it will prevent the test case from continuing to run; this is otherwise known as an *assertion failure*.h](h This and assertions of the form }(hjh_hhhNhNubj)}(h`KUNIT_ASSERT_*`h]hKUNIT_ASSERT_*}(hjp_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh_ubh" will cause the test case to fail }(hjh_hhhNhNubj)}(h*and immediately abort*h]hand immediately abort}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh_ubh when the specified condition is not met. Unlike an expectation failure, it will prevent the test case from continuing to run; this is otherwise known as an }(hjh_hhhNhNubj)}(h*assertion failure*h]hassertion failure}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh_ubh.}(hjh_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMUhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_FALSE (C macro)c.KUNIT_ASSERT_FALSEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_FALSEh]h)}(hKUNIT_ASSERT_FALSEh]j)}(hKUNIT_ASSERT_FALSEh]j%)}(hj_h]hKUNIT_ASSERT_FALSE}(hj_hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj_ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj_hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMfubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj_hhhj_hMfubah}(h]j_ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj_hMfhj_hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj_hhhj_hMfubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj_jtj_jujvjwuh1hhhhhhNhNubh)}(h(``KUNIT_ASSERT_FALSE (test, condition)``h]j)}(hj`h]h$KUNIT_ASSERT_FALSE (test, condition)}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhhubj)}(h/Sets an assertion that **condition** is false. h]h)}(h.Sets an assertion that **condition** is false.h](hSets an assertion that }(hj`hhhNhNubj)}(h **condition**h]h condition}(hj%`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh is false.}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMfhj`ubah}(h]h ]h"]h$]h&]uh1jhj=`hMfhhhhubjy)}(hXK**Parameters** ``test`` The test context object. ``condition`` an arbitrary boolean expression. **Description** Sets an assertion that the value that **condition** evaluates to is false. This is the same as KUNIT_EXPECT_FALSE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjJ`h]h Parameters}(hjL`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjH`ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMjhjD`ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hji`h]htest}(hjk`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjg`ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMghjc`ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~`hMghj`ubah}(h]h ]h"]h$]h&]uh1jhjc`ubeh}(h]h ]h"]h$]h&]uh1jhj~`hMghj``ubj)}(h/``condition`` an arbitrary boolean expression. h](j)}(h ``condition``h]j)}(hj`h]h condition}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhj`ubj)}(hhh]h)}(h an arbitrary boolean expression.h]h an arbitrary boolean expression.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMhhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMhhj``ubeh}(h]h ]h"]h$]h&]uh1jhjD`ubh)}(h**Description**h]j)}(hj`h]h Description}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMjhjD`ubh)}(hSets an assertion that the value that **condition** evaluates to is false. This is the same as KUNIT_EXPECT_FALSE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h&Sets an assertion that the value that }(hj`hhhNhNubj)}(h **condition**h]h condition}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubh evaluates to is false. This is the same as KUNIT_EXPECT_FALSE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hj`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMihjD`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_EQ (C macro)c.KUNIT_ASSERT_EQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_EQh]h)}(hKUNIT_ASSERT_EQh]j)}(hKUNIT_ASSERT_EQh]j%)}(hj.ah]hKUNIT_ASSERT_EQ}(hj8ahhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj4aubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj0ahhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMyubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj,ahhhjKahMyubah}(h]j'aah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjKahMyhj)ahhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj)ahhhjKahMyubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjdajtjdajujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_EQ (test, left, right)``h]j)}(hjjah]h#KUNIT_ASSERT_EQ (test, left, right)}(hjlahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhaubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM{hhhhubj)}(h9Sets an assertion that **left** and **right** are equal. h]h)}(h8Sets an assertion that **left** and **right** are equal.h](hSets an assertion that }(hjahhhNhNubj)}(h**left**h]hleft}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh and }(hjahhhNhNubj)}(h **right**h]hright}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh are equal.}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMyhjaubah}(h]h ]h"]h$]h&]uh1jhjahMyhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an assertion that the values that **left** and **right** evaluate to are equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjah]h Parameters}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM}hjaubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjah]htest}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMzhjaubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjahMzhjaubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhjahMzhjaubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjbh]hleft}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM{hjbubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hj4bhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0bhM{hj1bubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj0bhM{hjaubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjTbh]hright}(hjVbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRbubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM|hjNbubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjmbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjibhM|hjjbubah}(h]h ]h"]h$]h&]uh1jhjNbubeh}(h]h ]h"]h$]h&]uh1jhjibhM|hjaubeh}(h]h ]h"]h$]h&]uh1jhjaubh)}(h**Description**h]j)}(hjbh]h Description}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM~hjaubh)}(hSets an assertion that the values that **left** and **right** evaluate to are equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h'Sets an assertion that the values that }(hjbhhhNhNubj)}(h**left**h]hleft}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubh and }(hjbhhhNhNubj)}(h **right**h]hright}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubh evaluate to are equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM}hjaubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_PTR_EQ (C macro)c.KUNIT_ASSERT_PTR_EQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_PTR_EQh]h)}(hKUNIT_ASSERT_PTR_EQh]j)}(hKUNIT_ASSERT_PTR_EQh]j%)}(hjbh]hKUNIT_ASSERT_PTR_EQ}(hjbhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjbubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjbhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjbhhhjchMubah}(h]jbah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjchMhjbhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjbhhhjchMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj(cjtj(cjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_ASSERT_PTR_EQ (test, left, right)``h]j)}(hj.ch]h'KUNIT_ASSERT_PTR_EQ (test, left, right)}(hj0chhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,cubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h8Asserts that pointers **left** and **right** are equal. h]h)}(h7Asserts that pointers **left** and **right** are equal.h](hAsserts that pointers }(hjHchhhNhNubj)}(h**left**h]hleft}(hjPchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHcubh and }(hjHchhhNhNubj)}(h **right**h]hright}(hjbchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHcubh are equal.}(hjHchhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjDcubah}(h]h ]h"]h$]h&]uh1jhjzchMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a pointer. ``right`` an arbitrary expression that evaluates to a pointer. **Description** Sets an assertion that the values that **left** and **right** evaluate to are equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjch]h Parameters}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjcubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjch]htest}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjcubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchMhjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchMhjcubj)}(h>``left`` an arbitrary expression that evaluates to a pointer. h](j)}(h``left``h]j)}(hjch]hleft}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjcubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchMhjcubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjchMhjcubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. h](j)}(h ``right``h]j)}(hjdh]hright}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjdubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hj1dhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-dhMhj.dubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhj-dhMhjcubeh}(h]h ]h"]h$]h&]uh1jhjcubh)}(h**Description**h]j)}(hjSdh]h Description}(hjUdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQdubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjcubh)}(hSets an assertion that the values that **left** and **right** evaluate to are equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h'Sets an assertion that the values that }(hjidhhhNhNubj)}(h**left**h]hleft}(hjqdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjidubh and }(hjidhhhNhNubj)}(h **right**h]hright}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjidubh evaluate to are equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjidhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjcubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_NE (C macro)c.KUNIT_ASSERT_NEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_NEh]h)}(hKUNIT_ASSERT_NEh]j)}(hKUNIT_ASSERT_NEh]j%)}(hjdh]hKUNIT_ASSERT_NE}(hjdhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjdubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjdhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjdhhhjdhMubah}(h]jdah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjdhMhjdhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjdhhhjdhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjdjtjdjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_NE (test, left, right)``h]j)}(hjdh]h#KUNIT_ASSERT_NE (test, left, right)}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h8An assertion that **left** and **right** are not equal. h]h)}(h7An assertion that **left** and **right** are not equal.h](hAn assertion that }(hj ehhhNhNubj)}(h**left**h]hleft}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj eubh and }(hj ehhhNhNubj)}(h **right**h]hright}(hj&ehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj eubh are not equal.}(hj ehhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjeubah}(h]h ]h"]h$]h&]uh1jhj>ehMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an assertion that the values that **left** and **right** evaluate to are not equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjKeh]h Parameters}(hjMehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIeubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjEeubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjjeh]htest}(hjlehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjheubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjdeubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjdeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjaeubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjeh]hleft}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjeubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjaeubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjeh]hright}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjeubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjaeubeh}(h]h ]h"]h$]h&]uh1jhjEeubh)}(h**Description**h]j)}(hjfh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjEeubh)}(hSets an assertion that the values that **left** and **right** evaluate to are not equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h'Sets an assertion that the values that }(hj-fhhhNhNubj)}(h**left**h]hleft}(hj5fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-fubh and }(hj-fhhhNhNubj)}(h **right**h]hright}(hjGfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-fubh evaluate to are not equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hj-fhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjEeubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_PTR_NE (C macro)c.KUNIT_ASSERT_PTR_NEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_PTR_NEh]h)}(hKUNIT_ASSERT_PTR_NEh]j)}(hKUNIT_ASSERT_PTR_NEh]j%)}(hjzfh]hKUNIT_ASSERT_PTR_NE}(hjfhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjfubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj|fhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjxfhhhjfhMubah}(h]jsfah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjfhMhjufhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjufhhhjfhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjfjtjfjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_ASSERT_PTR_NE (test, left, right)``h]j)}(hjfh]h'KUNIT_ASSERT_PTR_NE (test, left, right)}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hAsserts that pointers **left** and **right** are not equal. KUNIT_ASSERT_PTR_EQ() - Asserts that pointers **left** and **right** are equal. h]h)}(hAsserts that pointers **left** and **right** are not equal. KUNIT_ASSERT_PTR_EQ() - Asserts that pointers **left** and **right** are equal.h](hAsserts that pointers }(hjfhhhNhNubj)}(h**left**h]hleft}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh and }(hjfhhhNhNubj)}(h **right**h]hright}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh> are not equal. KUNIT_ASSERT_PTR_EQ() - Asserts that pointers }(hjfhhhNhNubj)}(h**left**h]hleft}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh and }hjfsbj)}(h **right**h]hright}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh are equal.}(hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjfubah}(h]h ]h"]h$]h&]uh1jhj&ghMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a pointer. ``right`` an arbitrary expression that evaluates to a pointer. **Description** Sets an assertion that the values that **left** and **right** evaluate to are not equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hj3gh]h Parameters}(hj5ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1gubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj-gubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjRgh]htest}(hjTghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPgubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjLgubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjkghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjgghMhjhgubah}(h]h ]h"]h$]h&]uh1jhjLgubeh}(h]h ]h"]h$]h&]uh1jhjgghMhjIgubj)}(h>``left`` an arbitrary expression that evaluates to a pointer. h](j)}(h``left``h]j)}(hjgh]hleft}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjgubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghMhjIgubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. h](j)}(h ``right``h]j)}(hjgh]hright}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjgubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjghMhjgubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjghMhjIgubeh}(h]h ]h"]h$]h&]uh1jhj-gubh)}(h**Description**h]j)}(hjgh]h Description}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj-gubh)}(hSets an assertion that the values that **left** and **right** evaluate to are not equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h'Sets an assertion that the values that }(hjhhhhNhNubj)}(h**left**h]hleft}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh and }(hjhhhhNhNubj)}(h **right**h]hright}(hj/hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh evaluate to are not equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj-gubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_LT (C macro)c.KUNIT_ASSERT_LThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_LTh]h)}(hKUNIT_ASSERT_LTh]j)}(hKUNIT_ASSERT_LTh]j%)}(hjbhh]hKUNIT_ASSERT_LT}(hjlhhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjhhubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjdhhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj`hhhhjhhMubah}(h]j[hah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhhMhj]hhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj]hhhhjhhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjhjtjhjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_LT (test, left, right)``h]j)}(hjhh]h#KUNIT_ASSERT_LT (test, left, right)}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h3An assertion that **left** is less than **right**. h]h)}(h2An assertion that **left** is less than **right**.h](hAn assertion that }(hjhhhhNhNubj)}(h**left**h]hleft}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh is less than }(hjhhhhNhNubj)}(h **right**h]hright}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh.}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhubah}(h]h ]h"]h$]h&]uh1jhjhhMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an assertion that the value that **left** evaluates to is less than the value that **right** evaluates to. This is the same as KUNIT_EXPECT_LT(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjhh]h Parameters}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjih]htest}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjiubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj/ihhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+ihMhj,iubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhj+ihMhj iubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjOih]hleft}(hjQihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMiubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjIiubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjhihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdihMhjeiubah}(h]h ]h"]h$]h&]uh1jhjIiubeh}(h]h ]h"]h$]h&]uh1jhjdihMhj iubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjih]hright}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjiubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihMhjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjihMhj iubeh}(h]h ]h"]h$]h&]uh1jhjhubh)}(h**Description**h]j)}(hjih]h Description}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhubh)}(hSets an assertion that the value that **left** evaluates to is less than the value that **right** evaluates to. This is the same as KUNIT_EXPECT_LT(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h&Sets an assertion that the value that }(hjihhhNhNubj)}(h**left**h]hleft}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubh* evaluates to is less than the value that }(hjihhhNhNubj)}(h **right**h]hright}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubh evaluates to. This is the same as KUNIT_EXPECT_LT(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjihhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_LE (C macro)c.KUNIT_ASSERT_LEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_LEh]h)}(hKUNIT_ASSERT_LEh]j)}(hKUNIT_ASSERT_LEh]j%)}(hj&jh]hKUNIT_ASSERT_LE}(hj0jhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj,jubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj(jhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj$jhhhjCjhMubah}(h]jjah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjCjhMhj!jhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj!jhhhjCjhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj\jjtj\jjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_LE (test, left, right)``h]j)}(hjbjh]h#KUNIT_ASSERT_LE (test, left, right)}(hjdjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`jubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h?An assertion that **left** is less than or equal to **right**. h]h)}(h>An assertion that **left** is less than or equal to **right**.h](hAn assertion that }(hj|jhhhNhNubj)}(h**left**h]hleft}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|jubh is less than or equal to }(hj|jhhhNhNubj)}(h **right**h]hright}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|jubh.}(hj|jhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjxjubah}(h]h ]h"]h$]h&]uh1jhjjhMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an assertion that the value that **left** evaluates to is less than or equal to the value that **right** evaluates to. This is the same as KUNIT_EXPECT_LE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjjh]h Parameters}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjjubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjjh]htest}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjjubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMhjjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjjhMhjjubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjkh]hleft}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj kubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hj,khhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(khMhj)kubah}(h]h ]h"]h$]h&]uh1jhj kubeh}(h]h ]h"]h$]h&]uh1jhj(khMhjjubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjLkh]hright}(hjNkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJkubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjFkubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjekhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjakhMhjbkubah}(h]h ]h"]h$]h&]uh1jhjFkubeh}(h]h ]h"]h$]h&]uh1jhjakhMhjjubeh}(h]h ]h"]h$]h&]uh1jhjjubh)}(h**Description**h]j)}(hjkh]h Description}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjjubh)}(hXSets an assertion that the value that **left** evaluates to is less than or equal to the value that **right** evaluates to. This is the same as KUNIT_EXPECT_LE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h&Sets an assertion that the value that }(hjkhhhNhNubj)}(h**left**h]hleft}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubh6 evaluates to is less than or equal to the value that }(hjkhhhNhNubj)}(h **right**h]hright}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubh evaluates to. This is the same as KUNIT_EXPECT_LE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjkhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_GT (C macro)c.KUNIT_ASSERT_GThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_GTh]h)}(hKUNIT_ASSERT_GTh]j)}(hKUNIT_ASSERT_GTh]j%)}(hjkh]hKUNIT_ASSERT_GT}(hjkhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjkubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjkhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjkhhhjlhMubah}(h]jkah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjlhMhjkhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjkhhhjlhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj ljtj ljujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_GT (test, left, right)``h]j)}(hj&lh]h#KUNIT_ASSERT_GT (test, left, right)}(hj(lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$lubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h6An assertion that **left** is greater than **right**. h]h)}(h5An assertion that **left** is greater than **right**.h](hAn assertion that }(hj@lhhhNhNubj)}(h**left**h]hleft}(hjHlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@lubh is greater than }(hj@lhhhNhNubj)}(h **right**h]hright}(hjZlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@lubh.}(hj@lhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjAssertion that **left** is greater than or equal to **right**.h](hAssertion that }(hjnhhhNhNubj)}(h**left**h]hleft}(hj nhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubh is greater than or equal to }(hjnhhhNhNubj)}(h **right**h]hright}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubh.}(hjnhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjnubah}(h]h ]h"]h$]h&]uh1jhj6nhMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an assertion that the value that **left** evaluates to is greater than the value that **right** evaluates to. This is the same as KUNIT_EXPECT_GE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjCnh]h Parameters}(hjEnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAnubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hj=nubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjbnh]htest}(hjdnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`nubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj\nubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj{nhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwnhMhjxnubah}(h]h ]h"]h$]h&]uh1jhj\nubeh}(h]h ]h"]h$]h&]uh1jhjwnhMhjYnubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjnh]hleft}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjnubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhM hjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhM hjYnubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjnh]hright}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjnubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhM hjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhM hjYnubeh}(h]h ]h"]h$]h&]uh1jhj=nubh)}(h**Description**h]j)}(hjoh]h Description}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj oubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hj=nubh)}(hSets an assertion that the value that **left** evaluates to is greater than the value that **right** evaluates to. This is the same as KUNIT_EXPECT_GE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h&Sets an assertion that the value that }(hj%ohhhNhNubj)}(h**left**h]hleft}(hj-ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%oubh- evaluates to is greater than the value that }(hj%ohhhNhNubj)}(h **right**h]hright}(hj?ohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%oubh evaluates to. This is the same as KUNIT_EXPECT_GE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hj%ohhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hj=nubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_STREQ (C macro)c.KUNIT_ASSERT_STREQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_STREQh]h)}(hKUNIT_ASSERT_STREQh]j)}(hKUNIT_ASSERT_STREQh]j%)}(hjroh]hKUNIT_ASSERT_STREQ}(hj|ohhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjxoubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjtohhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjpohhhjohMubah}(h]jkoah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjohMhjmohhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjmohhhjohMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjojtjojujvjwuh1hhhhhhNhNubh)}(h*``KUNIT_ASSERT_STREQ (test, left, right)``h]j)}(hjoh]h&KUNIT_ASSERT_STREQ (test, left, right)}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hzh]hptr}(hj@zhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh to generate parameters.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj<~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%kunit_register_params_array (C macro)c.kunit_register_params_arrayhNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunit_register_params_arrayh]h)}(hkunit_register_params_arrayh]j)}(hkunit_register_params_arrayh]j%)}(hjqh]hkunit_register_params_array}(hj{hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjwubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjshhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjohhhjhMubah}(h]jjah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjlhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjlhhhjhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubh)}(hD``kunit_register_params_array (test, array, param_count, get_desc)``h]j)}(hjh]h@kunit_register_params_array (test, array, param_count, get_desc)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h+Register parameter array for a KUnit test. h]h)}(h*Register parameter array for a KUnit test.h]h*Register parameter array for a KUnit test.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubah}(h]h ]h"]h$]h&]uh1jhjhMhhhhubjy)}(hX**Parameters** ``test`` The KUnit test structure to which parameters will be added. ``array`` An array of test parameters. ``param_count`` Number of parameters. ``get_desc`` Function that generates a string description for a given parameter element. **Description** This macro initializes the **test**'s parameter array data, storing information including the parameter array, its count, the element size, and the parameter description function within `test->params_array`. **Note** If using this macro in param_init(), kunit_array_gen_params() will then need to be manually provided as the parameter generator function to KUNIT_CASE_PARAM_WITH_INIT(). kunit_array_gen_params() is a KUnit function that uses the registered array to generate parametersh](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh](j)}(hE``test`` The KUnit test structure to which parameters will be added. h](j)}(h``test``h]j)}(hjh]htest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h;The KUnit test structure to which parameters will be added.h]h;The KUnit test structure to which parameters will be added.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h'``array`` An array of test parameters. h](j)}(h ``array``h]j)}(hj:h]harray}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj4ubj)}(hhh]h)}(hAn array of test parameters.h]hAn array of test parameters.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhMhjPubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhjOhMhjubj)}(h&``param_count`` Number of parameters. h](j)}(h``param_count``h]j)}(hjsh]h param_count}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjmubj)}(hhh]h)}(hNumber of parameters.h]hNumber of parameters.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(hY``get_desc`` Function that generates a string description for a given parameter element. h](j)}(h ``get_desc``h]j)}(hjh]hget_desc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hKFunction that generates a string description for a given parameter element.h]hKFunction that generates a string description for a given parameter element.}(hjŀhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj€ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(hThis macro initializes the **test**'s parameter array data, storing information including the parameter array, its count, the element size, and the parameter description function within `test->params_array`.h](hThis macro initializes the }(hjhhhNhNubj)}(h**test**h]htest}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh’s parameter array data, storing information including the parameter array, its count, the element size, and the parameter description function within }(hjhhhNhNubj)}(h`test->params_array`h]htest->params_array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(h**Note**h]j)}(hj3h]hNote}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(hX If using this macro in param_init(), kunit_array_gen_params() will then need to be manually provided as the parameter generator function to KUNIT_CASE_PARAM_WITH_INIT(). kunit_array_gen_params() is a KUnit function that uses the registered array to generate parametersh]hX If using this macro in param_init(), kunit_array_gen_params() will then need to be manually provided as the parameter generator function to KUNIT_CASE_PARAM_WITH_INIT(). kunit_array_gen_params() is a KUnit function that uses the registered array to generate parameters}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubeh}(h]test-apiah ]h"]test apiah$]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_sourceh _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}nameids}jdjas nametypes}jdsh}(jahhhjjjoj4j9jjjjjjj j j j j j jjjjj jjjjjjjjjj!!j&!j1$j6$jZ&j_&j(j)j+j+jU-jZ-j_2jd2j4j4j5j5jK7jP7j8j8jg:jl:jq;jv;j<j<jU>jZ>j?j?jAjAjCjCjEjEjGjGjIjIjKjKjMjMj{OjOjuQjzQjoSjtSjUjUj;Xj@XjYjYj-[j2[j\j\j4^j9^j_j_j'aj,ajbjbjdjdjsfjxfj[hj`hjjj$jjkjkjmjmjkojpoj/qj4qj)sj.sjujujwjwj\yjayjzjzj*|j/|j}j}jjjou 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] transformerN include_log] decorationNhhub.