Rsphinx.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]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/pt_BR/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}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhj hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubhdesc_sig_space)}(h h]h }(hj#hhhNhNubah}(h]h ]wah"]h$]h&]uh1j!hj hhhj hKubh desc_name)}(h kunit_statush]h desc_sig_name)}(hjh]h kunit_status}(hj:hhhNhNubah}(h]h ]nah"]h$]h&]uh1j8hj4ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j2hj hhhj hKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1j sphinx_line_type declaratorhjhhhj hKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhj hKhjhhubh desc_content)}(hhh]h)}(h'Type of result for a test or test suiteh]h'Type of result for a test or test suite}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK7hjfhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhj hKubeh}(h]h ](cenumeh"]h$]h&]domainjobjtypejdesctypejnoindex 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&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK;hjubhdefinition_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&]uh1hhj hKAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKAhjubj)}(h4``KUNIT_SKIPPED`` Denotes the test has been skipped.h](j)}(h``KUNIT_SKIPPED``h]j)}(hj1h]h KUNIT_SKIPPED}(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.hhKChj+ubj)}(hhh]h)}(h"Denotes the test has been skipped.h]h"Denotes the test has been skipped.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKDhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhKChjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_case (C struct) c.kunit_casehNtauh1hhhhhhNhNubh)}(hhh](j)}(h kunit_caseh]j )}(hstruct kunit_caseh](j)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKIubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhjhKIubj3)}(h kunit_caseh]j9)}(hjh]h kunit_case}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhKIubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhKIubah}(h]j~ah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhKIhjhhubje)}(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&]uh1jdhjhhhjhKIubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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); };}hj sbah}(h]h ]h"]h$]h&]hhuh1j h\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK_hjubh)}(h **Members**h]j)}(hjh]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\hj7ubj)}(hhh]h)}(h/the function representing the actual test case.h]h/the function representing the actual test case.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhK\hjSubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhjRhK\hj4ubj)}(h$``name`` the name of the test case. h](j)}(h``name``h]j)}(hjvh]hname}(hjxhhhNhNubah}(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.hhK]hjpubj)}(hhh]h)}(hthe name of the test case.h]hthe name of the test case.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK]hjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjhK]hj4ubj)}(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^hj4ubj)}(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_hj4ubj)}(hE``param_init`` The init function to run before a parameterized test. h](j)}(h``param_init``h]j)}(hj!h]h param_init}(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.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&]uh1hhj6hK`hj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj6hK`hj4ubj)}(hC``param_exit`` The exit function to run after a parameterized test.h](j)}(h``param_exit``h]j)}(hjZh]h param_exit}(hj\hhhNhNubah}(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.hhK`hjTubj)}(hhh]h)}(h4The exit function to run after a parameterized test.h]h4The exit function to run after a parameterized test.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKahjpubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjohK`hj4ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(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 ](xrefjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocdev-tools/kunit/api/test refdomainjreftypetype 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), {} };}hj)sbah}(h]h ]h"]h$]h&]hhƌforcelanguagejhighlight_args}uh1j h\/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](j)}(h KUNIT_CASEh]j )}(h KUNIT_CASEh]j3)}(h KUNIT_CASEh]j9)}(hjOh]h KUNIT_CASE}(hjYhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjUubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjQhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjMhhhjlhKubah}(h]jHah ](j\j]eh"]h$]h&]jajb)jchuh1jhjlhKhjJhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjJhhhjlhKubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubh)}(h``KUNIT_CASE (test_name)``h]j)}(hjh]hKUNIT_CASE (test_name)}(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.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 ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype 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&]uh1jhjhKhhhhubj)}(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&]uh1jhj9ubah}(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 }(hjQhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hj[h]hstruct kunit_case}(hj]hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjQubh+ object from it. See the documentation for }(hjQhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_caseuh1hhjxhKhjQubh! for an example on how to use it.}(hjQhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjxhKhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_ATTR (C macro)c.KUNIT_CASE_ATTRhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_CASE_ATTRh]j )}(hKUNIT_CASE_ATTRh]j3)}(hKUNIT_CASE_ATTRh]j9)}(hjh]hKUNIT_CASE_ATTR}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhKubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhKhjhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjhhhjhKubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubh)}(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}(hj"hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype 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=hKhhhhubj)}(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)}(hjTh]h Parameters}(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.hhKhjNubj)}(hhh](j)}(h3``test_name`` a reference to a test case function. h](j)}(h ``test_name``h]j)}(hjsh]h test_name}(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.hhKhjmubj)}(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&]uh1jhjmubeh}(h]h ]h"]h$]h&]uh1jhjhKhjjubj)}(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&]uh1jhjhKhjjubeh}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_SLOW (C macro)c.KUNIT_CASE_SLOWhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_CASE_SLOWh]j )}(hKUNIT_CASE_SLOWh]j3)}(hKUNIT_CASE_SLOWh]j9)}(hjh]hKUNIT_CASE_SLOW}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhKubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhKhjhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjhhhjhKubeh}(h]h ](jmacroeh"]h$]h&]jjjj5jj5jjjuh1hhhhhhNhNubh)}(h``KUNIT_CASE_SLOW (test_name)``h]j)}(hj;h]hKUNIT_CASE_SLOW (test_name)}(hj=hhhNhNubah}(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.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 }(hjUhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hj_h]hstruct kunit_case}(hjahhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjUubh with the slow attribute}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj|hKhjQubah}(h]h ]h"]h$]h&]uh1jhj|hKhhhhubj)}(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&]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)}(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&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_PARAM (C macro)c.KUNIT_CASE_PARAMhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_CASE_PARAMh]j )}(hKUNIT_CASE_PARAMh]j3)}(hKUNIT_CASE_PARAMh]j9)}(hj h]hKUNIT_CASE_PARAM}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj hhhj# hKubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhj# hKhj hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj hhhj# hKubeh}(h]h ](jmacroeh"]h$]h&]jjjj< jj< jjjuh1hhhhhhNhNubh)}(h,``KUNIT_CASE_PARAM (test_name, gen_params)``h]j)}(hjB h]h(KUNIT_CASE_PARAM (test_name, gen_params)}(hjD 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 }(hj\ hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjf h]hstruct kunit_case}(hjh hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjd ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj\ ubeh}(h]h ]h"]h$]h&]uh1hhj hKhjX ubah}(h]h ]h"]h$]h&]uh1jhj hKhhhhubj)}(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)}hjN sbah}(h]h ]h"]h$]h&]hhuh1j h\/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 }(hj] hhhNhNubj)}(h**prev**h]hprev}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj] ubhR is the previously returned value, which should be used to derive the next value; }(hj] hhhNhNubj)}(h**prev**h]hprev}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj] 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 }(hj] hhhNhNubj)}(h**desc**h]hdesc}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj] ubh: (size of KUNIT_PARAM_DESC_SIZE) describing the parameter.}(hj] 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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_PARAM_ATTR (C macro)c.KUNIT_CASE_PARAM_ATTRhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_CASE_PARAM_ATTRh]j )}(hKUNIT_CASE_PARAM_ATTRh]j3)}(hKUNIT_CASE_PARAM_ATTRh]j9)}(hj h]hKUNIT_CASE_PARAM_ATTR}(hj hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj hhhj hKubah}(h]j ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj hKhj hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj hhhj hKubeh}(h]h ](jmacroeh"]h$]h&]jjjj jj jjjuh1hhhhhhNhNubh)}(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 ](jjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype 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&]uh1hhj9 hKhj ubah}(h]h ]h"]h$]h&]uh1jhj9 hKhhhhubj)}(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)}(hjP h]h Parameters}(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.hhKhjJ ubj)}(hhh](j)}(h3``test_name`` a reference to a test case function. h](j)}(h ``test_name``h]j)}(hjo h]h test_name}(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.hhKhji 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&]uh1jhji ubeh}(h]h ]h"]h$]h&]uh1jhj hKhjf 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 hKhjf 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 hKhjf ubeh}(h]h ]h"]h$]h&]uh1jhjJ ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$KUNIT_CASE_PARAM_WITH_INIT (C macro)c.KUNIT_CASE_PARAM_WITH_INIThNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_CASE_PARAM_WITH_INITh]j )}(hKUNIT_CASE_PARAM_WITH_INITh]j3)}(hKUNIT_CASE_PARAM_WITH_INITh]j9)}(hj4 h]hKUNIT_CASE_PARAM_WITH_INIT}(hj> hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj: ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj6 hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj2 hhhjQ hKubah}(h]j- ah ](j\j]eh"]h$]h&]jajb)jchuh1jhjQ hKhj/ hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj/ hhhjQ hKubeh}(h]h ](jmacroeh"]h$]h&]jjjjj jjj jjjuh1hhhhhhNhNubh)}(hB``KUNIT_CASE_PARAM_WITH_INIT (test_name, gen_params, init, exit)``h]j)}(hjp h]h>KUNIT_CASE_PARAM_WITH_INIT (test_name, gen_params, init, exit)}(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.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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj hKhhhhubj)}(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)}(hj6 h]hinit}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4 ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj0 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.}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjK hKhjL ubah}(h]h ]h"]h$]h&]uh1jhj0 ubeh}(h]h ]h"]h$]h&]uh1jhjK hKhj ubj)}(hU``exit`` A reference to the param_exit() function to run after a parameterized test. h](j)}(h``exit``h]j)}(hjo h]hexit}(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.hhKhji 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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhji 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)}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_suite (C struct) c.kunit_suitehNtauh1hhhhhhNhNubh)}(hhh](j)}(h kunit_suiteh]j )}(hstruct kunit_suiteh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjhhhj#hKubj3)}(h kunit_suiteh]j9)}(hjh]h kunit_suite}(hj6hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj2ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhj#hKubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhj#hKubah}(h]j ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj#hKhj hhubje)}(hhh]h)}(hJdescribes a related collection of :c:type:`struct kunit_case `h](h"describes a related collection of }(hjXhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjbh]hstruct kunit_case}(hjdhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjj)}j]j ASTIdentifier)} identifierjsb c.kunit_suiteasbj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjXubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjUhhubah}(h]h ]h"]h$]h&]uh1jdhj hhhj#hKubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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&]hhuh1j h\/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)}(hj(h]h suite_init}(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)}(h1called once per test suite before the test cases.h]h1called once per test suite before the test cases.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=hMhj>ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(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)}(hjah]h suite_exit}(hjchhhNhNubah}(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)}(h0called once per test suite after all test cases.h]h0called once per test suite after all test cases.}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMhjwubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjvhMhjubj)}(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)}(hj h]h test_cases}(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.hhMhjubj)}(hhh]h)}(h&a null terminated array of test cases.h]h&a null terminated array of 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)}(h6``attr`` the attributes associated with the test suiteh](j)}(h``attr``h]j)}(hjEh]hattr}(hjGhhhNhNubah}(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.hhMhj?ubj)}(hhh]h)}(h-the attributes associated with the test suiteh]h-the attributes associated with the test suite}(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&]uh1jhjZhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(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.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 ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype 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}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h**suite_exit**h]h suite_exit}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh will run even if }(hjhhhNhNubj)}(h**init**h]hinit}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h**suite_init**h]h suite_init}(hjXhhhNhNubah}(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 }(hjqhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hj{h]hstruct kunit_case}(hj}hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjqubh; must be associated with a kunit_suite for KUnit to run it.}(hjqhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM hhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit (C struct)c.kunithNtauh1hhhhhhNhNubh)}(hhh](j)}(hkunith]j )}(h struct kunith](j)}(hjh]hstruct}(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 ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(hkunith]j9)}(hjh]hkunit}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhMubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjhhubje)}(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&]uh1jdhjhhhjhMubeh}(h]h ](jstructeh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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}(hj"hhhNhNubah}(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.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&]hhuh1j h\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM=hjubh)}(h **Members**h]j)}(hjLh]hMembers}(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.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)}(hjkh]hpriv}(hjmhhhNhNubah}(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.hhM;hjeubj)}(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 }(hjhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM:hjubh).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhM:hjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhM;hjbubj)}(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=hjbubj)}(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=hjbubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(h**Description**h]j)}(hjEh]h Description}(hjGhhhNhNubah}(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.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 }(hj[hhhNhNubj)}(h**priv**h]hpriv}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubh, }(hj[hhhNhNubj)}(h **parent**h]hparent}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubh and }(hj[hhhNhNubj)}(h**params_array**h]h params_array}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubh which can be used by the test writer to store arbitrary data, access the parent context, and to store the parameter array, respectively.}(hj[hhhNhNubeh}(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](j)}(hkunit_test_suitesh]j )}(hkunit_test_suitesh]j3)}(hkunit_test_suitesh]j9)}(hjh]hkunit_test_suites}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhMubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjhhhjhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubh)}(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 }(hj hhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj ubh with KUnit.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj0hMhjubah}(h]h ]h"]h$]h&]uh1jhj0hMhhhhubj)}(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)}(hjGh]h Parameters}(hjIhhhNhNubah}(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.hhMhjAubj)}(hhh]j)}(h[``__suites...`` a statically allocated list of :c:type:`struct kunit_suite `. h](j)}(h``__suites...``h]j)}(hjfh]h __suites...}(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.hhMhj`ubj)}(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 ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_suiteuh1hhj{hMhjubh.}(hjhhhNhNubeh}(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&]uh1jhjAubh)}(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.hhMhjAubh)}(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.hhMhjAubh)}(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.hhMhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(kunit_test_init_section_suites (C macro) c.kunit_test_init_section_suiteshNtauh1hhhhhhNhNubh)}(hhh](j)}(hkunit_test_init_section_suitesh]j )}(hkunit_test_init_section_suitesh]j3)}(hkunit_test_init_section_suitesh]j9)}(hj$h]hkunit_test_init_section_suites}(hj.hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj*ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj&hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj"hhhjAhMubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjAhMhjhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjhhhjAhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjZjjZjjjuh1hhhhhhNhNubh)}(h0``kunit_test_init_section_suites (__suites...)``h]j)}(hj`h]h,kunit_test_init_section_suites (__suites...)}(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.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 }(hjzhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjzubh( containing init functions or init data.}(hjzhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjvubah}(h]h ]h"]h$]h&]uh1jhjhMhhhhubj)}(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 ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype 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)}(hj5h]h Description}(hj7hhhNhNubah}(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.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.}(hjKhhhNhNubah}(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.}(hjZhhhNhNubah}(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)}(hjkh]hNote}(hjmhhhNhNubah}(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.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.}(hjhhhNhNubah}(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.}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h kunit_kmalloc_array (C function)c.kunit_kmalloc_arrayhNtauh1hhhhhhNhNubh)}(hhh](j)}(hQvoid * kunit_kmalloc_array (struct kunit *test, size_t n, size_t size, gfp_t gfp)h]j )}(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 ]j.ah"]h$]h&]uh1j!hjhhhjhMubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhMubj3)}(hkunit_kmalloc_arrayh]j9)}(hkunit_kmalloc_arrayh]hkunit_kmalloc_array}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhMubhdesc_parameterlist)}(h6(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](hdesc_parameter)}(hstruct kunit *testh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hkunith]hkunit}(hj2hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj/ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj4modnameN classnameNjj)}j]j)}jjsbc.kunit_kmalloc_arrayasbuh1hhjubj")}(h h]h }(hjRhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(htesth]htest}(hjmhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(hsize_t nh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jNc.kunit_kmalloc_arrayasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hjDh]hn}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jNc.kunit_kmalloc_arrayasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubj)}(h gfp_t gfph](h)}(hhh]j9)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jNc.kunit_kmalloc_arrayasbuh1hhjubj")}(h h]h }(hj6hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hgfph]hgfp}(hjDhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj ubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhMubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjhhubje)}(hhh]h)}(h=Like kmalloc_array() except the allocation is *test managed*.h](h.Like kmalloc_array() except the allocation is }(hjnhhhNhNubj)}(h*test managed*h]h test managed}(hjvhhhNhNubah}(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.hhMhjkhhubah}(h]h ]h"]h$]h&]uh1jdhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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)}(hj3h]h size_t size}(hj5hhhNhNubah}(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.hhMhj-ubj)}(hhh]h)}(h(The size in bytes of the desired memory.h]h(The size in bytes of the desired memory.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHhMhjIubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjHhMhjubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hjlh]h gfp_t gfp}(hjnhhhNhNubah}(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.hhMhjfubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(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)}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kmalloc (C function)c.kunit_kmallochNtauh1hhhhhhNhNubh)}(hhh](j)}(hAvoid * kunit_kmalloc (struct kunit *test, size_t size, gfp_t gfp)h]j )}(h?void *kunit_kmalloc(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(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 }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj hhhjhMubj)}(hjh]h*}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhMubj3)}(h kunit_kmalloch]j9)}(h kunit_kmalloch]h kunit_kmalloc}(hj=hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj9ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj hhhjhMubj )}(h,(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hstruct kunit *testh](j)}(hjh]hstruct}(hjYhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj")}(h h]h }(hjfhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubh)}(hhh]j9)}(hkunith]hkunit}(hjwhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjtubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjymodnameN classnameNjj)}j]j)}jj?sbc.kunit_kmallocasbuh1hhjUubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjUubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubj9)}(htesth]htest}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjUubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjQubj)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.kunit_kmallocasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjQubj)}(h gfp_t gfph](h)}(hhh]j9)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]jc.kunit_kmallocasbuh1hhjubj")}(h h]h }(hj4hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hgfph]hgfp}(hjBhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjQubeh}(h]h ]h"]h$]h&]hhuh1jhj hhhjhMubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhMubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjhhubje)}(hhh]h)}(h7Like kmalloc() except the allocation is *test managed*.h](h(Like kmalloc() except the allocation is }(hjlhhhNhNubj)}(h*test managed*h]h test managed}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubh.}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjihhubah}(h]h ]h"]h$]h&]uh1jdhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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&]uh1hhj hMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hMhjubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hj1h]h gfp_t gfp}(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%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFhMhjGubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjFhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjlh]h Description}(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.hhMhjubh)}(h=See kmalloc() and kunit_kmalloc_array() for more information.h]h=See kmalloc() and kunit_kmalloc_array() for more information.}(hjhhhNhNubah}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kfree (C function) c.kunit_kfreehNtauh1hhhhhhNhNubh)}(hhh](j)}(h6void kunit_kfree (struct kunit *test, const void *ptr)h]j )}(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 ]j.ah"]h$]h&]uh1j!hjhhhjhMubj3)}(h kunit_kfreeh]j9)}(h kunit_kfreeh]h kunit_kfree}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhMubj )}(h%(struct kunit *test, const void *ptr)h](j)}(hstruct kunit *testh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hkunith]hkunit}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsb c.kunit_kfreeasbuh1hhjubj")}(h h]h }(hj;hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjIhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(htesth]htest}(hjVhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst void *ptrh](j)}(hconsth]hconst}(hjohhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj")}(h h]h }(hj}hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjkubj)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjkubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjkubj9)}(hptrh]hptr}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjkubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhMubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjhhubje)}(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&]uh1jdhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubj)}(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)}(hjh]hstruct kunit *test}(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 test case to which the resource belongs.h]h,The test case to which the resource belongs.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hMhj5ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4hMhjubj)}(h2``const void *ptr`` The memory allocation to free.h](j)}(h``const void *ptr``h]j)}(hjXh]hconst void *ptr}(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)}(hThe memory allocation to free.h]hThe memory allocation to free.}(hjqhhhNhNubah}(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&]uh1jhjRubeh}(h]h ]h"]h$]h&]uh1jhjmhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kzalloc (C function)c.kunit_kzallochNtauh1hhhhhhNhNubh)}(hhh](j)}(hAvoid * kunit_kzalloc (struct kunit *test, size_t size, gfp_t gfp)h]j )}(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 ]j.ah"]h$]h&]uh1j!hjhhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj3)}(h kunit_kzalloch]j9)}(h kunit_kzalloch]h kunit_kzalloc}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhhjhMubj )}(h,(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hstruct kunit *testh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj")}(h h]h }(hj hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubh)}(hhh]j9)}(hkunith]hkunit}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j)}jjsbc.kunit_kzallocasbuh1hhjubj")}(h h]h }(hj:hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj)}(hjh]h*}(hjHhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj9)}(htesth]htest}(hjUhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjqhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjnubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjsmodnameN classnameNjj)}j]j6c.kunit_kzallocasbuh1hhjjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjjubj9)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h gfp_t gfph](h)}(hhh]j9)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjmodnameN classnameNjj)}j]j6c.kunit_kzallocasbuh1hhjubj")}(h h]h }(hjhhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjubj9)}(hgfph]hgfp}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhMubah}(h]jah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjhhubje)}(hhh]h)}(h5Just like kunit_kmalloc(), but zeroes the allocation.h]h5Just like kunit_kmalloc(), but zeroes the allocation.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj hhubah}(h]h ]h"]h$]h&]uh1jdhjhhhjhMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj' jj' jjjuh1hhhhhhNhNubj)}(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)}(hj1 h]h Parameters}(hj3 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)}(hjP h]hstruct kunit *test}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjJ ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje hMhjf ubah}(h]h ]h"]h$]h&]uh1jhjJ ubeh}(h]h ]h"]h$]h&]uh1jhje hMhjG ubj)}(h9``size_t size`` The size in bytes of the desired memory. h](j)}(h``size_t size``h]j)}(hj h]h size_t size}(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(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&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhjG 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 hMhjG 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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kcalloc (C function)c.kunit_kcallochNtauh1hhhhhhNhNubh)}(hhh](j)}(hKvoid * kunit_kcalloc (struct kunit *test, size_t n, size_t size, gfp_t gfp)h]j )}(hIvoid *kunit_kcalloc(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](j)}(hvoidh]hvoid}(hjB!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 }(hjQ!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj>!hhhjP!hM ubj)}(hjh]h*}(hj_!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>!hhhjP!hM ubj3)}(h kunit_kcalloch]j9)}(h kunit_kcalloch]h kunit_kcalloc}(hjp!hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjl!ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj>!hhhjP!hM ubj )}(h6(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](j)}(hstruct kunit *testh](j)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!ubh)}(hhh]j9)}(hkunith]hkunit}(hj!hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj!modnameN classnameNjj)}j]j)}jjr!sbc.kunit_kcallocasbuh1hhj!ubj")}(h h]h }(hj!hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj9)}(htesth]htest}(hj!hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubj)}(hsize_t nh](h)}(hhh]j9)}(hsize_th]hsize_t}(hj"hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj!ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j!c.kunit_kcallocasbuh1hhj!ubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj!ubj9)}(hjDh]hn}(hj-"hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubj)}(h size_t sizeh](h)}(hhh]j9)}(hsize_th]hsize_t}(hjH"hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjE"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjJ"modnameN classnameNjj)}j]j!c.kunit_kcallocasbuh1hhjA"ubj")}(h h]h }(hjf"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjA"ubj9)}(hsizeh]hsize}(hjt"hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjA"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubj)}(h gfp_t gfph](h)}(hhh]j9)}(hgfp_th]hgfp_t}(hj"hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj"ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj"modnameN classnameNjj)}j]j!c.kunit_kcallocasbuh1hhj"ubj")}(h h]h }(hj"hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj"ubj9)}(hgfph]hgfp}(hj"hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubeh}(h]h ]h"]h$]h&]hhuh1jhj>!hhhjP!hM ubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj:!hhhjP!hM ubah}(h]j5!ah ](j\j]eh"]h$]h&]jajb)jchuh1jhjP!hM hj7!hhubje)}(hhh]h)}(h;Just like kunit_kmalloc_array(), but zeroes the allocation.h]h;Just like kunit_kmalloc_array(), but zeroes the 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&]uh1jdhj7!hhhjP!hM ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj"jj"jjjuh1hhhhhhNhNubj)}(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** See kcalloc() 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.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!``size_t n`` number of elements. h](j)}(h ``size_t n``h]j)}(hj`#h]hsize_t n}(hjb#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.hhMhjZ#ubj)}(hhh]h)}(hnumber of elements.h]hnumber of elements.}(hjy#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhju#hMhjv#ubah}(h]h ]h"]h$]h&]uh1jhjZ#ubeh}(h]h ]h"]h$]h&]uh1jhju#hMhj#ubj)}(h9``size_t size`` The size in bytes of the desired memory. h](j)}(h``size_t size``h]j)}(hj#h]h size_t size}(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(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&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj#hMhj#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#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)}(h=See kcalloc() and kunit_kmalloc_array() for more information.h]h=See kcalloc() 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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kfree_const (C function)c.kunit_kfree_consthNtauh1hhhhhhNhNubh)}(hhh](j)}(h:void kunit_kfree_const (struct kunit *test, const void *x)h]j )}(h9void kunit_kfree_const(struct kunit *test, const void *x)h](j)}(hvoidh]hvoid}(hjR$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjN$hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj")}(h h]h }(hja$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjN$hhhj`$hMubj3)}(hkunit_kfree_consth]j9)}(hkunit_kfree_consth]hkunit_kfree_const}(hjs$hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjo$ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjN$hhhj`$hMubj )}(h#(struct kunit *test, const void *x)h](j)}(hstruct kunit *testh](j)}(hjh]hstruct}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubh)}(hhh]j9)}(hkunith]hkunit}(hj$hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj$ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj$modnameN classnameNjj)}j]j)}jju$sbc.kunit_kfree_constasbuh1hhj$ubj")}(h h]h }(hj$hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj9)}(htesth]htest}(hj$hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubj)}(h const void *xh](j)}(hjqh]hconst}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj")}(h h]h }(hj%hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubj)}(hvoidh]hvoid}(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj")}(h h]h }(hj*%hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj$ubj)}(hjh]h*}(hj8%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubj9)}(hxh]hx}(hjE%hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj$ubeh}(h]h ]h"]h$]h&]hhuh1jhjN$hhhj`$hMubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjJ$hhhj`$hMubah}(h]jE$ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj`$hMhjG$hhubje)}(hhh]h)}(h&conditionally free test managed memoryh]h&conditionally free test managed memory}(hjo%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjl%hhubah}(h]h ]h"]h$]h&]uh1jdhjG$hhhj`$hMubeh}(h]h ](jfunctioneh"]h$]h&]jjjj%jj%jjjuh1hhhhhhNhNubj)}(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 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.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&]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)}(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}(hjB&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.hhMhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kstrdup (C function)c.kunit_kstrduphNtauh1hhhhhhNhNubh)}(hhh](j)}(hEchar * kunit_kstrdup (struct kunit *test, const char *str, gfp_t gfp)h]j )}(hCchar *kunit_kstrdup(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hcharh]hchar}(hj{&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw&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 ]j.ah"]h$]h&]uh1j!hjw&hhhj&hM&ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw&hhhj&hM&ubj3)}(h kunit_kstrduph]j9)}(h kunit_kstrduph]h kunit_kstrdup}(hj&hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj&ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjw&hhhj&hM&ubj )}(h0(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hstruct kunit *testh](j)}(hjh]hstruct}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj")}(h h]h }(hj&hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubh)}(hhh]j9)}(hkunith]hkunit}(hj&hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj&ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj&modnameN classnameNjj)}j]j)}jj&sbc.kunit_kstrdupasbuh1hhj&ubj")}(h h]h }(hj'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj&ubj)}(hjh]h*}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj9)}(htesth]htest}(hj'hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubj)}(hconst char *strh](j)}(hjqh]hconst}(hj7'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3'ubj")}(h h]h }(hjD'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3'ubj)}(hcharh]hchar}(hjR'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3'ubj")}(h h]h }(hj`'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj3'ubj)}(hjh]h*}(hjn'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3'ubj9)}(hstrh]hstr}(hj{'hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj3'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubj)}(h gfp_t gfph](h)}(hhh]j9)}(hgfp_th]hgfp_t}(hj'hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj'ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj'modnameN classnameNjj)}j]j&c.kunit_kstrdupasbuh1hhj'ubj")}(h h]h }(hj'hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj'ubj9)}(hgfph]hgfp}(hj'hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubeh}(h]h ]h"]h$]h&]hhuh1jhjw&hhhj&hM&ubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjs&hhhj&hM&ubah}(h]jn&ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj&hM&hjp&hhubje)}(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&]uh1jdhjp&hhhj&hM&ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj(jj(jjjuh1hhhhhhNhNubj)}(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}(hj0(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.}(hjG(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjC(hM(hjD(ubah}(h]h ]h"]h$]h&]uh1jhj((ubeh}(h]h ]h"]h$]h&]uh1jhjC(hM(hj%(ubj)}(h=``const char *str`` The NULL-terminated string to duplicate. h](j)}(h``const char *str``h]j)}(hjg(h]hconst char *str}(hji(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje(ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM)hja(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|(hM)hj}(ubah}(h]h ]h"]h$]h&]uh1jhja(ubeh}(h]h ]h"]h$]h&]uh1jhj|(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h kunit_kstrdup_const (C function)c.kunit_kstrdup_consthNtauh1hhhhhhNhNubh)}(hhh](j)}(hQconst char * kunit_kstrdup_const (struct kunit *test, const char *str, gfp_t gfp)h]j )}(hOconst char *kunit_kstrdup_const(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hjqh]hconst}(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 ]j.ah"]h$]h&]uh1j!hj)hhhj-)hM>ubj)}(hcharh]hchar}(hj<)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj-)hM>ubj")}(h h]h }(hjJ)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)hhhj-)hM>ubj)}(hjh]h*}(hjX)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)hhhj-)hM>ubj3)}(hkunit_kstrdup_consth]j9)}(hkunit_kstrdup_consth]hkunit_kstrdup_const}(hji)hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hje)ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj)hhhj-)hM>ubj )}(h0(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hstruct kunit *testh](j)}(hjh]hstruct}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubh)}(hhh]j9)}(hkunith]hkunit}(hj)hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj)ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj)modnameN classnameNjj)}j]j)}jjk)sbc.kunit_kstrdup_constasbuh1hhj)ubj")}(h h]h }(hj)hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj)}(hjh]h*}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj9)}(htesth]htest}(hj)hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj})ubj)}(hconst char *strh](j)}(hjqh]hconst}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj")}(h h]h }(hj*hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj)}(hcharh]hchar}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj")}(h h]h }(hj *hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj)ubj)}(hjh]h*}(hj.*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj9)}(hstrh]hstr}(hj;*hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj})ubj)}(h gfp_t gfph](h)}(hhh]j9)}(hgfp_th]hgfp_t}(hjW*hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjT*ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetjY*modnameN classnameNjj)}j]j)c.kunit_kstrdup_constasbuh1hhjP*ubj")}(h h]h }(hju*hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjP*ubj9)}(hgfph]hgfp}(hj*hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjP*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj})ubeh}(h]h ]h"]h$]h&]hhuh1jhj)hhhj-)hM>ubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj)hhhj-)hM>ubah}(h]j)ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj-)hM>hj)hhubje)}(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&]uh1jdhj)hhhj-)hM>ubeh}(h]h ](jfunctioneh"]h$]h&]jjjj*jj*jjjuh1hhhhhhNhNubj)}(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)}(hj`+h]h gfp_t gfp}(hjb+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.hhMBhjZ+ubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hjy+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhju+hMBhjv+ubah}(h]h ]h"]h$]h&]uh1jhjZ+ubeh}(h]h ]h"]h$]h&]uh1jhju+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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_attach_mm (C function)c.kunit_attach_mmhNtauh1hhhhhhNhNubh)}(hhh](j)}(hint kunit_attach_mm (void)h]j )}(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 ]j.ah"]h$]h&]uh1j!hj+hhhj,hMKubj3)}(hkunit_attach_mmh]j9)}(hkunit_attach_mmh]hkunit_attach_mm}(hj,hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj,ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj+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&]hhjVuh1j jWjXhj+hhhj,hMKubah}(h]j+ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj,hMKhj+hhubje)}(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.}(hjY,hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMKhjV,hhubah}(h]h ]h"]h$]h&]uh1jdhj+hhhj,hMKubeh}(h]h ](jfunctioneh"]h$]h&]jjjjq,jjq,jjjuh1hhhhhhNhNubj)}(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)}(hj{,h]h Parameters}(hj},hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy,ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMOhju,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&]uh1jhju,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.hhKhju,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 ](jjc-typeeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype 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-hMLhju,ubh)}(h **Return**h]j)}(hj1-h]hReturn}(hj3-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.hhMQhju,ubh)}(h 0 on success, -errno on failure.h]h 0 on success, -errno on failure.}(hjG-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMRhju,ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_vm_mmap (C function)c.kunit_vm_mmaphNtauh1hhhhhhNhNubh)}(hhh](j)}(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 )}(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}(hjv-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr-hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMWubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjr-hhhj-hMWubj)}(hlongh]hlong}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjr-hhhj-hMWubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjr-hhhj-hMWubj3)}(h kunit_vm_mmaph]j9)}(h kunit_vm_mmaph]h kunit_vm_mmap}(hj-hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj-ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjr-hhhj-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](j)}(hjh]hstruct}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj")}(h h]h }(hj-hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubh)}(hhh]j9)}(hkunith]hkunit}(hj-hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj-ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetj-modnameN classnameNjj)}j]j)}jj-sbc.kunit_vm_mmapasbuh1hhj-ubj")}(h h]h }(hj .hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj-ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj-ubj9)}(htesth]htest}(hj(.hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj-ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hstruct file *fileh](j)}(hjh]hstruct}(hjA.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=.ubj")}(h h]h }(hjN.hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=.ubh)}(hhh]j9)}(hfileh]hfile}(hj_.hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj\.ubah}(h]h ]h"]h$]h&] refdomainjreftypej reftargetja.modnameN classnameNjj)}j]j .c.kunit_vm_mmapasbuh1hhj=.ubj")}(h h]h }(hj}.hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj=.ubj)}(hjh]h*}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=.ubj9)}(hfileh]hfile}(hj.hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj=.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 ]j.ah"]h$]h&]uh1j!hj.ubj)}(hlongh]hlong}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj")}(h h]h }(hj.hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubj9)}(haddrh]haddr}(hj.hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj.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 ]j.ah"]h$]h&]uh1j!hj.ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubj")}(h h]h }(hj,/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj.ubj9)}(hlenh]hlen}(hj:/hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj.ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubj)}(hunsigned long proth](j)}(hunsignedh]hunsigned}(hjS/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO/ubj")}(h h]h }(hja/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjO/ubj)}(hlongh]hlong}(hjo/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjO/ubj")}(h h]h }(hj}/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hjO/ubj9)}(hproth]hprot}(hj/hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjO/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 ]j.ah"]h$]h&]uh1j!hj/ubj)}(hlongh]hlong}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj")}(h h]h }(hj/hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubj9)}(hflagh]hflag}(hj/hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj/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 }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubj)}(hlongh]hlong}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj")}(h h]h }(hj0hhhNhNubah}(h]h ]j.ah"]h$]h&]uh1j!hj/ubj9)}(hoffseth]hoffset}(hj-0hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-ubeh}(h]h ]h"]h$]h&]hhuh1jhjr-hhhj-hMWubeh}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjn-hhhj-hMWubah}(h]ji-ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj-hMWhjk-hhubje)}(hhh]h)}(h%Allocate KUnit-tracked vm_mmap() areah]h%Allocate KUnit-tracked vm_mmap() area}(hjW0hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMWhjT0hhubah}(h]h ]h"]h$]h&]uh1jdhjk-hhhj-hMWubeh}(h]h ](jfunctioneh"]h$]h&]jjjjo0jjo0jjjuh1hhhhhhNhNubj)}(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)}(hjy0h]h Parameters}(hj{0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw0ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM[hjs0ubj)}(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.hhMXhj0ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hMXhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hMXhj0ubj)}(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&]uh1jhj0hMYhj0ubj)}(h/``unsigned long addr`` desired address, if any h](j)}(h``unsigned long addr``h]j)}(hj 1h]hunsigned long addr}(hj 1hhhNhNubah}(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.hhMZhj1ubj)}(hhh]h)}(hdesired address, if anyh]hdesired address, if any}(hj#1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hMZhj 1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMZhj0ubj)}(h1``unsigned long len`` how many bytes to allocate h](j)}(h``unsigned long len``h]j)}(hjC1h]hunsigned long len}(hjE1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA1ubah}(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}(hj\1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjX1hM[hjY1ubah}(h]h ]h"]h$]h&]uh1jhj=1ubeh}(h]h ]h"]h$]h&]uh1jhjX1hM[hj0ubj)}(h(``unsigned long prot`` mmap PROT_* bits h](j)}(h``unsigned long prot``h]j)}(hj|1h]hunsigned long prot}(hj~1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz1ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM\hjv1ubj)}(hhh]h)}(hmmap PROT_* bitsh]hmmap PROT_* bits}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hM\hj1ubah}(h]h ]h"]h$]h&]uh1jhjv1ubeh}(h]h ]h"]h$]h&]uh1jhj1hM\hj0ubj)}(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]hj0ubj)}(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 }(hj2hhhNhNubj)}(h**file**h]hfile}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh to start mapping from.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj2hM^hj2ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj2hM^hj0ubeh}(h]h ]h"]h$]h&]uh1jhjs0ubh)}(h**Description**h]j)}(hj;2h]h Description}(hj=2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj92ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM`hjs0ubh)}(h#See vm_mmap() for more information.h]h#See vm_mmap() for more information.}(hjQ2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM_hjs0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_mark_skipped (C macro)c.kunit_mark_skippedhNtauh1hhhhhhNhNubh)}(hhh](j)}(hkunit_mark_skippedh]j )}(hkunit_mark_skippedh]j3)}(hkunit_mark_skippedh]j9)}(hjz2h]hkunit_mark_skipped}(hj2hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj2ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj|2hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMlubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjx2hhhj2hMlubah}(h]js2ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj2hMlhju2hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhju2hhhj2hMlubeh}(h]h ](jmacroeh"]h$]h&]jjjj2jj2jjjuh1hhhhhhNhNubh)}(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&]uh1jhj2hMlhhhhubj)}(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}(hj3hhhNhNubah}(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.}(hj53hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj13hMnhj23ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj13hMnhj3ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hjU3h]hfmt}(hjW3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjS3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMohjO3ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hjn3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj3hMohjk3ubah}(h]h ]h"]h$]h&]uh1jhjO3ubeh}(h]h ]h"]h$]h&]uh1jhjj3hMohj3ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hj3h]h...}(hj3hhhNhNubah}(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.hhKhj3ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hKhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hKhj3ubeh}(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.}(hj4hhhNhNubah}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_skip (C macro) c.kunit_skiphNtauh1hhhhhhNhNubh)}(hhh](j)}(h kunit_skiph]j )}(h kunit_skiph]j3)}(h kunit_skiph]j9)}(hj)4h]h kunit_skip}(hj34hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj/4ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj+4hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj'4hhhjF4hMubah}(h]j"4ah ](j\j]eh"]h$]h&]jajb)jchuh1jhjF4hMhj$4hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj$4hhhjF4hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj_4jj_4jjjuh1hhhhhhNhNubh)}(h``kunit_skip (test, fmt, ...)``h]j)}(hje4h]hkunit_skip (test, fmt, ...)}(hjg4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc4ubah}(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 }(hj4hhhNhNubj)}(h**test**h]htest}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubh as skipped}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj{4ubah}(h]h ]h"]h$]h&]uh1jhj4hMhhhhubj)}(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)}(hj5h]hfmt}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(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.}(hj5hhhNhNubah}(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.hhKhj75ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hjV5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR5hKhjS5ubah}(h]h ]h"]h$]h&]uh1jhj75ubeh}(h]h ]h"]h$]h&]uh1jhjR5hKhj4ubeh}(h]h ]h"]h$]h&]uh1jhj4ubh)}(h**Description**h]j)}(hjx5h]h Description}(hjz5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjv5ubah}(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. }(hj5hhhNhNubj)}(h**fmt**h]hfmt}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubhW is given output as the test status comment, typically the reason the test was skipped.}(hj5hhhNhNubeh}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_info (C macro) c.kunit_infohNtauh1hhhhhhNhNubh)}(hhh](j)}(h kunit_infoh]j )}(h kunit_infoh]j3)}(h kunit_infoh]j9)}(hj5h]h kunit_info}(hj5hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj5ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj5hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj5hhhj5hMubah}(h]j5ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj5hMhj5hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj5hhhj5hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj6jj6jjjuh1hhhhhhNhNubh)}(h``kunit_info (test, fmt, ...)``h]j)}(hj6h]hkunit_info (test, fmt, ...)}(hj6hhhNhNubah}(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.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 }(hj.6hhhNhNubj)}(h**test**h]htest}(hj66hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.6ubh.}(hj.6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj*6ubah}(h]h ]h"]h$]h&]uh1jhjN6hMhhhhubj)}(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)}(hj[6h]h Parameters}(hj]6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjU6ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjz6h]htest}(hj|6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx6ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjt6ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhjt6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhjq6ubj)}(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&]uh1jhj6hMhjq6ubj)}(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}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hKhj7ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj7hKhjq6ubeh}(h]h ]h"]h$]h&]uh1jhjU6ubh)}(h**Description**h]j)}(hj'7h]h Description}(hj)7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjU6ubh)}(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.hhMhjU6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_warn (C macro) c.kunit_warnhNtauh1hhhhhhNhNubh)}(hhh](j)}(h kunit_warnh]j )}(h kunit_warnh]j3)}(h kunit_warnh]j9)}(hjf7h]h kunit_warn}(hjp7hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjl7ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjh7hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjd7hhhj7hMubah}(h]j_7ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj7hMhja7hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhja7hhhj7hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj7jj7jjjuh1hhhhhhNhNubh)}(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&]uh1jhj7hMhhhhubj)}(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)}(hj8h]htest}(hj 8hhhNhNubah}(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.hhMhj8ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj!8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj8hMhj7ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hjA8h]hfmt}(hjC8hhhNhNubah}(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.}(hjZ8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjV8hMhjW8ubah}(h]h ]h"]h$]h&]uh1jhj;8ubeh}(h]h ]h"]h$]h&]uh1jhjV8hMhj7ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hjz8h]h...}(hj|8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx8ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjt8ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8hKhj8ubah}(h]h ]h"]h$]h&]uh1jhjt8ubeh}(h]h ]h"]h$]h&]uh1jhj8hKhj7ubeh}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_err (C macro) c.kunit_errhNtauh1hhhhhhNhNubh)}(hhh](j)}(h kunit_errh]j )}(h kunit_errh]j3)}(h kunit_errh]j9)}(hj8h]h kunit_err}(hj8hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj8ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj8hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj8hhhj9hMubah}(h]j8ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj9hMhj8hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj8hhhj9hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj*9jj*9jjjuh1hhhhhhNhNubh)}(h``kunit_err (test, fmt, ...)``h]j)}(hj09h]hkunit_err (test, fmt, ...)}(hj29hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.9ubah}(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 }(hjJ9hhhNhNubj)}(h**test**h]htest}(hjR9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ9ubh.}(hjJ9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjF9ubah}(h]h ]h"]h$]h&]uh1jhjj9hMhhhhubj)}(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)}(hjw9h]h Parameters}(hjy9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju9ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjq9ubj)}(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.hhMhj9ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhj9ubj)}(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&]uh1jhj9hMhj9ubj)}(h``...`` variable 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.hhKhj:ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj!:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:hKhj:ubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhj:hKhj9ubeh}(h]h ]h"]h$]h&]uh1jhjq9ubh)}(h**Description**h]j)}(hjC:h]h Description}(hjE:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA:ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjq9ubh)}(hPrints an error level message.h]hPrints an error level message.}(hjY:hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjq9ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_SUCCEED (C macro)c.KUNIT_SUCCEEDhNtauh1hhhhhhNhNubh)}(hhh](j)}(h KUNIT_SUCCEEDh]j )}(h KUNIT_SUCCEEDh]j3)}(h KUNIT_SUCCEEDh]j9)}(hj:h]h KUNIT_SUCCEED}(hj:hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj:ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj:hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj:hhhj:hMubah}(h]j{:ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj:hMhj}:hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj}:hhhj:hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj:jj:jjjuh1hhhhhhNhNubh)}(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:hMhhhhubj)}(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)}(hjM;h]h Description}(hjO;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK;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.}(hjc;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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_FAIL (C macro) c.KUNIT_FAILhNtauh1hhhhhhNhNubh)}(hhh](j)}(h KUNIT_FAILh]j )}(h KUNIT_FAILh]j3)}(h KUNIT_FAILh]j9)}(hj;h]h KUNIT_FAIL}(hj;hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj;ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj;hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj;hhhj;hMubah}(h]j;ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj;hMhj;hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj;hhhj;hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj;jj;jjjuh1hhhhhhNhNubh)}(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;hMhhhhubj)}(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.}(hj5<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1<hMhj2<ubah}(h]h ]h"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]uh1jhj1<hMhj<ubj)}(hK``fmt`` an informational message to be printed when the assertion is made. h](j)}(h``fmt``h]j)}(hjU<h]hfmt}(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)}(hBan informational message to be printed when the assertion is made.h]hBan informational message to be printed when the assertion is made.}(hjn<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjj<hMhjk<ubah}(h]h ]h"]h$]h&]uh1jhjO<ubeh}(h]h ]h"]h$]h&]uh1jhjj<hMhj<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.hhMhj<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&]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)}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_TRUE (C macro)c.KUNIT_EXPECT_TRUEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_TRUEh]j )}(hKUNIT_EXPECT_TRUEh]j3)}(hKUNIT_EXPECT_TRUEh]j9)}(hj=h]hKUNIT_EXPECT_TRUE}(hj=hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj=ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj =hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj=hhhj%=hMubah}(h]j=ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj%=hMhj=hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj=hhhj%=hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj>=jj>=jjjuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_TRUE (test, condition)``h]j)}(hjD=h]h#KUNIT_EXPECT_TRUE (test, condition)}(hjF=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB=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.}(hj^=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjZ=ubah}(h]h ]h"]h$]h&]uh1jhjl=hMhhhhubj)}(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)}(hjy=h]h Parameters}(hj{=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjs=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&]uh1jhjs=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.hhMhjs=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.hhMhjs=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_FALSE (C macro)c.KUNIT_EXPECT_FALSEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_FALSEh]j )}(hKUNIT_EXPECT_FALSEh]j3)}(hKUNIT_EXPECT_FALSEh]j9)}(hjp>h]hKUNIT_EXPECT_FALSE}(hjz>hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjv>ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjr>hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjn>hhhj>hMubah}(h]ji>ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj>hMhjk>hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjk>hhhj>hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj>jj>jjjuh1hhhhhhNhNubh)}(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>hMhhhhubj)}(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)}(hj9?h]h condition}(hj;?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7?ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj3?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.}(hjR?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjO?ubah}(h]h ]h"]h$]h&]uh1jhj3?ubeh}(h]h ]h"]h$]h&]uh1jhjN?hMhj>ubeh}(h]h ]h"]h$]h&]uh1jhj>ubh)}(h**Description**h]j)}(hju?h]h Description}(hjw?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs?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 }(hj?hhhNhNubj)}(h **condition**h]h condition}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubhB evaluates to false. 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.hhMhj>ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_EQ (C macro)c.KUNIT_EXPECT_EQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_EQh]j )}(hKUNIT_EXPECT_EQh]j3)}(hKUNIT_EXPECT_EQh]j9)}(hj?h]hKUNIT_EXPECT_EQ}(hj?hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj?ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj?hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj?hhhj?hMubah}(h]j?ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj?hMhj?hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj?hhhj?hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj?jj?jjjuh1hhhhhhNhNubh)}(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}(hj6@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&]uh1jhjN@hMhhhhubj)}(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)}(hj[@h]h Parameters}(hj]@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjY@ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjU@ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjz@h]htest}(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)}(hThe test context object.h]hThe test context object.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jhjt@ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhjq@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@hMhjq@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.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjq@ubeh}(h]h ]h"]h$]h&]uh1jhjU@ubh)}(h**Description**h]j)}(hj'Ah]h Description}(hj)AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Aubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjU@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}(hjEAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=Aubh and }(hj=AhhhNhNubj)}(h **right**h]hright}(hjWAhhhNhNubah}(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}(hjiAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=Aubh, (}(hj=AhhhNhNubj)}(h**left**h]hleft}(hj{AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=Aubh) == (}(hj=AhhhNhNubj)}(h **right**h]hright}(hjAhhhNhNubah}(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.hhMhjU@ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_PTR_EQ (C macro)c.KUNIT_EXPECT_PTR_EQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_PTR_EQh]j )}(hKUNIT_EXPECT_PTR_EQh]j3)}(hKUNIT_EXPECT_PTR_EQh]j9)}(hjAh]hKUNIT_EXPECT_PTR_EQ}(hjAhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjAubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjAhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjAhhhjAhMubah}(h]jAah ](j\j]eh"]h$]h&]jajb)jchuh1jhjAhMhjAhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjAhhhjAhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjAjjAjjjuh1hhhhhhNhNubh)}(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}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubh and }(hjBhhhNhNubj)}(h **right**h]hright}(hj0BhhhNhNubah}(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.hhMhjBubah}(h]h ]h"]h$]h&]uh1jhjHBhMhhhhubj)}(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)}(hjUBh]h Parameters}(hjWBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSBubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjOBubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjtBh]htest}(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.hhMhjnBubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhMhjBubah}(h]h ]h"]h$]h&]uh1jhjnBubeh}(h]h ]h"]h$]h&]uh1jhjBhMhjkBubj)}(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&]uh1jhjBhMhjkBubj)}(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&]uh1jhjBhMhjkBubeh}(h]h ]h"]h$]h&]uh1jhjOBubh)}(h**Description**h]j)}(hj!Ch]h Description}(hj#ChhhNhNubah}(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.hhMhjOBubh)}(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 }(hj7ChhhNhNubj)}(h**left**h]hleft}(hj?ChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Cubh and }(hj7ChhhNhNubj)}(h **right**h]hright}(hjQChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7CubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj7ChhhNhNubj)}(h**test**h]htest}(hjcChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Cubh, (}(hj7ChhhNhNubj)}(h**left**h]hleft}(hjuChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Cubh) == (}(hj7ChhhNhNubj)}(h **right**h]hright}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7Cubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj7ChhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjOBubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NE (C macro)c.KUNIT_EXPECT_NEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_NEh]j )}(hKUNIT_EXPECT_NEh]j3)}(hKUNIT_EXPECT_NEh]j9)}(hjCh]hKUNIT_EXPECT_NE}(hjChhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjCubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjChhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM(ubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjChhhjChM(ubah}(h]jCah ](j\j]eh"]h$]h&]jajb)jchuh1jhjChM(hjChhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjChhhjChM(ubeh}(h]h ](jmacroeh"]h$]h&]jjjjCjjCjjjuh1hhhhhhNhNubh)}(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 }(hjDhhhNhNubj)}(h**left**h]hleft}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubh and }(hjDhhhNhNubj)}(h **right**h]hright}(hj*DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubh are not equal.}(hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM(hj Dubah}(h]h ]h"]h$]h&]uh1jhjBDhM(hhhhubj)}(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)}(hjODh]h Parameters}(hjQDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMDubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM,hjIDubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjnDh]htest}(hjpDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlDubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM)hjhDubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhM)hjDubah}(h]h ]h"]h$]h&]uh1jhjhDubeh}(h]h ]h"]h$]h&]uh1jhjDhM)hjeDubj)}(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*hjeDubj)}(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+hjeDubeh}(h]h ]h"]h$]h&]uh1jhjIDubh)}(h**Description**h]j)}(hjEh]h Description}(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-hjIDubh)}(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 }(hj1EhhhNhNubj)}(h**left**h]hleft}(hj9EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Eubh and }(hj1EhhhNhNubj)}(h **right**h]hright}(hjKEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1EubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj1EhhhNhNubj)}(h**test**h]htest}(hj]EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Eubh, (}(hj1EhhhNhNubj)}(h**left**h]hleft}(hjoEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Eubh) != (}(hj1EhhhNhNubj)}(h **right**h]hright}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1Eubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj1EhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM,hjIDubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_PTR_NE (C macro)c.KUNIT_EXPECT_PTR_NEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_PTR_NEh]j )}(hKUNIT_EXPECT_PTR_NEh]j3)}(hKUNIT_EXPECT_PTR_NEh]j9)}(hjEh]hKUNIT_EXPECT_PTR_NE}(hjEhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjEubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjEhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM=ubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjEhhhjEhM=ubah}(h]jEah ](j\j]eh"]h$]h&]jajb)jchuh1jhjEhM=hjEhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjEhhhjEhM=ubeh}(h]h ](jmacroeh"]h$]h&]jjjjEjjEjjjuh1hhhhhhNhNubh)}(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)}(hhjbFubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}FhM>hj~Fubah}(h]h ]h"]h$]h&]uh1jhjbFubeh}(h]h ]h"]h$]h&]uh1jhj}FhM>hj_Fubj)}(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?hj_Fubj)}(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@hj_Fubeh}(h]h ]h"]h$]h&]uh1jhjCFubh)}(h**Description**h]j)}(hjGh]h Description}(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.hhMBhjCFubh)}(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 }(hj+GhhhNhNubj)}(h**left**h]hleft}(hj3GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Gubh and }(hj+GhhhNhNubj)}(h **right**h]hright}(hjEGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+GubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj+GhhhNhNubj)}(h**test**h]htest}(hjWGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Gubh, (}(hj+GhhhNhNubj)}(h**left**h]hleft}(hjiGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Gubh) != (}(hj+GhhhNhNubj)}(h **right**h]hright}(hj{GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Gubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj+GhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMAhjCFubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_LT (C macro)c.KUNIT_EXPECT_LThNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_LTh]j )}(hKUNIT_EXPECT_LTh]j3)}(hKUNIT_EXPECT_LTh]j9)}(hjGh]hKUNIT_EXPECT_LT}(hjGhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjGubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjGhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMRubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjGhhhjGhMRubah}(h]jGah ](j\j]eh"]h$]h&]jajb)jchuh1jhjGhMRhjGhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjGhhhjGhMRubeh}(h]h ](jmacroeh"]h$]h&]jjjjGjjGjjjuh1hhhhhhNhNubh)}(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.hhMThhhhubj)}(h5An expectation that **left** is less than **right**. h]h)}(h4An expectation that **left** is less than **right**.h](hAn expectation that }(hjHhhhNhNubj)}(h**left**h]hleft}(hj HhhhNhNubah}(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.hhMRhjHubah}(h]h ]h"]h$]h&]uh1jhj6HhMRhhhhubj)}(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)}(hjCHh]h Parameters}(hjEHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAHubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMVhj=Hubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjbHh]htest}(hjdHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`Hubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMShj\Hubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj{HhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwHhMShjxHubah}(h]h ]h"]h$]h&]uh1jhj\Hubeh}(h]h ]h"]h$]h&]uh1jhjwHhMShjYHubj)}(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.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&]uh1jhjHhMThjYHubj)}(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.hhMUhjHubj)}(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&]uh1hhjHhMUhjHubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjHhMUhjYHubeh}(h]h ]h"]h$]h&]uh1jhj=Hubh)}(h**Description**h]j)}(hjIh]h Description}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Iubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMWhj=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 }(hj%IhhhNhNubj)}(h**left**h]hleft}(hj-IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Iubh* evaluates to is less than the value that }(hj%IhhhNhNubj)}(h **right**h]hright}(hj?IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%IubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj%IhhhNhNubj)}(h**test**h]htest}(hjQIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Iubh, (}(hj%IhhhNhNubj)}(h**left**h]hleft}(hjcIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Iubh) < (}(hj%IhhhNhNubj)}(h **right**h]hright}(hjuIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Iubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj%IhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMVhj=Hubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_LE (C macro)c.KUNIT_EXPECT_LEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_LEh]j )}(hKUNIT_EXPECT_LEh]j3)}(hKUNIT_EXPECT_LEh]j9)}(hjIh]hKUNIT_EXPECT_LE}(hjIhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjIubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjIhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMgubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjIhhhjIhMgubah}(h]jIah ](j\j]eh"]h$]h&]jajb)jchuh1jhjIhMghjIhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjIhhhjIhMgubeh}(h]h ](jmacroeh"]h$]h&]jjjjIjjIjjjuh1hhhhhhNhNubh)}(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.hhMihhhhubj)}(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}(hjJhhhNhNubah}(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.hhMghjIubah}(h]h ]h"]h$]h&]uh1jhj0JhMghhhhubj)}(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.hhMkhj7Jubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj\Jh]htest}(hj^JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZJubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhjVJubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjuJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqJhMhhjrJubah}(h]h ]h"]h$]h&]uh1jhjVJubeh}(h]h ]h"]h$]h&]uh1jhjqJhMhhjSJubj)}(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.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&]uh1jhjJhMihjSJubj)}(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.hhMjhjJubj)}(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&]uh1hhjJhMjhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhMjhjSJubeh}(h]h ]h"]h$]h&]uh1jhj7Jubh)}(h**Description**h]j)}(hj Kh]h Description}(hj KhhhNhNubah}(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.hhMlhj7Jubh)}(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 }(hjKhhhNhNubj)}(h**left**h]hleft}(hj'KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh6 evaluates to is less than or equal to the value that }(hjKhhhNhNubj)}(h **right**h]hright}(hj9KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubhD evaluates to. Semantically this is equivalent to KUNIT_EXPECT_TRUE(}(hjKhhhNhNubj)}(h**test**h]htest}(hjKKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh, (}(hjKhhhNhNubj)}(h**left**h]hleft}(hj]KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh) <= (}(hjKhhhNhNubj)}(h **right**h]hright}(hjoKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMkhj7Jubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_GT (C macro)c.KUNIT_EXPECT_GThNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_GTh]j )}(hKUNIT_EXPECT_GTh]j3)}(hKUNIT_EXPECT_GTh]j9)}(hjKh]hKUNIT_EXPECT_GT}(hjKhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjKubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjKhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM|ubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjKhhhjKhM|ubah}(h]jKah ](j\j]eh"]h$]h&]jajb)jchuh1jhjKhM|hjKhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjKhhhjKhM|ubeh}(h]h ](jmacroeh"]h$]h&]jjjjKjjKjjjuh1hhhhhhNhNubh)}(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}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh is greater than }(hjKhhhNhNubj)}(h **right**h]hright}(hjLhhhNhNubah}(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&]uh1jhj*LhM|hhhhubj)}(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)}(hj7Lh]h Parameters}(hj9LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5Lubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj1Lubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjVLh]htest}(hjXLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTLubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM}hjPLubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjoLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkLhM}hjlLubah}(h]h ]h"]h$]h&]uh1jhjPLubeh}(h]h ]h"]h$]h&]uh1jhjkLhM}hjMLubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjLh]hleft}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM~hjLubj)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhM~hjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhM~hjMLubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjLh]hright}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjLubj)}(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.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjLhMhjLubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjLhMhjMLubeh}(h]h ]h"]h$]h&]uh1jhj1Lubh)}(h**Description**h]j)}(hjMh]h Description}(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.hhMhj1Lubh)}(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 }(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}(hj3MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjMhhhNhNubj)}(h**test**h]htest}(hjEMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh, (}(hjMhhhNhNubj)}(h**left**h]hleft}(hjWMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubh) > (}(hjMhhhNhNubj)}(h **right**h]hright}(hjiMhhhNhNubah}(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.hhMhj1Lubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_GE (C macro)c.KUNIT_EXPECT_GEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_GEh]j )}(hKUNIT_EXPECT_GEh]j3)}(hKUNIT_EXPECT_GEh]j9)}(hjMh]hKUNIT_EXPECT_GE}(hjMhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjMubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjMhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjMhhhjMhMubah}(h]jMah ](j\j]eh"]h$]h&]jajb)jchuh1jhjMhMhjMhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjMhhhjMhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjMjjMjjjuh1hhhhhhNhNubh)}(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)}(hj1Nh]h Parameters}(hj3NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/Nubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj+Nubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjPNh]htest}(hjRNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNNubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjJNubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjiNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeNhMhjfNubah}(h]h ]h"]h$]h&]uh1jhjJNubeh}(h]h ]h"]h$]h&]uh1jhjeNhMhjGNubj)}(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.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&]uh1jhjNhMhjGNubj)}(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&]uh1jhjNhMhjGNubeh}(h]h ]h"]h$]h&]uh1jhj+Nubh)}(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.hhMhj+Nubh)}(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 }(hjOhhhNhNubj)}(h**left**h]hleft}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh- evaluates to is greater than the value that }(hjOhhhNhNubj)}(h **right**h]hright}(hj-OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjOhhhNhNubj)}(h**test**h]htest}(hj?OhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh, (}(hjOhhhNhNubj)}(h**left**h]hleft}(hjQOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh) >= (}(hjOhhhNhNubj)}(h **right**h]hright}(hjcOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj+Nubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_STREQ (C macro)c.KUNIT_EXPECT_STREQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_STREQh]j )}(hKUNIT_EXPECT_STREQh]j3)}(hKUNIT_EXPECT_STREQh]j9)}(hjOh]hKUNIT_EXPECT_STREQ}(hjOhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjOubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjOhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjOhhhjOhMubah}(h]jOah ](j\j]eh"]h$]h&]jajb)jchuh1jhjOhMhjOhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjOhhhjOhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjOjjOjjjuh1hhhhhhNhNubh)}(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}(hjPhhhNhNubah}(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&]uh1jhjPhMhhhhubj)}(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)}(hj+Ph]h Parameters}(hj-PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)Pubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj%Pubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjJPh]htest}(hjLPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHPubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjDPubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjcPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_PhMhj`Pubah}(h]h ]h"]h$]h&]uh1jhjDPubeh}(h]h ]h"]h$]h&]uh1jhj_PhMhjAPubj)}(hM``left`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h``left``h]j)}(hjPh]hleft}(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.hhMhj}Pubj)}(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&]uh1jhj}Pubeh}(h]h ]h"]h$]h&]uh1jhjPhMhjAPubj)}(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&]uh1jhjPhMhjAPubeh}(h]h ]h"]h$]h&]uh1jhj%Pubh)}(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.hhMhj%Pubh)}(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 }(hj QhhhNhNubj)}(h**left**h]hleft}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Qubh and }(hj QhhhNhNubj)}(h **right**h]hright}(hj'QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj QubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj QhhhNhNubj)}(h**test**h]htest}(hj9QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Qubh , !strcmp((}(hj QhhhNhNubj)}(h**left**h]hleft}(hjKQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Qubh), (}(hj QhhhNhNubj)}(h **right**h]hright}(hj]QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Qubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hj QhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj%Pubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_STRNEQ (C macro)c.KUNIT_EXPECT_STRNEQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_STRNEQh]j )}(hKUNIT_EXPECT_STRNEQh]j3)}(hKUNIT_EXPECT_STRNEQh]j9)}(hjQh]hKUNIT_EXPECT_STRNEQ}(hjQhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjQubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjQhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjQhhhjQhMubah}(h]jQah ](j\j]eh"]h$]h&]jajb)jchuh1jhjQhMhjQhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjQhhhjQhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjQjjQjjjuh1hhhhhhNhNubh)}(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}(hjRhhhNhNubah}(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&]uh1jhjRhMhhhhubj)}(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)}(hj%Rh]h Parameters}(hj'RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#Rubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjRubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjDRh]htest}(hjFRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBRubah}(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.}(hj]RhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjYRhMhjZRubah}(h]h ]h"]h$]h&]uh1jhj>Rubeh}(h]h ]h"]h$]h&]uh1jhjYRhMhj;Rubj)}(hM``left`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h``left``h]j)}(hj}Rh]hleft}(hjRhhhNhNubah}(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.hhMhjwRubj)}(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&]uh1jhjwRubeh}(h]h ]h"]h$]h&]uh1jhjRhMhj;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&]uh1jhjRubh)}(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.hhMhjRubh)}(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 }(hjShhhNhNubj)}(h**left**h]hleft}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh and }(hjShhhNhNubj)}(h **right**h]hright}(hj!ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjShhhNhNubj)}(h**test**h]htest}(hj3ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh , strcmp((}(hjShhhNhNubj)}(h**left**h]hleft}(hjEShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh), (}(hjShhhNhNubj)}(h **right**h]hright}(hjWShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjRubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_MEMEQ (C macro)c.KUNIT_EXPECT_MEMEQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_MEMEQh]j )}(hKUNIT_EXPECT_MEMEQh]j3)}(hKUNIT_EXPECT_MEMEQh]j9)}(hjSh]hKUNIT_EXPECT_MEMEQ}(hjShhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjSubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjShhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjShhhjShMubah}(h]jSah ](j\j]eh"]h$]h&]jajb)jchuh1jhjShMhjShhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjShhhjShMubeh}(h]h ](jmacroeh"]h$]h&]jjjjSjjSjjjuh1hhhhhhNhNubh)}(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}(hj ThhhNhNubah}(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&]uh1jhj$ThMhhhhubj)}(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)}(hj1Th]h Parameters}(hj3ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/Tubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj+Tubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjPTh]htest}(hjRThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNTubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjJTubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjiThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeThMhjfTubah}(h]h ]h"]h$]h&]uh1jhjJTubeh}(h]h ]h"]h$]h&]uh1jhjeThMhjGTubj)}(hG``left`` An arbitrary expression that evaluates to the specified size. h](j)}(h``left``h]j)}(hjTh]hleft}(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&]uh1jhjThMhjGTubj)}(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&]uh1jhjThMhjGTubj)}(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&]uh1hhjUhMhjUubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjUhMhjGTubeh}(h]h ]h"]h$]h&]uh1jhj+Tubh)}(h**Description**h]j)}(hj6Uh]h Description}(hj8UhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Uubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj+Tubh)}(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 }(hjLUhhhNhNubj)}(h**left**h]hleft}(hjTUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLUubh and }(hjLUhhhNhNubj)}(h **right**h]hright}(hjfUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLUubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjLUhhhNhNubj)}(h**test**h]htest}(hjxUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLUubh , !memcmp((}(hjLUhhhNhNubj)}(h**left**h]hleft}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLUubh), (}(hjLUhhhNhNubj)}(h **right**h]hright}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLUubh), (}hjLUsbj)}(h**size**h]hsize}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLUubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hjLUhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj+Tubh)}(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.hhMhj+Tubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_MEMNEQ (C macro)c.KUNIT_EXPECT_MEMNEQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_MEMNEQh]j )}(hKUNIT_EXPECT_MEMNEQh]j3)}(hKUNIT_EXPECT_MEMNEQh]j9)}(hjUh]hKUNIT_EXPECT_MEMNEQ}(hjUhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjUubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjUhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjUhhhj VhMubah}(h]jUah ](j\j]eh"]h$]h&]jajb)jchuh1jhj VhMhjUhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjUhhhj VhMubeh}(h]h ](jmacroeh"]h$]h&]jjjj&Vjj&Vjjjuh1hhhhhhNhNubh)}(h1``KUNIT_EXPECT_MEMNEQ (test, left, right, size)``h]j)}(hj,Vh]h-KUNIT_EXPECT_MEMNEQ (test, left, right, size)}(hj.VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*Vubah}(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 }(hjFVhhhNhNubj)}(h**size**h]hsize}(hjNVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFVubh bytes of }(hjFVhhhNhNubj)}(h**left**h]hleft}(hj`VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFVubh and }(hjFVhhhNhNubj)}(h **right**h]hright}(hjrVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFVubh are not equal.}(hjFVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjBVubah}(h]h ]h"]h$]h&]uh1jhjVhMhhhhubj)}(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.hhMhjVubj)}(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.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjWubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjWhMhjVubj)}(hH``right`` An arbitrary expression that evaluates to the specified size. h](j)}(h ``right``h]j)}(hj(Wh]hright}(hj*WhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&Wubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj"Wubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjAWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=WhMhj>Wubah}(h]h ]h"]h$]h&]uh1jhj"Wubeh}(h]h ]h"]h$]h&]uh1jhj=WhMhjVubj)}(h#``size`` Number of bytes compared. h](j)}(h``size``h]j)}(hjaWh]hsize}(hjcWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_Wubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj[Wubj)}(hhh]h)}(hNumber of bytes compared.h]hNumber of bytes compared.}(hjzWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvWhMhjwWubah}(h]h ]h"]h$]h&]uh1jhj[Wubeh}(h]h ]h"]h$]h&]uh1jhjvWhMhjVubeh}(h]h ]h"]h$]h&]uh1jhjVubh)}(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.hhMhjVubh)}(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}(hjXhhhNhNubah}(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.hhMhjVubh)}(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.}(hj-XhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NULL (C macro)c.KUNIT_EXPECT_NULLhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_NULLh]j )}(hKUNIT_EXPECT_NULLh]j3)}(hKUNIT_EXPECT_NULLh]j9)}(hjVXh]hKUNIT_EXPECT_NULL}(hj`XhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj\Xubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjXXhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjTXhhhjsXhMubah}(h]jOXah ](j\j]eh"]h$]h&]jajb)jchuh1jhjsXhMhjQXhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjQXhhhjsXhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjXjjXjjjuh1hhhhhhNhNubh)}(h!``KUNIT_EXPECT_NULL (test, ptr)``h]j)}(hjXh]hKUNIT_EXPECT_NULL (test, ptr)}(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.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&]uh1jhjXhMhhhhubj)}(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.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj YhMhjYubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhj YhMhjXubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hj1Yh]hptr}(hj3YhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/Yubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj+Yubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hjJYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFYhMhjGYubah}(h]h ]h"]h$]h&]uh1jhj+Yubeh}(h]h ]h"]h$]h&]uh1jhjFYhMhjXubeh}(h]h ]h"]h$]h&]uh1jhjXubh)}(h**Description**h]j)}(hjlYh]h Description}(hjnYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjYubah}(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 }(hjYhhhNhNubj)}(h**ptr**h]hptr}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubhN evaluates to is null. This is semantically equivalent to KUNIT_EXPECT_PTR_EQ(}(hjYhhhNhNubj)}(h**test**h]htest}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubh;, ptr, NULL). See KUNIT_EXPECT_TRUE() for more information.}(hjYhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NOT_NULL (C macro)c.KUNIT_EXPECT_NOT_NULLhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_NOT_NULLh]j )}(hKUNIT_EXPECT_NOT_NULLh]j3)}(hKUNIT_EXPECT_NOT_NULLh]j9)}(hjYh]hKUNIT_EXPECT_NOT_NULL}(hjYhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjYubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjYhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjYhhhjYhMubah}(h]jYah ](j\j]eh"]h$]h&]jajb)jchuh1jhjYhMhjYhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjYhhhjYhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjZjjZjjjuh1hhhhhhNhNubh)}(h%``KUNIT_EXPECT_NOT_NULL (test, ptr)``h]j)}(hj Zh]h!KUNIT_EXPECT_NOT_NULL (test, ptr)}(hj ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Zubah}(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 }(hj%ZhhhNhNubj)}(h**ptr**h]hptr}(hj-ZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%Zubh is not null.}(hj%ZhhhNhNubeh}(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&]uh1jhjEZhMhhhhubj)}(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)}(hjRZh]h Parameters}(hjTZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPZubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjLZubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjqZh]htest}(hjsZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoZubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjkZubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhjZubah}(h]h ]h"]h$]h&]uh1jhjkZubeh}(h]h ]h"]h$]h&]uh1jhjZhMhjhZubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hjZh]hptr}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjZubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjZhMhjZubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1jhjZhMhjhZubeh}(h]h ]h"]h$]h&]uh1jhjLZubh)}(h**Description**h]j)}(hjZh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjLZubh)}(hSets 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(Sets an expectation that the value that }(hjZhhhNhNubj)}(h**ptr**h]hptr}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubhR evaluates to is not null. This is semantically equivalent to KUNIT_EXPECT_PTR_NE(}(hjZhhhNhNubj)}(h**test**h]htest}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubh;, ptr, NULL). See KUNIT_EXPECT_TRUE() for more information.}(hjZhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjLZubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&KUNIT_EXPECT_NOT_ERR_OR_NULL (C macro)c.KUNIT_EXPECT_NOT_ERR_OR_NULLhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_EXPECT_NOT_ERR_OR_NULLh]j )}(hKUNIT_EXPECT_NOT_ERR_OR_NULLh]j3)}(hKUNIT_EXPECT_NOT_ERR_OR_NULLh]j9)}(hjH[h]hKUNIT_EXPECT_NOT_ERR_OR_NULL}(hjR[hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjN[ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjJ[hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM0ubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjF[hhhje[hM0ubah}(h]jA[ah ](j\j]eh"]h$]h&]jajb)jchuh1jhje[hM0hjC[hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjC[hhhje[hM0ubeh}(h]h ](jmacroeh"]h$]h&]jjjj~[jj~[jjjuh1hhhhhhNhNubh)}(h,``KUNIT_EXPECT_NOT_ERR_OR_NULL (test, ptr)``h]j)}(hj[h]h(KUNIT_EXPECT_NOT_ERR_OR_NULL (test, ptr)}(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.hhM2hhhhubj)}(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.hhM0hj[ubah}(h]h ]h"]h$]h&]uh1jhj[hM0hhhhubj)}(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.hhM4hj[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.hhM1hj[ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[hM1hj\ubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj[hM1hj[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.hhM2hj\ubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hj<\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8\hM2hj9\ubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj8\hM2hj[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.hhM4hj[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 }(hjt\hhhNhNubj)}(h**ptr**h]hptr}(hj|\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt\ubhu evaluates to is not null and not an errno stored in a pointer. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjt\hhhNhNubj)}(h**test**h]htest}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt\ubh, !IS_ERR_OR_NULL(}(hjt\hhhNhNubj)}(h**ptr**h]hptr}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjt\ubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjt\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM3hj[ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_FAIL_AND_ABORT (C macro)c.KUNIT_FAIL_AND_ABORThNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_FAIL_AND_ABORTh]j )}(hKUNIT_FAIL_AND_ABORTh]j3)}(hKUNIT_FAIL_AND_ABORTh]j9)}(hj\h]hKUNIT_FAIL_AND_ABORT}(hj\hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj\ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj\hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMDubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj\hhhj\hMDubah}(h]j\ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj\hMDhj\hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj\hhhj\hMDubeh}(h]h ](jmacroeh"]h$]h&]jjjj ]jj ]jjjuh1hhhhhhNhNubh)}(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.hhMFhhhhubj)}(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.hhMDhj%]ubah}(h]h ]h"]h$]h&]uh1jhj7]hMDhhhhubj)}(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)}(hjD]h]h Parameters}(hjF]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB]ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMHhj>]ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjc]h]htest}(hje]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja]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)}(hThe test context object.h]hThe test context object.}(hj|]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjx]hMEhjy]ubah}(h]h ]h"]h$]h&]uh1jhj]]ubeh}(h]h ]h"]h$]h&]uh1jhjx]hMEhjZ]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.hhMFhj]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]hMFhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMFhjZ]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.hhMGhj]ubj)}(hhh]h)}(hstring format arguments.h]hstring format arguments.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hMGhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hMGhjZ]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.hhMIhj>]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.hhMHhj>]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_TRUE (C macro)c.KUNIT_ASSERT_TRUEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_TRUEh]j )}(hKUNIT_ASSERT_TRUEh]j3)}(hKUNIT_ASSERT_TRUEh]j9)}(hjO^h]hKUNIT_ASSERT_TRUE}(hjY^hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjU^ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjQ^hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMRubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjM^hhhjl^hMRubah}(h]jH^ah ](j\j]eh"]h$]h&]jajb)jchuh1jhjl^hMRhjJ^hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjJ^hhhjl^hMRubeh}(h]h ](jmacroeh"]h$]h&]jjjj^jj^jjjuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_TRUE (test, condition)``h]j)}(hj^h]h#KUNIT_ASSERT_TRUE (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.hhMThhhhubj)}(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.hhMRhj^ubah}(h]h ]h"]h$]h&]uh1jhj^hMRhhhhubj)}(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.hhMVhj^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.hhMShj^ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj _hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMShj_ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj_hMShj^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.hhMUhj$_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.}(hjC_hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMThj@_ubah}(h]h ]h"]h$]h&]uh1jhj$_ubeh}(h]h ]h"]h$]h&]uh1jhj?_hMUhj^ubeh}(h]h ]h"]h$]h&]uh1jhj^ubh)}(h**Description**h]j)}(hjf_h]h Description}(hjh_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd_ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMWhj^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 }(hj|_hhhNhNubj)}(h`KUNIT_ASSERT_*`h]hKUNIT_ASSERT_*}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|_ubh" will cause the test case to fail }(hj|_hhhNhNubj)}(h*and immediately abort*h]hand immediately abort}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|_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 }(hj|_hhhNhNubj)}(h*assertion failure*h]hassertion 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.hhMVhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_FALSE (C macro)c.KUNIT_ASSERT_FALSEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_FALSEh]j )}(hKUNIT_ASSERT_FALSEh]j3)}(hKUNIT_ASSERT_FALSEh]j9)}(hj_h]hKUNIT_ASSERT_FALSE}(hj_hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj_ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj_hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMgubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj_hhhj_hMgubah}(h]j_ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj_hMghj_hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj_hhhj_hMgubeh}(h]h ](jmacroeh"]h$]h&]jjjj`jj`jjjuh1hhhhhhNhNubh)}(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.hhMihhhhubj)}(h/Sets an assertion that **condition** is false. h]h)}(h.Sets an assertion that **condition** is false.h](hSets an assertion that }(hj1`hhhNhNubj)}(h **condition**h]h condition}(hj9`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1`ubh is false.}(hj1`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMghj-`ubah}(h]h ]h"]h$]h&]uh1jhjQ`hMghhhhubj)}(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)}(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.hhMkhjX`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.hhMhhjw`ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMhhj`ubah}(h]h ]h"]h$]h&]uh1jhjw`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMhhjt`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.hhMihj`ubj)}(hhh]h)}(h an arbitrary boolean expression.h]h an arbitrary boolean expression.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMihj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMihjt`ubeh}(h]h ]h"]h$]h&]uh1jhjX`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.hhMkhjX`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 }(hjahhhNhNubj)}(h **condition**h]h condition}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh 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.}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMjhjX`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_EQ (C macro)c.KUNIT_ASSERT_EQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_EQh]j )}(hKUNIT_ASSERT_EQh]j3)}(hKUNIT_ASSERT_EQh]j9)}(hjBah]hKUNIT_ASSERT_EQ}(hjLahhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjHaubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjDahhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMzubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj@ahhhj_ahMzubah}(h]j;aah ](j\j]eh"]h$]h&]jajb)jchuh1jhj_ahMzhj=ahhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj=ahhhj_ahMzubeh}(h]h ](jmacroeh"]h$]h&]jjjjxajjxajjjuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_EQ (test, left, right)``h]j)}(hj~ah]h#KUNIT_ASSERT_EQ (test, left, right)}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|aubah}(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.hhMzhjaubah}(h]h ]h"]h$]h&]uh1jhjahMzhhhhubj)}(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.hhM{hjaubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj bhM{hj bubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1jhj bhM{hjaubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hj/bh]hleft}(hj1bhhhNhNubah}(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.hhM|hj)bubj)}(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.}(hjHbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDbhM|hjEbubah}(h]h ]h"]h$]h&]uh1jhj)bubeh}(h]h ]h"]h$]h&]uh1jhjDbhM|hjaubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjhbh]hright}(hjjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfbubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM}hjbbubj)}(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.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}bhM}hj~bubah}(h]h ]h"]h$]h&]uh1jhjbbubeh}(h]h ]h"]h$]h&]uh1jhj}bhM}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.hhMhjaubh)}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_PTR_EQ (C macro)c.KUNIT_ASSERT_PTR_EQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_PTR_EQh]j )}(hKUNIT_ASSERT_PTR_EQh]j3)}(hKUNIT_ASSERT_PTR_EQh]j9)}(hjch]hKUNIT_ASSERT_PTR_EQ}(hjchhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj cubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjchhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjchhhj#chMubah}(h]jbah ](j\j]eh"]h$]h&]jajb)jchuh1jhj#chMhjchhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjchhhj#chMubeh}(h]h ](jmacroeh"]h$]h&]jjjj``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.}(hj dhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhMhj dubah}(h]h ]h"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjcubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. h](j)}(h ``right``h]j)}(hj,dh]hright}(hj.dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*dubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj&dubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjEdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAdhMhjBdubah}(h]h ]h"]h$]h&]uh1jhj&dubeh}(h]h ]h"]h$]h&]uh1jhjAdhMhjcubeh}(h]h ]h"]h$]h&]uh1jhjcubh)}(h**Description**h]j)}(hjgdh]h Description}(hjidhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjedubah}(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 }(hj}dhhhNhNubj)}(h**left**h]hleft}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}dubh and }(hj}dhhhNhNubj)}(h **right**h]hright}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}dubh 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.}(hj}dhhhNhNubeh}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_NE (C macro)c.KUNIT_ASSERT_NEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_NEh]j )}(hKUNIT_ASSERT_NEh]j3)}(hKUNIT_ASSERT_NEh]j9)}(hjdh]hKUNIT_ASSERT_NE}(hjdhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjdubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjdhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjdhhhjdhMubah}(h]jdah ](j\j]eh"]h$]h&]jajb)jchuh1jhjdhMhjdhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjdhhhjdhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjejjejjjuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_NE (test, left, right)``h]j)}(hjeh]h#KUNIT_ASSERT_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.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}(hj(ehhhNhNubah}(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&]uh1jhjRehMhhhhubj)}(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)}(hj_eh]h Parameters}(hjaehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj]eubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjYeubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj~eh]htest}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|eubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjxeubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehMhjeubah}(h]h ]h"]h$]h&]uh1jhjxeubeh}(h]h ]h"]h$]h&]uh1jhjehMhjueubj)}(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&]uh1jhjehMhjueubj)}(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.}(hj fhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjfhMhjueubeh}(h]h ]h"]h$]h&]uh1jhjYeubh)}(h**Description**h]j)}(hj+fh]h Description}(hj-fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)fubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjYeubh)}(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 }(hjAfhhhNhNubj)}(h**left**h]hleft}(hjIfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAfubh and }(hjAfhhhNhNubj)}(h **right**h]hright}(hj[fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAfubh 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.}(hjAfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjYeubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_PTR_NE (C macro)c.KUNIT_ASSERT_PTR_NEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_PTR_NEh]j )}(hKUNIT_ASSERT_PTR_NEh]j3)}(hKUNIT_ASSERT_PTR_NEh]j9)}(hjfh]hKUNIT_ASSERT_PTR_NE}(hjfhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjfubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjfhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjfhhhjfhMubah}(h]jfah ](j\j]eh"]h$]h&]jajb)jchuh1jhjfhMhjfhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjfhhhjfhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjfjjfjjjuh1hhhhhhNhNubh)}(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}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh and }hjfsbj)}(h **right**h]hright}(hj"ghhhNhNubah}(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:ghMhhhhubj)}(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)}(hjGgh]h Parameters}(hjIghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjEgubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjAgubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjfgh]htest}(hjhghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdgubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj`gubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{ghMhj|gubah}(h]h ]h"]h$]h&]uh1jhj`gubeh}(h]h ]h"]h$]h&]uh1jhj{ghMhj]gubj)}(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&]uh1jhjghMhj]gubj)}(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&]uh1jhjghMhj]gubeh}(h]h ]h"]h$]h&]uh1jhjAgubh)}(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.hhMhjAgubh)}(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)hhhhNhNubj)}(h**left**h]hleft}(hj1hhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)hubh and }(hj)hhhhNhNubj)}(h **right**h]hright}(hjChhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)hubh 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)hhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjAgubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_LT (C macro)c.KUNIT_ASSERT_LThNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_LTh]j )}(hKUNIT_ASSERT_LTh]j3)}(hKUNIT_ASSERT_LTh]j9)}(hjvhh]hKUNIT_ASSERT_LT}(hjhhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj|hubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjxhhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjthhhhjhhMubah}(h]johah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhhMhjqhhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjqhhhhjhhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjhjjhjjjuh1hhhhhhNhNubh)}(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&]uh1jhjhhMhhhhubj)}(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)}(hj ih]h Parameters}(hj ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj iubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjiubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj*ih]htest}(hj,ihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(iubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj$iubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjCihhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?ihMhj@iubah}(h]h ]h"]h$]h&]uh1jhj$iubeh}(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)}(hjcih]hleft}(hjeihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaiubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj]iubj)}(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|ihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxihMhjyiubah}(h]h ]h"]h$]h&]uh1jhj]iubeh}(h]h ]h"]h$]h&]uh1jhjxihMhj!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&]uh1jhjiubh)}(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.hhMhjiubh)}(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}(hjjhhhNhNubah}(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.hhMhjiubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_LE (C macro)c.KUNIT_ASSERT_LEhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_LEh]j )}(hKUNIT_ASSERT_LEh]j3)}(hKUNIT_ASSERT_LEh]j9)}(hj:jh]hKUNIT_ASSERT_LE}(hjDjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj@jubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjAn assertion that **left** is less than or equal to **right**.h](hAn assertion that }(hjjhhhNhNubj)}(h**left**h]hleft}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubh is less than or equal to }(hjjhhhNhNubj)}(h **right**h]hright}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubh.}(hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjjubah}(h]h ]h"]h$]h&]uh1jhjjhMhhhhubj)}(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.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhMhjkubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjkhMhjjubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hj'kh]hleft}(hj)khhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%kubah}(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&]uh1hhjAssertion 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}(hj2nhhhNhNubah}(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&]uh1jhjJnhMhhhhubj)}(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)}(hjWnh]h Parameters}(hjYnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUnubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjQnubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjvnh]htest}(hjxnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtnubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjpnubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhM hjnubah}(h]h ]h"]h$]h&]uh1jhjpnubeh}(h]h ]h"]h$]h&]uh1jhjnhM hjmnubj)}(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 hjmnubj)}(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.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjnhM hjnubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhjnhM hjmnubeh}(h]h ]h"]h$]h&]uh1jhjQnubh)}(h**Description**h]j)}(hj#oh]h Description}(hj%ohhhNhNubah}(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 hjQnubh)}(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 }(hj9ohhhNhNubj)}(h**left**h]hleft}(hjAohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9oubh- evaluates to is greater than the value that }(hj9ohhhNhNubj)}(h **right**h]hright}(hjSohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9oubh 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.}(hj9ohhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjQnubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_STREQ (C macro)c.KUNIT_ASSERT_STREQhNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ASSERT_STREQh]j )}(hKUNIT_ASSERT_STREQh]j3)}(hKUNIT_ASSERT_STREQh]j9)}(hjoh]hKUNIT_ASSERT_STREQ}(hjohhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjoubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjohhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjohhhjohMubah}(h]joah ](j\j]eh"]h$]h&]jajb)jchuh1jhjohMhjohhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjohhhjohMubeh}(h]h ](jmacroeh"]h$]h&]jjjjojjojjjuh1hhhhhhNhNubh)}(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)}(h|ah ](j\j]eh"]h$]h&]jajb)jchuh1jhjb|hMhj@|hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj@|hhhjb|hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj{|jj{|jjjuh1hhhhhhNhNubh)}(h-``KUNIT_ARRAY_PARAM (name, array, get_desc)``h]j)}(hj|h]h)KUNIT_ARRAY_PARAM (name, array, get_desc)}(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/Define test parameter generator from an array. h]h)}(h.Define test parameter generator from an array.h]h.Define test parameter generator from an array.}(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|hMhhhhubj)}(hX$**Parameters** ``name`` prefix for the test parameter generator function. ``array`` array of test parameters. ``get_desc`` function to convert param to description; NULL to use default **Description** Define function **name_gen_params** which uses **array** to generate parameters.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;``name`` prefix for the test parameter generator function. h](j)}(h``name``h]j)}(hj|h]hname}(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)}(h1prefix for the test parameter generator function.h]h1prefix for the test parameter generator function.}(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$``array`` array of test parameters. h](j)}(h ``array``h]j)}(hj}h]harray}(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)}(harray of test parameters.h]harray of test parameters.}(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``get_desc`` function to convert param to description; NULL to use default h](j)}(h ``get_desc``h]j)}(hjG}h]hget_desc}(hjI}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE}ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjA}ubj)}(hhh]h)}(h=function to convert param to description; NULL to use defaulth]h=function to convert param to description; NULL to use default}(hj`}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\}hMhj]}ubah}(h]h ]h"]h$]h&]uh1jhjA}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)}(hPDefine function **name_gen_params** which uses **array** to generate parameters.h](hDefine function }(hj}hhhNhNubj)}(h**name_gen_params**h]hname_gen_params}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}ubh which uses }(hj}hhhNhNubj)}(h **array**h]harray}(hj}hhhNhNubah}(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&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h KUNIT_ARRAY_PARAM_DESC (C macro)c.KUNIT_ARRAY_PARAM_DESChNtauh1hhhhhhNhNubh)}(hhh](j)}(hKUNIT_ARRAY_PARAM_DESCh]j )}(hKUNIT_ARRAY_PARAM_DESCh]j3)}(hKUNIT_ARRAY_PARAM_DESCh]j9)}(hj}h]hKUNIT_ARRAY_PARAM_DESC}(hj}hhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hj}ubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hj}hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhj}hhhj~hMubah}(h]j}ah ](j\j]eh"]h$]h&]jajb)jchuh1jhj~hMhj}hhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhj}hhhj~hMubeh}(h]h ](jmacroeh"]h$]h&]jjjj~jj~jjjuh1hhhhhhNhNubh)}(h5``KUNIT_ARRAY_PARAM_DESC (name, array, desc_member)``h]j)}(hj!~h]h1KUNIT_ARRAY_PARAM_DESC (name, array, desc_member)}(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/Define test parameter generator from an array. h]h)}(h.Define test parameter generator from an array.h]h.Define test parameter generator from an array.}(hj;~hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj7~ubah}(h]h ]h"]h$]h&]uh1jhjI~hMhhhhubj)}(hX#**Parameters** ``name`` prefix for the test parameter generator function. ``array`` array of test parameters. ``desc_member`` structure member from array element to use as description **Description** Define function **name_gen_params** which uses **array** to generate parameters.h](h)}(h**Parameters**h]j)}(hjV~h]h Parameters}(hjX~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT~ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjP~ubj)}(hhh](j)}(h;``name`` prefix for the test parameter generator function. h](j)}(h``name``h]j)}(hju~h]hname}(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)}(h1prefix for the test parameter generator function.h]h1prefix for the test parameter generator function.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hMhj~ubah}(h]h ]h"]h$]h&]uh1jhjo~ubeh}(h]h ]h"]h$]h&]uh1jhj~hMhjl~ubj)}(h$``array`` array of test parameters. h](j)}(h ``array``h]j)}(hj~h]harray}(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)}(harray of test parameters.h]harray of test parameters.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hMhj~ubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hMhjl~ubj)}(hJ``desc_member`` structure member from array element to use as description h](j)}(h``desc_member``h]j)}(hj~h]h desc_member}(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)}(h9structure member from array element to use as descriptionh]h9structure member from array element to use as description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hMhj~ubah}(h]h ]h"]h$]h&]uh1jhj~ubeh}(h]h ]h"]h$]h&]uh1jhj~hMhjl~ubeh}(h]h ]h"]h$]h&]uh1jhjP~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.hhMhjP~ubh)}(hPDefine function **name_gen_params** which uses **array** to generate parameters.h](hDefine function }(hj8hhhNhNubj)}(h**name_gen_params**h]hname_gen_params}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh which uses }(hj8hhhNhNubj)}(h **array**h]harray}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubh to generate parameters.}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjP~ubeh}(h]h ] kernelindentah"]h$]h&]uh1jhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h%kunit_register_params_array (C macro)c.kunit_register_params_arrayhNtauh1hhhhhhNhNubh)}(hhh](j)}(hkunit_register_params_arrayh]j )}(hkunit_register_params_arrayh]j3)}(hkunit_register_params_arrayh]j9)}(hjh]hkunit_register_params_array}(hjhhhNhNubah}(h]h ]jDah"]h$]h&]uh1j8hjubah}(h]h ](jKjLeh"]h$]h&]hhuh1j2hjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjVuh1j jWjXhjhhhjhMubah}(h]j~ah ](j\j]eh"]h$]h&]jajb)jchuh1jhjhMhjhhubje)}(hhh]h}(h]h ]h"]h$]h&]uh1jdhjhhhjhMubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1hhhhhhNhNubh)}(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&]uh1jhjhMhhhhubj)}(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.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hMhj+ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj*hMhj ubj)}(h'``array`` An array of test parameters. h](j)}(h ``array``h]j)}(hjNh]harray}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjHubj)}(hhh]h)}(hAn array of test parameters.h]hAn array of test parameters.}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhjchMhjdubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jhjchMhj ubj)}(h&``param_count`` Number of parameters. h](j)}(h``param_count``h]j)}(hjh]h param_count}(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 parameters.h]hNumber of parameters.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhj ubj)}(hY``get_desc`` Function that generates a string description for a given parameter element. h](j)}(h ``get_desc``h]j)}(hjh]hget_desc}(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)}(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&]uh1jhjՀhMhj ubeh}(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}(hj,hhhNhNubah}(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)}(hjGh]hNote}(hjIhhhNhNubah}(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.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}(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&]uh1jhhhhhNhNubeh}(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_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}jxjus nametypes}jxsh}(juhhjj~jjHjMjjjjjj j j j- j2 j jjjjjjj"jjjjjjjjj5!j:!jE$jJ$jn&js&j)j)j+j+ji-jn-js2jx2j"4j'4j5j5j_7jd7j8j8j{:j:j;j;j=j=ji>jn>j?j?jAjAjCjCjEjEjGjGjIjIjKjKjMjMjOjOjQjQjSjSjUjUjOXjTXjYjYjA[jF[j\j\jH^jM^j_j_j;aj@ajbjcjdjdjfjfjohjthj3jj8jjkjkjmjmjojojCqjHqj=sjBsjujuj xjxjpyjuyjzjzj>|jC|j}j}j~ju 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.