sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget,/translations/zh_CN/dev-tools/kunit/api/testmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/zh_TW/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/it_IT/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/ja_JP/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/ko_KR/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget,/translations/sp_SP/dev-tools/kunit/api/testmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhF/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test.rsthKubhsection)}(hhh](htitle)}(hTest APIh]hTest API}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(h4This file documents all of the standard testing API.h]h4This file documents all of the standard testing API.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlekunit_status (C enum)c.kunit_statushNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(h kunit_statush]hdesc_signature_line)}(henum kunit_statush](hdesc_sig_keyword)}(henumh]henum}(hhhhhNhNubah}(h]h ]kah"]h$]h&]uh1hhhhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1j hhhhhj hKubh desc_name)}(h kunit_statush]h desc_sig_name)}(hhh]h kunit_status}(hj&hhhNhNubah}(h]h ]nah"]h$]h&]uh1j$hj ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhhhhhj hKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1hsphinx_line_type declaratorhhhhhj hKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhj hKhhhhubh desc_content)}(hhh]h)}(h'Type of result for a test or test suiteh]h'Type of result for a test or test suite}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK7hjRhhubah}(h]h ]h"]h$]h&]uh1jPhhhhhj hKubeh}(h]h ](cenumeh"]h$]h&]domainjmobjtypejndesctypejnnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(h**Constants** ``KUNIT_SUCCESS`` Denotes the test suite has not failed nor been skipped ``KUNIT_FAILURE`` Denotes the test has failed. ``KUNIT_SKIPPED`` Denotes the test has been skipped.h](h)}(h **Constants**h]hstrong)}(hjh]h Constants}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK;hjzubhdefinition_list)}(hhh](hdefinition_list_item)}(hI``KUNIT_SUCCESS`` Denotes the test suite has not failed nor been skipped h](hterm)}(h``KUNIT_SUCCESS``h]hliteral)}(hjh]h KUNIT_SUCCESS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK>hjubh definition)}(hhh]h)}(h6Denotes the test suite has not failed nor been skippedh]h6Denotes the test suite has not failed nor been skipped}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK>hjubj)}(h/``KUNIT_FAILURE`` Denotes the test has failed. h](j)}(h``KUNIT_FAILURE``h]j)}(hjh]h KUNIT_FAILURE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKAhjubj)}(hhh]h)}(hDenotes the test has failed.h]hDenotes the test has failed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKAhjubj)}(h4``KUNIT_SKIPPED`` Denotes the test has been skipped.h](j)}(h``KUNIT_SKIPPED``h]j)}(hjh]h KUNIT_SKIPPED}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKChjubj)}(hhh]h)}(h"Denotes the test has been skipped.h]h"Denotes the test has been skipped.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKDhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj2hKChjubeh}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_case (C struct) c.kunit_casehNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_caseh]h)}(hstruct kunit_caseh](h)}(hstructh]hstruct}(hjwhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjshhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKIubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjshhhjhKIubj)}(h kunit_caseh]j%)}(hjqh]h kunit_case}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjshhhjhKIubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjohhhjhKIubah}(h]jjah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhKIhjlhhubjQ)}(hhh]h)}(h#represents an individual test case.h]h#represents an individual test case.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKYhjhhubah}(h]h ]h"]h$]h&]uh1jPhjlhhhjhKIubeh}(h]h ](jmstructeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(hX**Definition**:: struct kunit_case { void (*run_case)(struct kunit *test); const char *name; const void* (*generate_params)(const void *prev, char *desc); struct kunit_attributes attr; }; **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 testh](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)}(hstruct kunit_case { void (*run_case)(struct kunit *test); const char *name; const void* (*generate_params)(const void *prev, char *desc); struct kunit_attributes attr; };h]hstruct kunit_case { void (*run_case)(struct kunit *test); const char *name; const void* (*generate_params)(const void *prev, char *desc); struct kunit_attributes attr; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK_hjubh)}(h **Members**h]j)}(hj h]hMembers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKfhjubj)}(hhh](j)}(h=``run_case`` the function representing the actual test case. h](j)}(h ``run_case``h]j)}(hj)h]hrun_case}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK\hj#ubj)}(hhh]h)}(h/the function representing the actual test case.h]h/the function representing the actual test case.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hK\hj?ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj>hK\hj ubj)}(h$``name`` the name of the test case. h](j)}(h``name``h]j)}(hjbh]hname}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK]hj\ubj)}(hhh]h)}(hthe name of the test case.h]hthe name of the test case.}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjwhK]hjxubah}(h]h ]h"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhjwhK]hj ubj)}(hD``generate_params`` the generator function for parameterized tests. h](j)}(h``generate_params``h]j)}(hjh]hgenerate_params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK^hjubj)}(hhh]h)}(h/the generator function for parameterized tests.h]h/the generator function for parameterized tests.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK^hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK^hj ubj)}(h0``attr`` the attributes associated with the testh](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&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK^hj ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(h**Description**h]j)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKbhhhhubh)}(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, }(hj-hhhNhNubj)}(h``void (*)(struct kunit *)``h]hvoid (*)(struct kunit *)}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubh that makes expectations and assertions (see KUNIT_EXPECT_TRUE() and KUNIT_ASSERT_TRUE()) about code under test. Each test case is associated with a }(hj-hhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjIh]hstruct kunit_suite}(hjKhhhNhNubah}(h]h ](xrefjmc-typeeh"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]refdocdev-tools/kunit/api/test refdomainjmreftypetype refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]sb reftarget kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhK_hj-ubh_ and will be run after the suite’s init function and followed by the suite’s exit function.}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjqhK_hhhhubh)}(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.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKfhhhhubh)}(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.hhKjhhhhubj)}(hXvoid add_test_basic(struct kunit *test) { KUNIT_EXPECT_EQ(test, 1, add(1, 0)); KUNIT_EXPECT_EQ(test, 2, add(1, 1)); KUNIT_EXPECT_EQ(test, 0, add(-1, 1)); KUNIT_EXPECT_EQ(test, INT_MAX, add(0, INT_MAX)); KUNIT_EXPECT_EQ(test, -1, add(INT_MAX, INT_MIN)); } static struct kunit_case example_test_cases[] = { KUNIT_CASE(add_test_basic), {} };h]hXvoid add_test_basic(struct kunit *test) { KUNIT_EXPECT_EQ(test, 1, add(1, 0)); KUNIT_EXPECT_EQ(test, 2, add(1, 1)); KUNIT_EXPECT_EQ(test, 0, add(-1, 1)); KUNIT_EXPECT_EQ(test, INT_MAX, add(0, INT_MAX)); KUNIT_EXPECT_EQ(test, -1, add(INT_MAX, INT_MIN)); } static struct kunit_case example_test_cases[] = { KUNIT_CASE(add_test_basic), {} };}hjsbah}(h]h ]h"]h$]h&]hhforcelanguagejmhighlight_args}uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKkhhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE (C macro) c.KUNIT_CASEhNtauh1hhhhhhNhNubh)}(hhh](h)}(h KUNIT_CASEh]h)}(h KUNIT_CASEh]j)}(h KUNIT_CASEh]j%)}(hjh]h KUNIT_CASE}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhKubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhKhjhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjhhhjhKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubh)}(h``KUNIT_CASE (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 }(hj!hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hj+h]hstruct kunit_case}(hj-hhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj!ubeh}(h]h ]h"]h$]h&]uh1hhjHhKhjubah}(h]h ]h"]h$]h&]uh1jhjHhKhhhhubjy)}(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)}(hj[h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjUubj)}(hhh]j)}(h3``test_name`` a reference to a test case function. h](j)}(h ``test_name``h]j)}(hjzh]h test_name}(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.hhKhjtubj)}(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&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhKhjqubah}(h]h ]h"]h$]h&]uh1jhjUubh)}(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.hhKhjUubh)}(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 }(hjhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubh+ object from it. See the documentation for }(hjhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_caseuh1hhjhKhjubh! for an example on how to use it.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_ATTR (C macro)c.KUNIT_CASE_ATTRhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_ATTRh]h)}(hKUNIT_CASE_ATTRh]j)}(hKUNIT_CASE_ATTRh]j%)}(hj:h]hKUNIT_CASE_ATTR}(hjDhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj@ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj<hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj8hhhjWhKubah}(h]j3ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjWhKhj5hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj5hhhjWhKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjpjtjpjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_CASE_ATTR (test_name, attributes)``h]j)}(hjvh]h'KUNIT_CASE_ATTR (test_name, attributes)}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.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)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo 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&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhhhhubjy)}(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)}(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&]uh1jhjhKhjubj)}(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;hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_SLOW (C macro)c.KUNIT_CASE_SLOWhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_SLOWh]h)}(hKUNIT_CASE_SLOWh]j)}(hKUNIT_CASE_SLOWh]j%)}(hjyh]hKUNIT_CASE_SLOW}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj{hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjwhhhjhKubah}(h]jrah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhKhjthhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjthhhjhKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubh)}(h``KUNIT_CASE_SLOW (test_name)``h]j)}(hjh]hKUNIT_CASE_SLOW (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.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 }(hjhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubh with the slow attribute}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhhhhubjy)}(hD**Parameters** ``test_name`` a reference to a test case function.h](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubj)}(hhh]j)}(h2``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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjBubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjAhKhj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_PARAM (C macro)c.KUNIT_CASE_PARAMhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_PARAMh]h)}(hKUNIT_CASE_PARAMh]j)}(hKUNIT_CASE_PARAMh]j%)}(hjh]hKUNIT_CASE_PARAM}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj~hhhjhKubah}(h]jyah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhKhj{hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj{hhhjhKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubh)}(h,``KUNIT_CASE_PARAM (test_name, gen_params)``h]j)}(hjh]h(KUNIT_CASE_PARAM (test_name, gen_params)}(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)}(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 }(hjhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubeh}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjhKhhhhubjy)}(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}(hj1 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.}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjD hKhjE ubah}(h]h ]h"]h$]h&]uh1jhj) ubeh}(h]h ]h"]h$]h&]uh1jhjD hKhj& ubj)}(h>``gen_params`` a reference to a parameter generator function. h](j)}(h``gen_params``h]j)}(hjh h]h gen_params}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjb 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&]uh1jhjb ubeh}(h]h ]h"]h$]h&]uh1jhj} hKhj& ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubh)}(hThe generator function::h]hThe generator function:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubj)}(h4const void* gen_params(const void *prev, char *desc)h]h4const void* gen_params(const void *prev, char *desc)}hj sbah}(h]h ]h"]h$]h&]hhuh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubh)}(hXis used to lazily generate a series of arbitrarily typed values that fit into a void*. The argument **prev** is the previously returned value, which should be used to derive the next value; **prev** is set to NULL on the initial generator call. When no more values are available, the generator must return NULL. Optionally write a string into **desc** (size of KUNIT_PARAM_DESC_SIZE) describing the parameter.h](hdis used to lazily generate a series of arbitrarily typed values that fit into a void*. The argument }(hj hhhNhNubj)}(h**prev**h]hprev}(hj 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}(hj 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&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_CASE_PARAM_ATTR (C macro)c.KUNIT_CASE_PARAM_ATTRhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_CASE_PARAM_ATTRh]h)}(hKUNIT_CASE_PARAM_ATTRh]j)}(hKUNIT_CASE_PARAM_ATTRh]j%)}(hj6 h]hKUNIT_CASE_PARAM_ATTR}(hj@ hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj< ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj8 hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj4 hhhjS hKubah}(h]j/ ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjS hKhj1 hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj1 hhhjS hKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjl jtjl jujvjwuh1hhhhhhNhNubh)}(h=``KUNIT_CASE_PARAM_ATTR (test_name, gen_params, attributes)``h]j)}(hjr h]h9KUNIT_CASE_PARAM_ATTR (test_name, gen_params, attributes)}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjp ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.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 ](jUjmc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubh with attributes}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj hKhhhhubjy)}(h**Parameters** ``test_name`` a reference to a test case function. ``gen_params`` a reference to a parameter generator function. ``attributes`` a reference to a struct kunit_attributes object containing test attributesh](h)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.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&]uh1hhj7 hKhj8 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj7 hKhj 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&]uh1jhjY ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjU ubj)}(hhh]h)}(hJa reference to a struct kunit_attributes object containing test attributesh]hJa reference to a struct kunit_attributes object containing test attributes}(hjt hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjp hKhjq ubah}(h]h ]h"]h$]h&]uh1jhjU ubeh}(h]h ]h"]h$]h&]uh1jhjp hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_suite (C struct) c.kunit_suitehNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_suiteh]h)}(hstruct kunit_suiteh](h)}(hjyh]hstruct}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhj hKubj)}(h kunit_suiteh]j%)}(hj h]h kunit_suite}(hj hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj hhhj hKubah}(h]j ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj hKhj hhubjQ)}(hhh]h)}(hJdescribes a related collection of :c:type:`struct kunit_case `h](h"describes a related collection of }(hj hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hj h]hstruct kunit_case}(hj hhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjj)}jm]jh ASTIdentifier)} identifierj sb c.kunit_suiteasbjo kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj ubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj hhubah}(h]h ]h"]h$]h&]uh1jPhj hhhj hKubeh}(h]h ](jmstructeh"]h$]h&]jrjmjsj8 jtj8 jujvjwuh1hhhhhhNhNubjy)}(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}(hjD 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.hhKhj< ubj)}(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; };}hj] sbah}(h]h ]h"]h$]h&]hhuh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj< ubh)}(h **Members**h]j)}(hjn h]hMembers}(hjp hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjl 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)}(h5``name`` the name of the test. Purely informational. 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.hhKhj ubj)}(hhh]h)}(h+the name of the test. Purely informational.h]h+the name of the test. Purely informational.}(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)}(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.hhKhj ubj)}(hhh]h)}(h1called once per test suite before the test cases.h]h1called once per test suite before the test cases.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h@``suite_exit`` called once per test suite after all test cases. h](j)}(h``suite_exit``h]j)}(hj h]h suite_exit}(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)}(h0called once per test suite after all test cases.h]h0called once per test suite after all test cases.}(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(``init`` called before every test case. h](j)}(h``init``h]j)}(hj8 h]hinit}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6 ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj2 ubj)}(hhh]h)}(hcalled before every test case.h]hcalled before every test case.}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjM hKhjN ubah}(h]h ]h"]h$]h&]uh1jhj2 ubeh}(h]h ]h"]h$]h&]uh1jhjM hKhj ubj)}(h'``exit`` called after every test case. h](j)}(h``exit``h]j)}(hjq h]hexit}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjo ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjk ubj)}(hhh]h)}(hcalled after every test case.h]hcalled after every test case.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjk ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h6``test_cases`` a null terminated array of test cases. h](j)}(h``test_cases``h]j)}(hj h]h test_cases}(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 null terminated array of test cases.h]h&a null terminated array of test cases.}(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)}(h6``attr`` the attributes associated with the test suiteh](j)}(h``attr``h]j)}(hj h]hattr}(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 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.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj< ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(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.hhKhhhhubh)}(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 }(hj<hhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjFh]hstruct kunit_case}(hjHhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj<ubh s, such that }(hj<hhhNhNubj)}(h**init**h]hinit}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh& is called before every test case and }(hj<hhhNhNubj)}(h**exit**h]hexit}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh= is called after every test case, similar to the notion of a }(hj<hhhNhNubhemphasis)}(h*test fixture*h]h test fixture}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh or a }(hj<hhhNhNubj)}(h *test class*h]h test class}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubh; in other unit testing frameworks like JUnit or Googletest.}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjchKhhhhubh)}(hNote that **exit** and **suite_exit** will run even if **init** or **suite_init** fail: make sure they can handle any inconsistent state which may result.h](h Note that }(hjhhhNhNubj)}(h**exit**h]hexit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h**suite_exit**h]h suite_exit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh will run even if }(hjhhhNhNubj)}(h**init**h]hinit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h**suite_init**h]h suite_init}(hjhhhNhNubah}(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.hhKhhhhubh)}(hiEvery :c:type:`struct kunit_case ` must be associated with a kunit_suite for KUnit to run it.h](hEvery }(hjhhhNhNubh)}(h(:c:type:`struct kunit_case `h]j)}(hjh]hstruct kunit_case}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_caseuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjubh; must be associated with a kunit_suite for KUnit to run it.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj6hKhhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit (C struct)c.kunithNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunith]h)}(h struct kunith](h)}(hjyh]hstruct}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjVhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKubj)}(h h]h }(hjhhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjVhhhjghKubj)}(hkunith]j%)}(hjTh]hkunit}(hjzhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjvubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjVhhhjghKubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjRhhhjghKubah}(h]jMah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjghKhjOhhubjQ)}(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.hhM hjhhubah}(h]h ]h"]h$]h&]uh1jPhjOhhhjghKubeh}(h]h ](jmstructeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(h**Definition**:: struct kunit { void *priv; }; **Members** ``priv`` for user to store arbitrary data. Commonly used to pass data created in the init function (see :c:type:`struct kunit_suite `).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.hhMhjubj)}(h!struct kunit { void *priv; };h]h!struct kunit { void *priv; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(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)}(hj h]hpriv}(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)}(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 }(hj"hhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hj,h]hstruct kunit_suite}(hj.hhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_suiteuh1hhjhMhj"ubh).}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(h**Description**h]j)}(hjnh]h Description}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubh)}(hX Used 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 one exception is **priv** which can be used by the test writer to store arbitrary data.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 one exception is }(hjhhhNhNubj)}(h**priv**h]hpriv}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh> which can be used by the test writer to store arbitrary data.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_test_suites (C macro)c.kunit_test_suiteshNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunit_test_suitesh]h)}(hkunit_test_suitesh]j)}(hkunit_test_suitesh]j%)}(hjh]hkunit_test_suites}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMlubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMlubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMlhjhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjhhhjhMlubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubh)}(h#``kunit_test_suites (__suites...)``h]j)}(hjh]hkunit_test_suites (__suites...)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMnhhhhubj)}(hTused to register one or more :c:type:`struct kunit_suite ` with KUnit. h]h)}(hSused to register one or more :c:type:`struct kunit_suite ` with KUnit.h](hused to register one or more }(hjhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMlhjubh with KUnit.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhj5hMlhj ubah}(h]h ]h"]h$]h&]uh1jhj5hMlhhhhubjy)}(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)}(hjLh]h Parameters}(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.hhMphjFubj)}(hhh]j)}(h[``__suites...`` a statically allocated list of :c:type:`struct kunit_suite `. h](j)}(h``__suites...``h]j)}(hjkh]h __suites...}(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.hhMohjeubj)}(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 ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_suiteuh1hhjhMohjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMohjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhjhMohjbubah}(h]h ]h"]h$]h&]uh1jhjFubh)}(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.hhMqhjFubh)}(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.hhMphjFubh)}(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.hhMthjFubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(kunit_test_init_section_suites (C macro) c.kunit_test_init_section_suiteshNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunit_test_init_section_suitesh]h)}(hkunit_test_init_section_suitesh]j)}(hkunit_test_init_section_suitesh]j%)}(hj)h]hkunit_test_init_section_suites}(hj3hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj/ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj+hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj'hhhjFhMubah}(h]j"ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjFhMhj$hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj$hhhjFhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj_jtj_jujvjwuh1hhhhhhNhNubh)}(h0``kunit_test_init_section_suites (__suites...)``h]j)}(hjeh]h,kunit_test_init_section_suites (__suites...)}(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.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 }(hjhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_suiteuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubh( containing init functions or init data.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhj{ubah}(h]h ]h"]h$]h&]uh1jhjhMhhhhubjy)}(hX**Parameters** ``__suites...`` a statically allocated list of :c:type:`struct kunit_suite `. **Description** This functions similar to kunit_test_suites() except that it compiles the list of suites during init phase. This macro also suffixes the array and suite declarations it makes with _probe; so that modpost suppresses warnings about referencing init data for symbols named in this manner. **Note** these init tests are not able to be run after boot so there is no "run" debugfs file generated for these tests. Also, do not mark the suite or test case structs with __initdata because they will be used after the init phase with debugfs.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]j)}(h[``__suites...`` a statically allocated list of :c:type:`struct kunit_suite `. h](j)}(h``__suites...``h]j)}(hjh]h __suites...}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hJa statically allocated list of :c:type:`struct kunit_suite `.h](ha statically allocated list of }(hjhhhNhNubh)}(h*:c:type:`struct kunit_suite `h]j)}(hjh]hstruct kunit_suite}(hjhhhNhNubah}(h]h ](jUjmc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo kunit_suiteuh1hhjhMhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hj:h]h Description}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(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.}(hjPhhhNhNubah}(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.}(hj_hhhNhNubah}(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)}(hjph]hNote}(hjrhhhNhNubah}(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.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&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h kunit_kmalloc_array (C function)c.kunit_kmalloc_arrayhNtauh1hhhhhhNhNubh)}(hhh](h)}(hQvoid * kunit_kmalloc_array (struct kunit *test, size_t n, size_t size, gfp_t gfp)h]h)}(hOvoid *kunit_kmalloc_array(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](hdesc_sig_keyword_type)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjhhhjhMubj)}(hkunit_kmalloc_arrayh]j%)}(hkunit_kmalloc_arrayh]hkunit_kmalloc_array}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhjhMubhdesc_parameterlist)}(h6(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](hdesc_parameter)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hj7hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj4ubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj9modnameN classnameNjgjj)}jm]j )}j# jsbc.kunit_kmalloc_arrayasbuh1hhjubj)}(h h]h }(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjehhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hjrhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hsize_t nh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]jSc.kunit_kmalloc_arrayasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hj0h]hn}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]jSc.kunit_kmalloc_arrayasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]jSc.kunit_kmalloc_arrayasbuh1hhjubj)}(h h]h }(hj;hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hgfph]hgfp}(hjIhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjhhubjQ)}(hhh]h)}(h=Like kmalloc_array() except the allocation is *test managed*.h](h.Like kmalloc_array() except the allocation is }(hjshhhNhNubj)}(h*test managed*h]h test managed}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubh.}(hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjphhubah}(h]h ]h"]h$]h&]uh1jPhjhhhjhMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``size_t n`` number of elements. ``size_t size`` The size in bytes of the desired memory. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** Just like `kmalloc_array(...)`, except the allocation is managed by the test case and is automatically cleaned up after the test case concludes. See kunit_add_action() for more information. Note that some internal context data is also allocated with GFP_KERNEL, regardless of the gfp passed in.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hjh]hstruct kunit *test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h!``size_t n`` number of elements. h](j)}(h ``size_t n``h]j)}(hjh]hsize_t n}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hnumber of elements.h]hnumber of elements.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h9``size_t size`` The size in bytes of the desired memory. h](j)}(h``size_t size``h]j)}(hj8h]h size_t size}(hj:hhhNhNubah}(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.hhMhj2ubj)}(hhh]h)}(h(The size in bytes of the desired memory.h]h(The size in bytes of the desired memory.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hjqh]h gfp_t gfp}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjkubj)}(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&]uh1jhjkubeh}(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&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kmalloc (C function)c.kunit_kmallochNtauh1hhhhhhNhNubh)}(hhh](h)}(hAvoid * kunit_kmalloc (struct kunit *test, size_t size, gfp_t gfp)h]h)}(h?void *kunit_kmalloc(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhj"hMubj)}(hjh]h*}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhj"hMubj)}(h kunit_kmalloch]j%)}(h kunit_kmalloch]h kunit_kmalloc}(hjBhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj>ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhj"hMubj)}(h,(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjZubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubh)}(hhh]j%)}(hkunith]hkunit}(hj|hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjyubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj~modnameN classnameNjgjj)}jm]j )}j# jDsbc.kunit_kmallocasbuh1hhjZubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjZubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj%)}(htesth]htest}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjZubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjVubj)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]jc.kunit_kmallocasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjVubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]jc.kunit_kmallocasbuh1hhjubj)}(h h]h }(hj9hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hgfph]hgfp}(hjGhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjVubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhj"hMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj hhhj"hMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj"hMhj hhubjQ)}(hhh]h)}(h7Like kmalloc() except the allocation is *test managed*.h](h(Like kmalloc() except the allocation is }(hjqhhhNhNubj)}(h*test managed*h]h test managed}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh.}(hjqhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjnhhubah}(h]h ]h"]h$]h&]uh1jPhj hhhj"hMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(hXn**Parameters** ``struct kunit *test`` The test context object. ``size_t size`` The size in bytes of the desired memory. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** See kmalloc() and kunit_kmalloc_array() for more information. Note that some internal context data is also allocated with GFP_KERNEL, regardless of the gfp passed in.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hjh]hstruct kunit *test}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h9``size_t size`` The size in bytes of the desired memory. h](j)}(h``size_t size``h]j)}(hjh]h size_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h(The size in bytes of the desired memory.h]h(The size in bytes of the desired memory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hj6h]h gfp_t gfp}(hj8hhhNhNubah}(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.hhMhj0ubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhMhjLubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhjKhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubh)}(h**Description**h]j)}(hjqh]h Description}(hjshhhNhNubah}(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.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&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kfree (C function) c.kunit_kfreehNtauh1hhhhhhNhNubh)}(hhh](h)}(h6void kunit_kfree (struct kunit *test, const void *ptr)h]h)}(h5void kunit_kfree(struct kunit *test, const void *ptr)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(h kunit_kfreeh]j%)}(h kunit_kfreeh]h kunit_kfree}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhjhMubj)}(h%(struct kunit *test, const void *ptr)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hj hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj"modnameN classnameNjgjj)}jm]j )}j# jsb c.kunit_kfreeasbuh1hhjubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hj[hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hconst void *ptrh](h)}(hconsth]hconst}(hjthhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjpubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjpubj%)}(hptrh]hptr}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjpubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjhhubjQ)}(hhh]h)}(h3Like kfree except for allocations managed by KUnit.h]h3Like kfree except for allocations managed by KUnit.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jPhjhhhjhMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjjtjjujvjwuh1hhhhhhNhNubjy)}(h**Parameters** ``struct kunit *test`` The test case to which the resource belongs. ``const void *ptr`` The memory allocation to free.h](h)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh](j)}(hD``struct kunit *test`` The test case to which the resource belongs. h](j)}(h``struct kunit *test``h]j)}(hj$h]hstruct kunit *test}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h,The test case to which the resource belongs.h]h,The test case to which the resource belongs.}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj9hMhjubj)}(h2``const void *ptr`` The memory allocation to free.h](j)}(h``const void *ptr``h]j)}(hj]h]hconst void *ptr}(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.hhMhjWubj)}(hhh]h)}(hThe memory allocation to free.h]hThe memory allocation to free.}(hjvhhhNhNubah}(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&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjrhMhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kzalloc (C function)c.kunit_kzallochNtauh1hhhhhhNhNubh)}(hhh](h)}(hAvoid * kunit_kzalloc (struct kunit *test, size_t size, gfp_t gfp)h]h)}(h?void *kunit_kzalloc(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjhhhjhMubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhMubj)}(h kunit_kzalloch]j%)}(h kunit_kzalloch]h kunit_kzalloc}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjhhhjhMubj)}(h,(struct kunit *test, size_t size, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj!modnameN classnameNjgjj)}jm]j )}j# jsbc.kunit_kzallocasbuh1hhjubj)}(h h]h }(hj?hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hjZhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjvhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjsubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjxmodnameN classnameNjgjj)}jm]j;c.kunit_kzallocasbuh1hhjoubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjoubj%)}(hsizeh]hsize}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjoubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]j;c.kunit_kzallocasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hgfph]hgfp}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjhhhjhMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjhhhjhMubah}(h]jah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjhMhjhhubjQ)}(hhh]h)}(h5Just like kunit_kmalloc(), but zeroes the allocation.h]h5Just like kunit_kmalloc(), but zeroes the allocation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jPhjhhhjhMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj,jtj,jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``size_t size`` The size in bytes of the desired memory. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** See kzalloc() and kunit_kmalloc_array() for more information.h](h)}(h**Parameters**h]j)}(hj6h]h Parameters}(hj8hhhNhNubah}(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.hhMhj0ubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hjUh]hstruct kunit *test}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjOubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMhjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhMhjLubj)}(h9``size_t size`` The size in bytes of the desired memory. h](j)}(h``size_t size``h]j)}(hjh]h size_t size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h(The size in bytes of the desired memory.h]h(The size in bytes of the desired memory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjLubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hjh]h gfp_t gfp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjubj)}(hhh]h)}(h%flags passed to underlying kmalloc().h]h%flags passed to underlying kmalloc().}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMhjLubeh}(h]h ]h"]h$]h&]uh1jhj0ubh)}(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.hhMhj0ubh)}(h=See kzalloc() and kunit_kmalloc_array() for more information.h]h=See kzalloc() 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.hhMhj0ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kcalloc (C function)c.kunit_kcallochNtauh1hhhhhhNhNubh)}(hhh](h)}(hKvoid * kunit_kcalloc (struct kunit *test, size_t n, size_t size, gfp_t gfp)h]h)}(hIvoid *kunit_kcalloc(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](j)}(hvoidh]hvoid}(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjVhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjChhhjUhMubj)}(hjh]h*}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjChhhjUhMubj)}(h kunit_kcalloch]j%)}(h kunit_kcalloch]h kunit_kcalloc}(hjuhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjqubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjChhhjUhMubj)}(h6(struct kunit *test, size_t n, size_t size, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubh)}(hhh]j%)}(hkunith]hkunit}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]j )}j# jwsbc.kunit_kcallocasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj%)}(htesth]htest}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hsize_t nh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]jc.kunit_kcallocasbuh1hhjubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hj0h]hn}(hj2hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t sizeh](h)}(hhh]j%)}(hsize_th]hsize_t}(hjMhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjJubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjOmodnameN classnameNjgjj)}jm]jc.kunit_kcallocasbuh1hhjFubj)}(h h]h }(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjFubj%)}(hsizeh]hsize}(hjyhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjFubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjmodnameN classnameNjgjj)}jm]jc.kunit_kcallocasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj%)}(hgfph]hgfp}(hjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1j hjChhhjUhMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj?hhhjUhMubah}(h]j:ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjUhMhj<hhubjQ)}(hhh]h)}(h;Just like kunit_kmalloc_array(), but zeroes the allocation.h]h;Just like kunit_kmalloc_array(), but zeroes the allocation.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjhhubah}(h]h ]h"]h$]h&]uh1jPhj<hhhjUhMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj jtj jujvjwuh1hhhhhhNhNubjy)}(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.}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA hMhjB ubah}(h]h ]h"]h$]h&]uh1jhj& ubeh}(h]h ]h"]h$]h&]uh1jhjA hMhj# ubj)}(h!``size_t n`` number of elements. h](j)}(h ``size_t n``h]j)}(hje h]hsize_t n}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc 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)}(hnumber of elements.h]hnumber of elements.}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjz hMhj{ ubah}(h]h ]h"]h$]h&]uh1jhj_ ubeh}(h]h ]h"]h$]h&]uh1jhjz 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&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kfree_const (C function)c.kunit_kfree_consthNtauh1hhhhhhNhNubh)}(hhh](h)}(h:void kunit_kfree_const (struct kunit *test, const void *x)h]h)}(h9void kunit_kfree_const(struct kunit *test, const void *x)h](j)}(hvoidh]hvoid}(hjW!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjS!hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hjf!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjS!hhhje!hMubj)}(hkunit_kfree_consth]j%)}(hkunit_kfree_consth]hkunit_kfree_const}(hjx!hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjt!ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjS!hhhje!hMubj)}(h#(struct kunit *test, const void *x)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubh)}(hhh]j%)}(hkunith]hkunit}(hj!hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj!ubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj!modnameN classnameNjgjj)}jm]j )}j# jz!sbc.kunit_kfree_constasbuh1hhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!ubj)}(hjh]h*}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj%)}(htesth]htest}(hj!hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubj)}(h const void *xh](h)}(hjvh]hconst}(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj"ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubj)}(hvoidh]hvoid}(hj!"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj)}(h h]h }(hj/"hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj"ubj)}(hjh]h*}(hj="hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj"ubj%)}(hxh]hx}(hjJ"hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj"ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubeh}(h]h ]h"]h$]h&]hhuh1j hjS!hhhje!hMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjO!hhhje!hMubah}(h]jJ!ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhje!hMhjL!hhubjQ)}(hhh]h)}(h&conditionally free test managed memoryh]h&conditionally free test managed memory}(hjt"hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjq"hhubah}(h]h ]h"]h$]h&]uh1jPhjL!hhhje!hMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj"jtj"jujvjwuh1hhhhhhNhNubjy)}(h**Parameters** ``struct kunit *test`` The test context object. ``const void *x`` pointer to the memory **Description** Calls kunit_kfree() only if **x** is not in .rodata section. See kunit_kstrdup_const() for more information.h](h)}(h**Parameters**h]j)}(hj"h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.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(``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.hhMhj"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}(hjG#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&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_kstrdup (C function)c.kunit_kstrduphNtauh1hhhhhhNhNubh)}(hhh](h)}(hEchar * kunit_kstrdup (struct kunit *test, const char *str, gfp_t gfp)h]h)}(hCchar *kunit_kstrdup(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hcharh]hchar}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|#hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj|#hhhj#hMubj)}(hjh]h*}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj|#hhhj#hMubj)}(h kunit_kstrduph]j%)}(h kunit_kstrduph]h kunit_kstrdup}(hj#hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj#ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj|#hhhj#hMubj)}(h0(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubh)}(hhh]j%)}(hkunith]hkunit}(hj#hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj#ubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj#modnameN classnameNjgjj)}jm]j )}j# j#sbc.kunit_kstrdupasbuh1hhj#ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj#ubj)}(hjh]h*}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj%)}(htesth]htest}(hj#$hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj#ubj)}(hconst char *strh](h)}(hjvh]hconst}(hj<$hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj8$ubj)}(h h]h }(hjI$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8$ubj)}(hcharh]hchar}(hjW$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8$ubj)}(h h]h }(hje$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj8$ubj)}(hjh]h*}(hjs$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj8$ubj%)}(hstrh]hstr}(hj$hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj8$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj#ubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hj$hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj$ubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj$modnameN classnameNjgjj)}jm]j$c.kunit_kstrdupasbuh1hhj$ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj$ubj%)}(hgfph]hgfp}(hj$hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj$ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj#ubeh}(h]h ]h"]h$]h&]hhuh1j hj|#hhhj#hMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjx#hhhj#hMubah}(h]js#ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj#hMhju#hhubjQ)}(hhh]h)}(h3Duplicates a string into a test managed allocation.h]h3Duplicates a string into a test managed allocation.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj$hhubah}(h]h ]h"]h$]h&]uh1jPhju#hhhj#hMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj %jtj %jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``const char *str`` The NULL-terminated string to duplicate. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** See kstrdup() and kunit_kmalloc_array() for more information.h](h)}(h**Parameters**h]j)}(hj%h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj%ubj)}(hhh](j)}(h0``struct kunit *test`` The test context object. h](j)}(h``struct kunit *test``h]j)}(hj3%h]hstruct kunit *test}(hj5%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1%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.}(hjL%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjH%hMhjI%ubah}(h]h ]h"]h$]h&]uh1jhj-%ubeh}(h]h ]h"]h$]h&]uh1jhjH%hMhj*%ubj)}(h=``const char *str`` The NULL-terminated string to duplicate. h](j)}(h``const char *str``h]j)}(hjl%h]hconst char *str}(hjn%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjj%ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjf%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%hMhj%ubah}(h]h ]h"]h$]h&]uh1jhjf%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 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.hhMhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h kunit_kstrdup_const (C function)c.kunit_kstrdup_consthNtauh1hhhhhhNhNubh)}(hhh](h)}(hQconst char * kunit_kstrdup_const (struct kunit *test, const char *str, gfp_t gfp)h]h)}(hOconst char *kunit_kstrdup_const(struct kunit *test, const char *str, gfp_t gfp)h](h)}(hjvh]hconst}(hj%&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj!&hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM ubj)}(h h]h }(hj3&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!&hhhj2&hM ubj)}(hcharh]hchar}(hjA&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!&hhhj2&hM ubj)}(h h]h }(hjO&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj!&hhhj2&hM ubj)}(hjh]h*}(hj]&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!&hhhj2&hM ubj)}(hkunit_kstrdup_consth]j%)}(hkunit_kstrdup_consth]hkunit_kstrdup_const}(hjn&hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjj&ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj!&hhhj2&hM ubj)}(h0(struct kunit *test, const char *str, gfp_t gfp)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubh)}(hhh]j%)}(hkunith]hkunit}(hj&hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj&ubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj&modnameN classnameNjgjj)}jm]j )}j# jp&sbc.kunit_kstrdup_constasbuh1hhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj%)}(htesth]htest}(hj&hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubj)}(hconst char *strh](h)}(hjvh]hconst}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj&ubj)}(h h]h }(hj 'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hcharh]hchar}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj)}(h h]h }(hj%'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj&ubj)}(hjh]h*}(hj3'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj%)}(hstrh]hstr}(hj@'hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubj)}(h gfp_t gfph](h)}(hhh]j%)}(hgfp_th]hgfp_t}(hj\'hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjY'ubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj^'modnameN classnameNjgjj)}jm]j&c.kunit_kstrdup_constasbuh1hhjU'ubj)}(h h]h }(hjz'hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjU'ubj%)}(hgfph]hgfp}(hj'hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjU'ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubeh}(h]h ]h"]h$]h&]hhuh1j hj!&hhhj2&hM ubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj&hhhj2&hM ubah}(h]j&ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj2&hM hj&hhubjQ)}(hhh]h)}(hAConditionally duplicates a string into a test managed allocation.h]hAConditionally duplicates a string into a test managed allocation.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hj'hhubah}(h]h ]h"]h$]h&]uh1jPhj&hhhj2&hM ubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsj'jtj'jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``struct kunit *test`` The test context object. ``const char *str`` The NULL-terminated string to duplicate. ``gfp_t gfp`` flags passed to underlying kmalloc(). **Description** Calls kunit_kstrdup() only if **str** is not in the rodata section. Must be freed with kunit_kfree_const() -- not kunit_kfree(). See kstrdup_const() and kunit_kmalloc_array() for more information.h](h)}(h**Parameters**h]j)}(hj'h]h Parameters}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.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.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.hhM hj&(ubj)}(hhh]h)}(h(The NULL-terminated string to duplicate.h]h(The NULL-terminated string to duplicate.}(hjE(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA(hM hjB(ubah}(h]h ]h"]h$]h&]uh1jhj&(ubeh}(h]h ]h"]h$]h&]uh1jhjA(hM hj'ubj)}(h4``gfp_t gfp`` flags passed to underlying kmalloc(). h](j)}(h ``gfp_t gfp``h]j)}(hje(h]h gfp_t gfp}(hjg(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjc(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&]uh1hhjz(hMhj{(ubah}(h]h ]h"]h$]h&]uh1jhj_(ubeh}(h]h ]h"]h$]h&]uh1jhjz(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)}(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.hhMhj'ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_attach_mm (C function)c.kunit_attach_mmhNtauh1hhhhhhNhNubh)}(hhh](h)}(hint kunit_attach_mm (void)h]h)}(hint kunit_attach_mm(void)h](j)}(hinth]hint}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj(hhhj)hMubj)}(hkunit_attach_mmh]j%)}(hkunit_attach_mmh]hkunit_attach_mm}(hj)hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj)ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj(hhhj)hMubj)}(h(void)h]j)}(hvoidh]j)}(hvoidh]hvoid}(hj4)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0)ubah}(h]h ]h"]h$]h&]noemphhhuh1jhj,)ubah}(h]h ]h"]h$]h&]hhuh1j hj(hhhj)hMubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj(hhhj)hMubah}(h]j(ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj)hMhj(hhubjQ)}(hhh]h)}(h7Create and attach a new mm if it doesn't already exist.h]h9Create and attach a new mm if it doesn’t already exist.}(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&]uh1jPhj(hhhj)hMubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjv)jtjv)jujvjwuh1hhhhhhNhNubjy)}(hX**Parameters** ``void`` no arguments **Description** Allocates a :c:type:`struct mm_struct ` and attaches it to **current**. In most cases, call kunit_vm_mmap() without calling kunit_attach_mm() directly. Only necessary when code under test accesses the mm before executing the mmap (e.g., to perform additional initialization beforehand). **Return** 0 on success, -errno on failure.h](h)}(h**Parameters**h]j))}(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.hhMhjz)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&]uh1jhjz)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.hhKhjz)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 ](jUjmc-typeeh"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]refdocja refdomainjmreftypetype refexplicitrefwarnjgjkjo mm_structuh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj)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*hMhjz)ubh)}(h **Return**h]j)}(hj6*h]hReturn}(hj8*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4*ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjz)ubh)}(h 0 on success, -errno on failure.h]h 0 on success, -errno on failure.}(hjL*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjz)ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_vm_mmap (C function)c.kunit_vm_mmaphNtauh1hhhhhhNhNubh)}(hhh](h)}(hunsigned long kunit_vm_mmap (struct kunit *test, struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long offset)h]h)}(hunsigned long kunit_vm_mmap(struct kunit *test, struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long offset)h](j)}(hunsignedh]hunsigned}(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 ]jah"]h$]h&]uh1j hjw*hhhj*hM#ubj)}(hlongh]hlong}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw*hhhj*hM#ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjw*hhhj*hM#ubj)}(h kunit_vm_mmaph]j%)}(h kunit_vm_mmaph]h kunit_vm_mmap}(hj*hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj*ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjw*hhhj*hM#ubj)}(h(struct kunit *test, struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flag, unsigned long offset)h](j)}(hstruct kunit *testh](h)}(hjyh]hstruct}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhj*ubj)}(h h]h }(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubh)}(hhh]j%)}(hkunith]hkunit}(hj*hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj*ubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetj*modnameN classnameNjgjj)}jm]j )}j# j*sbc.kunit_vm_mmapasbuh1hhj*ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj*ubj)}(hjh]h*}(hj +hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj*ubj%)}(htesth]htest}(hj-+hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj*ubj)}(hstruct file *fileh](h)}(hjyh]hstruct}(hjF+hhhNhNubah}(h]h ]jah"]h$]h&]uh1hhjB+ubj)}(h h]h }(hjS+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjB+ubh)}(hhh]j%)}(hfileh]hfile}(hjd+hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hja+ubah}(h]h ]h"]h$]h&] refdomainjmreftypej# reftargetjf+modnameN classnameNjgjj)}jm]j+c.kunit_vm_mmapasbuh1hhjB+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjB+ubj)}(hjh]h*}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjB+ubj%)}(hfileh]hfile}(hj+hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjB+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj*ubj)}(hunsigned long addrh](j)}(hunsignedh]hunsigned}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj)}(hlongh]hlong}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj+ubj%)}(haddrh]haddr}(hj+hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj+ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj*ubj)}(hunsigned long lenh](j)}(hunsignedh]hunsigned}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hlongh]hlong}(hj#,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj1,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj%)}(hlenh]hlen}(hj?,hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj*ubj)}(hunsigned long proth](j)}(hunsignedh]hunsigned}(hjX,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT,ubj)}(h h]h }(hjf,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjT,ubj)}(hlongh]hlong}(hjt,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjT,ubj%)}(hproth]hprot}(hj,hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjT,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj*ubj)}(hunsigned long flagh](j)}(hunsignedh]hunsigned}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hlongh]hlong}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj%)}(hflagh]hflag}(hj,hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj*ubj)}(hunsigned long offseth](j)}(hunsignedh]hunsigned}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj)}(hlongh]hlong}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj$-hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj,ubj%)}(hoffseth]hoffset}(hj2-hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj*ubeh}(h]h ]h"]h$]h&]hhuh1j hjw*hhhj*hM#ubeh}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjs*hhhj*hM#ubah}(h]jn*ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj*hM#hjp*hhubjQ)}(hhh]h)}(h%Allocate KUnit-tracked vm_mmap() areah]h%Allocate KUnit-tracked vm_mmap() area}(hj\-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM#hjY-hhubah}(h]h ]h"]h$]h&]uh1jPhjp*hhhj*hM#ubeh}(h]h ](jmfunctioneh"]h$]h&]jrjmjsjt-jtjt-jujvjwuh1hhhhhhNhNubjy)}(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)}(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'hjx-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>``struct file *file`` struct file pointer to map from, if any h](j)}(h``struct file *file``h]j)}(hj-h]hstruct file *file}(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'struct file pointer to map from, if anyh]h'struct file pointer to map from, if any}(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/``unsigned long addr`` desired address, if any h](j)}(h``unsigned long addr``h]j)}(hj.h]hunsigned long addr}(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)}(hdesired address, if anyh]hdesired address, if any}(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)}(h1``unsigned long len`` how many bytes to allocate h](j)}(h``unsigned long len``h]j)}(hjH.h]hunsigned long len}(hjJ.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF.ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM'hjB.ubj)}(hhh]h)}(hhow many bytes to allocateh]hhow many bytes to allocate}(hja.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj].hM'hj^.ubah}(h]h ]h"]h$]h&]uh1jhjB.ubeh}(h]h ]h"]h$]h&]uh1jhj].hM'hj-ubj)}(h(``unsigned long prot`` mmap PROT_* bits h](j)}(h``unsigned long prot``h]j)}(hj.h]hunsigned long prot}(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)}(hmmap PROT_* bitsh]hmmap PROT_* bits}(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"``unsigned long flag`` mmap flags h](j)}(h``unsigned long flag``h]j)}(hj.h]hunsigned long flag}(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 mmap flagsh]h mmap flags}(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)}(hE``unsigned long offset`` offset into **file** to start mapping from. h](j)}(h``unsigned long offset``h]j)}(hj.h]hunsigned long offset}(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+offset into **file** to start mapping from.h](h offset into }(hj /hhhNhNubj)}(h**file**h]hfile}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj /ubh to start mapping from.}(hj /hhhNhNubeh}(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&]uh1jhjx-ubh)}(h**Description**h]j)}(hj@/h]h Description}(hjB/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,hjx-ubh)}(h#See vm_mmap() for more information.h]h#See vm_mmap() for more information.}(hjV/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM+hjx-ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_mark_skipped (C macro)c.kunit_mark_skippedhNtauh1hhhhhhNhNubh)}(hhh](h)}(hkunit_mark_skippedh]h)}(hkunit_mark_skippedh]j)}(hkunit_mark_skippedh]j%)}(hj/h]hkunit_mark_skipped}(hj/hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj/ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj/hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM8ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj}/hhhj/hM8ubah}(h]jx/ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj/hM8hjz/hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjz/hhhj/hM8ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj/jtj/jujvjwuh1hhhhhhNhNubh)}(h'``kunit_mark_skipped (test, fmt, ...)``h]j)}(hj/h]h#kunit_mark_skipped (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.hhM:hhhhubj)}(hMarks **test** as skipped h]h)}(hMarks **test** as skippedh](hMarks }(hj/hhhNhNubj)}(h**test**h]htest}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubh as skipped}(hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM8hj/ubah}(h]h ]h"]h$]h&]uh1jhj/hM8hhhhubjy)}(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)}(hj0h]h Parameters}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(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)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj!0h]htest}(hj#0hhhNhNubah}(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.hhM:hj0ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj:0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj60hM:hj70ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj60hM:hj0ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hjZ0h]hfmt}(hj\0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX0ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM;hjT0ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hjs0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo0hM;hjp0ubah}(h]h ]h"]h$]h&]uh1jhjT0ubeh}(h]h ]h"]h$]h&]uh1jhjo0hM;hj0ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hj0h]h...}(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.hhKhj0ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hKhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj0hKhj0ubeh}(h]h ]h"]h$]h&]uh1jhj/ubh)}(h**Description**h]j)}(hj0h]h Description}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj/ubh)}(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. }(hj0hhhNhNubj)}(h**fmt**h]hfmt}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubhW is given output as the test status comment, typically the reason the test was skipped.}(hj0hhhNhNubeh}(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>Test execution continues after kunit_mark_skipped() is called.h]h>Test execution continues after kunit_mark_skipped() is called.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM?hj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_skip (C macro) c.kunit_skiphNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_skiph]h)}(h kunit_skiph]j)}(h kunit_skiph]j%)}(hj.1h]h kunit_skip}(hj81hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj41ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj01hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMKubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj,1hhhjK1hMKubah}(h]j'1ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjK1hMKhj)1hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj)1hhhjK1hMKubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjd1jtjd1jujvjwuh1hhhhhhNhNubh)}(h``kunit_skip (test, fmt, ...)``h]j)}(hjj1h]hkunit_skip (test, fmt, ...)}(hjl1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMMhhhhubj)}(hMarks **test** as skipped h]h)}(hMarks **test** as skippedh](hMarks }(hj1hhhNhNubj)}(h**test**h]htest}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubh as skipped}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMKhj1ubah}(h]h ]h"]h$]h&]uh1jhj1hMKhhhhubjy)}(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)}(hj1h]h Parameters}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMOhj1ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj1h]htest}(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.hhMMhj1ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hMMhj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1hMMhj1ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hj 2h]hfmt}(hj 2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMNhj2ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hj"2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMNhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMNhj1ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hjB2h]h...}(hjD2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@2ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj<2ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj[2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjW2hKhjX2ubah}(h]h ]h"]h$]h&]uh1jhj<2ubeh}(h]h ]h"]h$]h&]uh1jhjW2hKhj1ubeh}(h]h ]h"]h$]h&]uh1jhj1ubh)}(h**Description**h]j)}(hj}2h]h Description}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj1ubh)}(hnSkips the test. **fmt** is given output as the test status comment, typically the reason the test was skipped.h](hSkips the test. }(hj2hhhNhNubj)}(h**fmt**h]hfmt}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubhW is given output as the test status comment, typically the reason the test was skipped.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMOhj1ubh)}(h6Test execution is halted after kunit_skip() is called.h]h6Test execution is halted after kunit_skip() is called.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMRhj1ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_info (C macro) c.kunit_infohNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_infoh]h)}(h kunit_infoh]j)}(h kunit_infoh]j%)}(hj2h]h kunit_info}(hj2hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj2ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj2hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMkubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj2hhhj2hMkubah}(h]j2ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj2hMkhj2hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj2hhhj2hMkubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj3jtj3jujvjwuh1hhhhhhNhNubh)}(h``kunit_info (test, fmt, ...)``h]j)}(hj3h]hkunit_info (test, fmt, ...)}(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.hhMmhhhhubj)}(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 }(hj33hhhNhNubj)}(h**test**h]htest}(hj;3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj33ubh.}(hj33hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMkhj/3ubah}(h]h ]h"]h$]h&]uh1jhjS3hMkhhhhubjy)}(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`3h]h Parameters}(hjb3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMohjZ3ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj3h]htest}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMmhjy3ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMmhj3ubah}(h]h ]h"]h$]h&]uh1jhjy3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMmhjv3ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hj3h]hfmt}(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)}(hA printk() style format string.h]hA printk() style format string.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hMnhj3ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3hMnhjv3ubj)}(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}(hj 4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hKhj4ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj4hKhjv3ubeh}(h]h ]h"]h$]h&]uh1jhjZ3ubh)}(h**Description**h]j)}(hj,4h]h Description}(hj.4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*4ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjZ3ubh)}(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().}(hjB4hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMohjZ3ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_warn (C macro) c.kunit_warnhNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_warnh]h)}(h kunit_warnh]j)}(h kunit_warnh]j%)}(hjk4h]h kunit_warn}(hju4hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjq4ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjm4hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMwubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhji4hhhj4hMwubah}(h]jd4ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj4hMwhjf4hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjf4hhhj4hMwubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj4jtj4jujvjwuh1hhhhhhNhNubh)}(h``kunit_warn (test, fmt, ...)``h]j)}(hj4h]hkunit_warn (test, fmt, ...)}(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.hhMyhhhhubj)}(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 }(hj4hhhNhNubj)}(h**test**h]htest}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubh.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMwhj4ubah}(h]h ]h"]h$]h&]uh1jhj4hMwhhhhubjy)}(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)}(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.hhM{hj4ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj 5h]htest}(hj5hhhNhNubah}(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.hhMyhj5ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj&5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"5hMyhj#5ubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhj"5hMyhj5ubj)}(h(``fmt`` A printk() style format string. h](j)}(h``fmt``h]j)}(hjF5h]hfmt}(hjH5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjD5ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMzhj@5ubj)}(hhh]h)}(hA printk() style format string.h]hA printk() style format string.}(hj_5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj[5hMzhj\5ubah}(h]h ]h"]h$]h&]uh1jhj@5ubeh}(h]h ]h"]h$]h&]uh1jhj[5hMzhj5ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hj5h]h...}(hj5hhhNhNubah}(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.hhKhjy5ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hKhj5ubah}(h]h ]h"]h$]h&]uh1jhjy5ubeh}(h]h ]h"]h$]h&]uh1jhj5hKhj5ubeh}(h]h ]h"]h$]h&]uh1jhj4ubh)}(h**Description**h]j)}(hj5h]h Description}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj4ubh)}(hPrints a warning level message.h]hPrints a warning level message.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM{hj4ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hkunit_err (C macro) c.kunit_errhNtauh1hhhhhhNhNubh)}(hhh](h)}(h kunit_errh]h)}(h kunit_errh]j)}(h kunit_errh]j%)}(hj5h]h kunit_err}(hj6hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj5ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj5hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj5hhhj6hMubah}(h]j5ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj6hMhj5hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj5hhhj6hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj/6jtj/6jujvjwuh1hhhhhhNhNubh)}(h``kunit_err (test, fmt, ...)``h]j)}(hj56h]hkunit_err (test, fmt, ...)}(hj76hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj36ubah}(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 }(hjO6hhhNhNubj)}(h**test**h]htest}(hjW6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjO6ubh.}(hjO6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjK6ubah}(h]h ]h"]h$]h&]uh1jhjo6hMhhhhubjy)}(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)}(hj|6h]h Parameters}(hj~6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjz6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjv6ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj6h]htest}(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)}(hThe test context object.h]hThe test context object.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhj6ubj)}(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&]uh1jhj6hMhj6ubj)}(h``...`` variable arguments h](j)}(h``...``h]j)}(hj 7h]h...}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 7ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhj7ubj)}(hhh]h)}(hvariable argumentsh]hvariable arguments}(hj&7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"7hKhj#7ubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj"7hKhj6ubeh}(h]h ]h"]h$]h&]uh1jhjv6ubh)}(h**Description**h]j)}(hjH7h]h Description}(hjJ7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhKhjv6ubh)}(hPrints an error level message.h]hPrints an error level message.}(hj^7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjv6ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_SUCCEED (C macro)c.KUNIT_SUCCEEDhNtauh1hhhhhhNhNubh)}(hhh](h)}(h KUNIT_SUCCEEDh]h)}(h KUNIT_SUCCEEDh]j)}(h KUNIT_SUCCEEDh]j%)}(hj7h]h KUNIT_SUCCEED}(hj7hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj7ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj7hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj7hhhj7hMubah}(h]j7ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj7hMhj7hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj7hhhj7hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj7jtj7jujvjwuh1hhhhhhNhNubh)}(h``KUNIT_SUCCEED (test)``h]j)}(hj7h]hKUNIT_SUCCEED (test)}(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)}(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.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj7ubah}(h]h ]h"]h$]h&]uh1jhj7hMhhhhubjy)}(h**Parameters** ``test`` The test context object. **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)}(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}(hj8hhhNhNubah}(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.}(hj08hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj,8hMhj-8ubah}(h]h ]h"]h$]h&]uh1jhj8ubeh}(h]h ]h"]h$]h&]uh1jhj,8hMhj8ubah}(h]h ]h"]h$]h&]uh1jhj7ubh)}(h**Description**h]j)}(hjR8h]h Description}(hjT8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjP8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj7ubh)}(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.}(hjh8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj7ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_FAIL (C macro) c.KUNIT_FAILhNtauh1hhhhhhNhNubh)}(hhh](h)}(h KUNIT_FAILh]h)}(h KUNIT_FAILh]j)}(h KUNIT_FAILh]j%)}(hj8h]h KUNIT_FAIL}(hj8hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj8ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj8hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj8hhhj8hMubah}(h]j8ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj8hMhj8hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj8hhhj8hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj8jtj8jujvjwuh1hhhhhhNhNubh)}(h``KUNIT_FAIL (test, fmt, ...)``h]j)}(hj8h]hKUNIT_FAIL (test, fmt, ...)}(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.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.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj8ubah}(h]h ]h"]h$]h&]uh1jhj8hMhhhhubjy)}(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)}(hj9h]h Parameters}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj8ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj!9h]htest}(hj#9hhhNhNubah}(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.}(hj:9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj69hMhj79ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj69hMhj9ubj)}(hK``fmt`` an informational message to be printed when the assertion is made. h](j)}(h``fmt``h]j)}(hjZ9h]hfmt}(hj\9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX9ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjT9ubj)}(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.}(hjs9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjo9hMhjp9ubah}(h]h ]h"]h$]h&]uh1jhjT9ubeh}(h]h ]h"]h$]h&]uh1jhjo9hMhj9ubj)}(h!``...`` string format arguments. h](j)}(h``...``h]j)}(hj9h]h...}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj9ubj)}(hhh]h)}(hstring format arguments.h]hstring format arguments.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj9hMhj9ubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj9hMhj9ubeh}(h]h ]h"]h$]h&]uh1jhj8ubh)}(h**Description**h]j)}(hj9h]h Description}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj8ubh)}(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.}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj8ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_TRUE (C macro)c.KUNIT_EXPECT_TRUEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_TRUEh]h)}(hKUNIT_EXPECT_TRUEh]j)}(hKUNIT_EXPECT_TRUEh]j%)}(hj :h]hKUNIT_EXPECT_TRUE}(hj:hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj:ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj:hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj :hhhj*:hMubah}(h]j:ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj*:hMhj:hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj:hhhj*:hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjC:jtjC:jujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_TRUE (test, condition)``h]j)}(hjI:h]h#KUNIT_EXPECT_TRUE (test, condition)}(hjK:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjG: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.}(hjc: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&]uh1jhjq:hMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``condition`` an arbitrary boolean expression. The test fails when this does not evaluate to true. **Description** This and expectations of the form `KUNIT_EXPECT_*` will cause the test case to fail when the specified condition is not met; however, it will not prevent the test case from continuing to run; this is otherwise known as an *expectation failure*.h](h)}(h**Parameters**h]j)}(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.hhMhjx: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&]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.hhMhjx: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_*}(hj0;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}(hjB;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.hhMhjx:ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_FALSE (C macro)c.KUNIT_EXPECT_FALSEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_FALSEh]h)}(hKUNIT_EXPECT_FALSEh]j)}(hKUNIT_EXPECT_FALSEh]j%)}(hju;h]hKUNIT_EXPECT_FALSE}(hj;hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj{;ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjw;hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjs;hhhj;hMubah}(h]jn;ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj;hMhjp;hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjp;hhhj;hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj;jtj;jujvjwuh1hhhhhhNhNubh)}(h(``KUNIT_EXPECT_FALSE (test, condition)``h]j)}(hj;h]h$KUNIT_EXPECT_FALSE (test, condition)}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h7Makes a test failure when the expression is not false. h]h)}(h6Makes a test failure when the expression is not false.h]h6Makes a test failure when the expression is not false.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;ubah}(h]h ]h"]h$]h&]uh1jhj;hMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``condition`` an arbitrary boolean expression. The test fails when this does not evaluate to false. **Description** Sets an expectation that **condition** evaluates to false. See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj;h]h Parameters}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj<h]htest}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj;ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj<hMhj<ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj<hMhj;ubj)}(hd``condition`` an arbitrary boolean expression. The test fails when this does not evaluate to false. h](j)}(h ``condition``h]j)}(hj><h]h condition}(hj@<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<<ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj8<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.}(hjW<hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjT<ubah}(h]h ]h"]h$]h&]uh1jhj8<ubeh}(h]h ]h"]h$]h&]uh1jhjS<hMhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;ubh)}(h**Description**h]j)}(hjz<h]h Description}(hj|<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx<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&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_EQ (C macro)c.KUNIT_EXPECT_EQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_EQh]h)}(hKUNIT_EXPECT_EQh]j)}(hKUNIT_EXPECT_EQh]j%)}(hj<h]hKUNIT_EXPECT_EQ}(hj<hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj<ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj<hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj<hhhj<hMubah}(h]j<ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj<hMhj<hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj<hhhj<hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj=jtj=jujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_EQ (test, left, right)``h]j)}(hj=h]h#KUNIT_EXPECT_EQ (test, left, right)}(hj =hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h;Sets an expectation that **left** and **right** are equal. h]h)}(h:Sets an expectation that **left** and **right** are equal.h](hSets an expectation that }(hj!=hhhNhNubj)}(h**left**h]hleft}(hj)=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!=ubh and }(hj!=hhhNhNubj)}(h **right**h]hright}(hj;=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!=ubh are equal.}(hj!=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj=ubah}(h]h ]h"]h$]h&]uh1jhjS=hMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an expectation that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(**test**, (**left**) == (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(hj`=h]h Parameters}(hjb=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.hhMhjZ=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.hhMhjy=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&]uh1jhjy=ubeh}(h]h ]h"]h$]h&]uh1jhj=hMhjv=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=hMhjv=ubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hj=h]hright}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj=ubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hj >hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>hMhj>ubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhj>hMhjv=ubeh}(h]h ]h"]h$]h&]uh1jhjZ=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.hhMhjZ=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 }(hjB>hhhNhNubj)}(h**left**h]hleft}(hjJ>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB>ubh and }(hjB>hhhNhNubj)}(h **right**h]hright}(hj\>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB>ubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjB>hhhNhNubj)}(h**test**h]htest}(hjn>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB>ubh, (}(hjB>hhhNhNubj)}(h**left**h]hleft}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB>ubh) == (}(hjB>hhhNhNubj)}(h **right**h]hright}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB>ubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjB>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjZ=ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_PTR_EQ (C macro)c.KUNIT_EXPECT_PTR_EQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_PTR_EQh]h)}(hKUNIT_EXPECT_PTR_EQh]j)}(hKUNIT_EXPECT_PTR_EQh]j%)}(hj>h]hKUNIT_EXPECT_PTR_EQ}(hj>hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj>ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj>hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj>hhhj>hMubah}(h]j>ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj>hMhj>hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj>hhhj>hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj>jtj>jujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_EXPECT_PTR_EQ (test, left, right)``h]j)}(hj?h]h'KUNIT_EXPECT_PTR_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)}(h8Expects that pointers **left** and **right** are equal. h]h)}(h7Expects that pointers **left** and **right** are equal.h](hExpects that pointers }(hj?hhhNhNubj)}(h**left**h]hleft}(hj#?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubh and }(hj?hhhNhNubj)}(h **right**h]hright}(hj5?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&]uh1jhjM?hMhhhhubjy)}(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)}(hjZ?h]h Parameters}(hj\?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjX?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjT?ubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjy?h]htest}(hj{?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjw?ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjs?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&]uh1jhjs?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhjp?ubj)}(h>``left`` an arbitrary expression that evaluates to a pointer. 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)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhjp?ubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. 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)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj@hMhj@ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj@hMhjp?ubeh}(h]h ]h"]h$]h&]uh1jhjT?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.hhMhjT?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<@hhhNhNubj)}(h**left**h]hleft}(hjD@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<@ubh and }(hj<@hhhNhNubj)}(h **right**h]hright}(hjV@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<@ubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj<@hhhNhNubj)}(h**test**h]htest}(hjh@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<@ubh, (}(hj<@hhhNhNubj)}(h**left**h]hleft}(hjz@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<@ubh) == (}(hj<@hhhNhNubj)}(h **right**h]hright}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj<@ubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj<@hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjT?ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NE (C macro)c.KUNIT_EXPECT_NEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_NEh]h)}(hKUNIT_EXPECT_NEh]j)}(hKUNIT_EXPECT_NEh]j%)}(hj@h]hKUNIT_EXPECT_NE}(hj@hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj@ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj@hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj@hhhj@hMubah}(h]j@ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj@hMhj@hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj@hhhj@hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj@jtj@jujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_NE (test, left, right)``h]j)}(hj@h]h#KUNIT_EXPECT_NE (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:An expectation that **left** and **right** are not equal. h]h)}(h9An expectation that **left** and **right** are not equal.h](hAn expectation that }(hjAhhhNhNubj)}(h**left**h]hleft}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubh and }(hjAhhhNhNubj)}(h **right**h]hright}(hj/AhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubh are not equal.}(hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjAubah}(h]h ]h"]h$]h&]uh1jhjGAhMhhhhubjy)}(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)}(hjTAh]h Parameters}(hjVAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjRAubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjNAubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjsAh]htest}(hjuAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqAubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjmAubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhMhjAubah}(h]h ]h"]h$]h&]uh1jhjmAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjjAubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjAh]hleft}(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.hhMhjAubj)}(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&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjjAubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjAh]hright}(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.hhMhjAubj)}(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&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjAhMhjjAubeh}(h]h ]h"]h$]h&]uh1jhjNAubh)}(h**Description**h]j)}(hj Bh]h Description}(hj"BhhhNhNubah}(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.hhMhjNAubh)}(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 }(hj6BhhhNhNubj)}(h**left**h]hleft}(hj>BhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Bubh and }(hj6BhhhNhNubj)}(h **right**h]hright}(hjPBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6BubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj6BhhhNhNubj)}(h**test**h]htest}(hjbBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Bubh, (}(hj6BhhhNhNubj)}(h**left**h]hleft}(hjtBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Bubh) != (}(hj6BhhhNhNubj)}(h **right**h]hright}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6Bubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj6BhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjNAubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_PTR_NE (C macro)c.KUNIT_EXPECT_PTR_NEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_PTR_NEh]h)}(hKUNIT_EXPECT_PTR_NEh]j)}(hKUNIT_EXPECT_PTR_NEh]j%)}(hjBh]hKUNIT_EXPECT_PTR_NE}(hjBhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjBubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjBhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjBhhhjBhMubah}(h]jBah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjBhMhjBhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjBhhhjBhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjBjtjBjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_EXPECT_PTR_NE (test, left, right)``h]j)}(hjBh]h'KUNIT_EXPECT_PTR_NE (test, left, right)}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hhhhubj)}(h``left`` an arbitrary expression that evaluates to a pointer. h](j)}(h``left``h]j)}(hjCh]hleft}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjCubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChM hjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChM hjdCubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. h](j)}(h ``right``h]j)}(hjCh]hright}(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.hhM hjCubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjChM hjCubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhjChM hjdCubeh}(h]h ]h"]h$]h&]uh1jhjHCubh)}(h**Description**h]j)}(hjDh]h Description}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjHCubh)}(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 }(hj0DhhhNhNubj)}(h**left**h]hleft}(hj8DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Dubh and }(hj0DhhhNhNubj)}(h **right**h]hright}(hjJDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0DubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj0DhhhNhNubj)}(h**test**h]htest}(hj\DhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Dubh, (}(hj0DhhhNhNubj)}(h**left**h]hleft}(hjnDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Dubh) != (}(hj0DhhhNhNubj)}(h **right**h]hright}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0Dubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj0DhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM hjHCubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_LT (C macro)c.KUNIT_EXPECT_LThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_LTh]h)}(hKUNIT_EXPECT_LTh]j)}(hKUNIT_EXPECT_LTh]j%)}(hjDh]hKUNIT_EXPECT_LT}(hjDhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjDubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjDhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjDhhhjDhMubah}(h]jDah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjDhMhjDhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjDhhhjDhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjDjtjDjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_LT (test, left, right)``h]j)}(hjDh]h#KUNIT_EXPECT_LT (test, left, right)}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h5An expectation that **left** is less than **right**. h]h)}(h4An expectation that **left** is less than **right**.h](hAn expectation that }(hj EhhhNhNubj)}(h**left**h]hleft}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Eubh is less than }(hj EhhhNhNubj)}(h **right**h]hright}(hj#EhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Eubh.}(hj EhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjEubah}(h]h ]h"]h$]h&]uh1jhj;EhMhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a primitive C type. ``right`` an arbitrary expression that evaluates to a primitive C type. **Description** Sets an 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)}(hjHEh]h Parameters}(hjJEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFEubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM!hjBEubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjgEh]htest}(hjiEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeEubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjaEubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|EhMhj}Eubah}(h]h ]h"]h$]h&]uh1jhjaEubeh}(h]h ]h"]h$]h&]uh1jhj|EhMhj^Eubj)}(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&]uh1jhjEhMhj^Eubj)}(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.hhM hjEubj)}(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&]uh1hhjEhM hjEubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjEhM hj^Eubeh}(h]h ]h"]h$]h&]uh1jhjBEubh)}(h**Description**h]j)}(hjFh]h Description}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM"hjBEubh)}(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*FhhhNhNubj)}(h**left**h]hleft}(hj2FhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*Fubh* evaluates to is less than the value that }(hj*FhhhNhNubj)}(h **right**h]hright}(hjDFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*FubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj*FhhhNhNubj)}(h**test**h]htest}(hjVFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*Fubh, (}(hj*FhhhNhNubj)}(h**left**h]hleft}(hjhFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*Fubh) < (}(hj*FhhhNhNubj)}(h **right**h]hright}(hjzFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*Fubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj*FhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM!hjBEubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_LE (C macro)c.KUNIT_EXPECT_LEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_LEh]h)}(hKUNIT_EXPECT_LEh]j)}(hKUNIT_EXPECT_LEh]j%)}(hjFh]hKUNIT_EXPECT_LE}(hjFhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjFubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjFhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM2ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjFhhhjFhM2ubah}(h]jFah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjFhM2hjFhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjFhhhjFhM2ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjFjtjFjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_LE (test, left, right)``h]j)}(hjFh]h#KUNIT_EXPECT_LE (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.hhM4hhhhubj)}(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 }(hjGhhhNhNubj)}(h**left**h]hleft}(hj GhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh is less than or equal to }(hjGhhhNhNubj)}(h **right**h]hright}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh.}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM2hjFubah}(h]h ]h"]h$]h&]uh1jhj5GhM2hhhhubjy)}(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)}(hjBGh]h Parameters}(hjDGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@Gubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM6hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$HubhD evaluates to. Semantically this is equivalent to KUNIT_EXPECT_TRUE(}(hj$HhhhNhNubj)}(h**test**h]htest}(hjPHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Hubh, (}(hj$HhhhNhNubj)}(h**left**h]hleft}(hjbHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Hubh) <= (}(hj$HhhhNhNubj)}(h **right**h]hright}(hjtHhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$Hubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hj$HhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM6hj (**right**)). See KUNIT_EXPECT_TRUE() for more information.h](h)}(h**Parameters**h]j)}(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.hhMKhj6Iubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj[Ih]htest}(hj]IhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYIubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMHhjUIubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjtIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjpIhMHhjqIubah}(h]h ]h"]h$]h&]uh1jhjUIubeh}(h]h ]h"]h$]h&]uh1jhjpIhMHhjRIubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjIh]hleft}(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.hhMIhjIubj)}(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&]uh1hhjIhMIhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhMIhjRIubj)}(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.hhMJhjIubj)}(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&]uh1hhjIhMJhjIubah}(h]h ]h"]h$]h&]uh1jhjIubeh}(h]h ]h"]h$]h&]uh1jhjIhMJhjRIubeh}(h]h ]h"]h$]h&]uh1jhj6Iubh)}(h**Description**h]j)}(hjJh]h Description}(hj JhhhNhNubah}(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.hhMLhj6Iubh)}(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 }(hjJhhhNhNubj)}(h**left**h]hleft}(hj&JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh- evaluates to is greater than the value that }(hjJhhhNhNubj)}(h **right**h]hright}(hj8JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjJhhhNhNubj)}(h**test**h]htest}(hjJJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh, (}(hjJhhhNhNubj)}(h**left**h]hleft}(hj\JhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh) > (}(hjJhhhNhNubj)}(h **right**h]hright}(hjnJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMKhj6Iubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_GE (C macro)c.KUNIT_EXPECT_GEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_GEh]h)}(hKUNIT_EXPECT_GEh]j)}(hKUNIT_EXPECT_GEh]j%)}(hjJh]hKUNIT_EXPECT_GE}(hjJhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjJubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjJhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM\ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjJhhhjJhM\ubah}(h]jJah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjJhM\hjJhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjJhhhjJhM\ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjJjtjJjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_EXPECT_GE (test, left, right)``h]j)}(hjJh]h#KUNIT_EXPECT_GE (test, left, right)}(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.hhM^hhhhubj)}(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)}(hj6Kh]h Parameters}(hj8KhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Kubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM`hj0Kubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjUKh]htest}(hjWKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSKubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM]hjOKubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjnKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjKhM]hjkKubah}(h]h ]h"]h$]h&]uh1jhjOKubeh}(h]h ]h"]h$]h&]uh1jhjjKhM]hjLKubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjKh]hleft}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM^hjKubj)}(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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhM^hjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhM^hjLKubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjKh]hright}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM_hjKubj)}(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.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKhM_hjKubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjKhM_hjLKubeh}(h]h ]h"]h$]h&]uh1jhj0Kubh)}(h**Description**h]j)}(hjLh]h Description}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMahj0Kubh)}(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 }(hjLhhhNhNubj)}(h**left**h]hleft}(hj LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh- evaluates to is greater than the value that }(hjLhhhNhNubj)}(h **right**h]hright}(hj2LhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubhD evaluates to. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjLhhhNhNubj)}(h**test**h]htest}(hjDLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh, (}(hjLhhhNhNubj)}(h**left**h]hleft}(hjVLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh) >= (}(hjLhhhNhNubj)}(h **right**h]hright}(hjhLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM`hj0Kubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_STREQ (C macro)c.KUNIT_EXPECT_STREQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_STREQh]h)}(hKUNIT_EXPECT_STREQh]j)}(hKUNIT_EXPECT_STREQh]j%)}(hjLh]hKUNIT_EXPECT_STREQ}(hjLhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjLubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjLhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMqubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjLhhhjLhMqubah}(h]jLah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjLhMqhjLhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjLhhhjLhMqubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjLjtjLjujvjwuh1hhhhhhNhNubh)}(h*``KUNIT_EXPECT_STREQ (test, left, right)``h]j)}(hjLh]h&KUNIT_EXPECT_STREQ (test, left, right)}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMshhhhubj)}(h7Expects that strings **left** and **right** are equal. h]h)}(h6Expects that strings **left** and **right** are equal.h](hExpects that strings }(hjLhhhNhNubj)}(h**left**h]hleft}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh and }(hjLhhhNhNubj)}(h **right**h]hright}(hj MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjLubh are equal.}(hjLhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMqhjLubah}(h]h ]h"]h$]h&]uh1jhj#MhMqhhhhubjy)}(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)}(hj0Mh]h Parameters}(hj2MhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.Mubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMuhj*Mubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjOMh]htest}(hjQMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMMubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMrhjIMubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjhMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdMhMrhjeMubah}(h]h ]h"]h$]h&]uh1jhjIMubeh}(h]h ]h"]h$]h&]uh1jhjdMhMrhjFMubj)}(hM``left`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h``left``h]j)}(hjMh]hleft}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMshjMubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMshjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhMshjFMubj)}(hN``right`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h ``right``h]j)}(hjMh]hright}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjMubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMthjMubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMthjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhMthjFMubeh}(h]h ]h"]h$]h&]uh1jhj*Mubh)}(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.hhMvhj*Mubh)}(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 }(hjNhhhNhNubj)}(h**left**h]hleft}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh and }(hjNhhhNhNubj)}(h **right**h]hright}(hj,NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjNhhhNhNubj)}(h**test**h]htest}(hj>NhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh , !strcmp((}(hjNhhhNhNubj)}(h**left**h]hleft}(hjPNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh), (}(hjNhhhNhNubj)}(h **right**h]hright}(hjbNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hjNhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMuhj*Mubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_STRNEQ (C macro)c.KUNIT_EXPECT_STRNEQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_STRNEQh]h)}(hKUNIT_EXPECT_STRNEQh]j)}(hKUNIT_EXPECT_STRNEQh]j%)}(hjNh]hKUNIT_EXPECT_STRNEQ}(hjNhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjNubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjNhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjNhhhjNhMubah}(h]jNah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjNhMhjNhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjNhhhjNhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjNjtjNjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_EXPECT_STRNEQ (test, left, right)``h]j)}(hjNh]h'KUNIT_EXPECT_STRNEQ (test, left, right)}(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.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 }(hjNhhhNhNubj)}(h**left**h]hleft}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh and }(hjNhhhNhNubj)}(h **right**h]hright}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubh are not equal.}(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&]uh1jhjOhMhhhhubjy)}(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*Oh]h Parameters}(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.hhMhj$Oubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjIOh]htest}(hjKOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGOubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjCOubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjbOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj^OhMhj_Oubah}(h]h ]h"]h$]h&]uh1jhjCOubeh}(h]h ]h"]h$]h&]uh1jhj^OhMhj@Oubj)}(hM``left`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h``left``h]j)}(hjOh]hleft}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj|Oubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhMhjOubah}(h]h ]h"]h$]h&]uh1jhj|Oubeh}(h]h ]h"]h$]h&]uh1jhjOhMhj@Oubj)}(hN``right`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h ``right``h]j)}(hjOh]hright}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjOubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjOhMhjOubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjOhMhj@Oubeh}(h]h ]h"]h$]h&]uh1jhj$Oubh)}(h**Description**h]j)}(hjOh]h Description}(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.hhMhj$Oubh)}(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 }(hj PhhhNhNubj)}(h**left**h]hleft}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Pubh and }(hj PhhhNhNubj)}(h **right**h]hright}(hj&PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj PubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hj PhhhNhNubj)}(h**test**h]htest}(hj8PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Pubh , strcmp((}(hj PhhhNhNubj)}(h**left**h]hleft}(hjJPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Pubh), (}(hj PhhhNhNubj)}(h **right**h]hright}(hj\PhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj Pubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hj PhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj$Oubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_MEMEQ (C macro)c.KUNIT_EXPECT_MEMEQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_MEMEQh]h)}(hKUNIT_EXPECT_MEMEQh]j)}(hKUNIT_EXPECT_MEMEQh]j%)}(hjPh]hKUNIT_EXPECT_MEMEQ}(hjPhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjPubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjPhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjPhhhjPhMubah}(h]jPah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjPhMhjPhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjPhhhjPhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjPjtjPjujvjwuh1hhhhhhNhNubh)}(h0``KUNIT_EXPECT_MEMEQ (test, left, right, size)``h]j)}(hjPh]h,KUNIT_EXPECT_MEMEQ (test, left, right, size)}(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.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 }(hjPhhhNhNubj)}(h**size**h]hsize}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh bytes of }(hjPhhhNhNubj)}(h**left**h]hleft}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh and }(hjPhhhNhNubj)}(h **right**h]hright}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubh are equal.}(hjPhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjPubah}(h]h ]h"]h$]h&]uh1jhj)QhMhhhhubjy)}(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)}(hj6Qh]h Parameters}(hj8QhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Qubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj0Qubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjUQh]htest}(hjWQhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSQubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjOQubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjnQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjQhMhjkQubah}(h]h ]h"]h$]h&]uh1jhjOQubeh}(h]h ]h"]h$]h&]uh1jhjjQhMhjLQubj)}(hG``left`` An arbitrary expression that evaluates to the specified size. h](j)}(h``left``h]j)}(hjQh]hleft}(hjQhhhNhNubah}(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.hhMhjQubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhMhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjLQubj)}(hH``right`` An arbitrary expression that evaluates to the specified size. h](j)}(h ``right``h]j)}(hjQh]hright}(hjQhhhNhNubah}(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.hhMhjQubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhMhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjLQubj)}(h#``size`` Number of bytes compared. h](j)}(h``size``h]j)}(hjRh]hsize}(hjRhhhNhNubah}(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.hhMhjQubj)}(hhh]h)}(hNumber of bytes compared.h]hNumber of bytes compared.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjRhMhjRubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjRhMhjLQubeh}(h]h ]h"]h$]h&]uh1jhj0Qubh)}(h**Description**h]j)}(hj;Rh]h Description}(hj=RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9Rubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj0Qubh)}(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 }(hjQRhhhNhNubj)}(h**left**h]hleft}(hjYRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQRubh and }(hjQRhhhNhNubj)}(h **right**h]hright}(hjkRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQRubhM evaluate to are equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjQRhhhNhNubj)}(h**test**h]htest}(hj}RhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQRubh , !memcmp((}(hjQRhhhNhNubj)}(h**left**h]hleft}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQRubh), (}(hjQRhhhNhNubj)}(h **right**h]hright}(hjRhhhNhNubah}( h]h ]h"]h$]h&]uh1jhjQRubh), (}hjQRsbj)}(h**size**h]hsize}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQRubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hjQRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj0Qubh)}(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.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj0Qubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_MEMNEQ (C macro)c.KUNIT_EXPECT_MEMNEQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_MEMNEQh]h)}(hKUNIT_EXPECT_MEMNEQh]j)}(hKUNIT_EXPECT_MEMNEQh]j%)}(hjRh]hKUNIT_EXPECT_MEMNEQ}(hjRhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjRubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjRhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjRhhhjShMubah}(h]jRah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjShMhjRhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjRhhhjShMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj+Sjtj+Sjujvjwuh1hhhhhhNhNubh)}(h1``KUNIT_EXPECT_MEMNEQ (test, left, right, size)``h]j)}(hj1Sh]h-KUNIT_EXPECT_MEMNEQ (test, left, right, size)}(hj3ShhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/Subah}(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 }(hjKShhhNhNubj)}(h**size**h]hsize}(hjSShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKSubh bytes of }(hjKShhhNhNubj)}(h**left**h]hleft}(hjeShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKSubh and }(hjKShhhNhNubj)}(h **right**h]hright}(hjwShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKSubh are not equal.}(hjKShhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjGSubah}(h]h ]h"]h$]h&]uh1jhjShMhhhhubjy)}(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)}(hjSh]h Parameters}(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.hhMhjSubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjSh]htest}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjSubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjShMhjSubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhjShMhjSubj)}(hG``left`` An arbitrary expression that evaluates to the specified size. h](j)}(h``left``h]j)}(hjSh]hleft}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjSubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hj ThhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ThMhj Tubah}(h]h ]h"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]uh1jhj ThMhjSubj)}(hH``right`` An arbitrary expression that evaluates to the specified size. h](j)}(h ``right``h]j)}(hj-Th]hright}(hj/ThhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+Tubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj'Tubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjFThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBThMhjCTubah}(h]h ]h"]h$]h&]uh1jhj'Tubeh}(h]h ]h"]h$]h&]uh1jhjBThMhjSubj)}(h#``size`` Number of bytes compared. h](j)}(h``size``h]j)}(hjfTh]hsize}(hjhThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdTubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj`Tubj)}(hhh]h)}(hNumber of bytes compared.h]hNumber of bytes compared.}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhj{ThMhj|Tubah}(h]h ]h"]h$]h&]uh1jhj`Tubeh}(h]h ]h"]h$]h&]uh1jhj{ThMhjSubeh}(h]h ]h"]h$]h&]uh1jhjSubh)}(h**Description**h]j)}(hjTh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjSubh)}(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 }(hjThhhNhNubj)}(h**left**h]hleft}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh and }(hjThhhNhNubj)}(h **right**h]hright}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjThhhNhNubj)}(h**test**h]htest}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh , memcmp((}(hjThhhNhNubj)}(h**left**h]hleft}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh), (}(hjThhhNhNubj)}(h **right**h]hright}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh), (}hjTsbj)}(h**size**h]hsize}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh2))). See KUNIT_EXPECT_TRUE() for more information.}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjSubh)}(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.}(hj2UhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjSubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NULL (C macro)c.KUNIT_EXPECT_NULLhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_NULLh]h)}(hKUNIT_EXPECT_NULLh]j)}(hKUNIT_EXPECT_NULLh]j%)}(hj[Uh]hKUNIT_EXPECT_NULL}(hjeUhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjaUubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj]Uhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjYUhhhjxUhMubah}(h]jTUah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjxUhMhjVUhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjVUhhhjxUhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjUjtjUjujvjwuh1hhhhhhNhNubh)}(h!``KUNIT_EXPECT_NULL (test, ptr)``h]j)}(hjUh]hKUNIT_EXPECT_NULL (test, ptr)}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hExpects that **ptr** is null. h]h)}(hExpects that **ptr** is null.h](h Expects that }(hjUhhhNhNubj)}(h**ptr**h]hptr}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubh is null.}(hjUhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjUubah}(h]h ]h"]h$]h&]uh1jhjUhMhhhhubjy)}(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)}(hjUh]h Parameters}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjUubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjUh]htest}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjUubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVhMhjVubah}(h]h ]h"]h$]h&]uh1jhjUubeh}(h]h ]h"]h$]h&]uh1jhjVhMhjUubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hj6Vh]hptr}(hj8VhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4Vubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj0Vubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hjOVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKVhMhjLVubah}(h]h ]h"]h$]h&]uh1jhj0Vubeh}(h]h ]h"]h$]h&]uh1jhjKVhMhjUubeh}(h]h ]h"]h$]h&]uh1jhjUubh)}(h**Description**h]j)}(hjqVh]h Description}(hjsVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoVubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjUubh)}(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 }(hjVhhhNhNubj)}(h**ptr**h]hptr}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubhN evaluates to is null. This is semantically equivalent to KUNIT_EXPECT_PTR_EQ(}(hjVhhhNhNubj)}(h**test**h]htest}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjVubh;, ptr, NULL). See KUNIT_EXPECT_TRUE() for more information.}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjUubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_EXPECT_NOT_NULL (C macro)c.KUNIT_EXPECT_NOT_NULLhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_EXPECT_NOT_NULLh]h)}(hKUNIT_EXPECT_NOT_NULLh]j)}(hKUNIT_EXPECT_NOT_NULLh]j%)}(hjVh]hKUNIT_EXPECT_NOT_NULL}(hjVhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjVubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjVhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjVhhhjVhMubah}(h]jVah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjVhMhjVhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjVhhhjVhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj Wjtj Wjujvjwuh1hhhhhhNhNubh)}(h%``KUNIT_EXPECT_NOT_NULL (test, ptr)``h]j)}(hjWh]h!KUNIT_EXPECT_NOT_NULL (test, ptr)}(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.hhMhhhhubj)}(h"Expects that **ptr** is not null. h]h)}(h!Expects that **ptr** is not null.h](h Expects that }(hj*WhhhNhNubj)}(h**ptr**h]hptr}(hj2WhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*Wubh is not null.}(hj*WhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj&Wubah}(h]h ]h"]h$]h&]uh1jhjJWhMhhhhubjy)}(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)}(hjWWh]h Parameters}(hjYWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUWubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjQWubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjvWh]htest}(hjxWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjtWubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjpWubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjWubah}(h]h ]h"]h$]h&]uh1jhjpWubeh}(h]h ]h"]h$]h&]uh1jhjWhMhjmWubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hjWh]hptr}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjWubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhMhjWubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1jhjWhMhjmWubeh}(h]h ]h"]h$]h&]uh1jhjQWubh)}(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.hhMhjQWubh)}(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 }(hjXhhhNhNubj)}(h**ptr**h]hptr}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubhR evaluates to is not null. This is semantically equivalent to KUNIT_EXPECT_PTR_NE(}(hjXhhhNhNubj)}(h**test**h]htest}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh;, ptr, NULL). See KUNIT_EXPECT_TRUE() for more information.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjQWubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(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](h)}(hKUNIT_EXPECT_NOT_ERR_OR_NULLh]h)}(hKUNIT_EXPECT_NOT_ERR_OR_NULLh]j)}(hKUNIT_EXPECT_NOT_ERR_OR_NULLh]j%)}(hjMXh]hKUNIT_EXPECT_NOT_ERR_OR_NULL}(hjWXhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjSXubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjOXhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjKXhhhjjXhMubah}(h]jFXah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjjXhMhjHXhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjHXhhhjjXhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjXjtjXjujvjwuh1hhhhhhNhNubh)}(h,``KUNIT_EXPECT_NOT_ERR_OR_NULL (test, ptr)``h]j)}(hjXh]h(KUNIT_EXPECT_NOT_ERR_OR_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)}(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 }(hjXhhhNhNubj)}(h**ptr**h]hptr}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh is not null and not err.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjXubah}(h]h ]h"]h$]h&]uh1jhjXhMhhhhubjy)}(hX]**Parameters** ``test`` The test context object. ``ptr`` an arbitrary pointer. **Description** Sets an expectation that the value that **ptr** evaluates to is 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)}(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.hhMhjXubj)}(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&]uh1hhjYhMhjYubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjYhMhjXubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hj(Yh]hptr}(hj*YhhhNhNubah}(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.}(hjAYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj=YhMhj>Yubah}(h]h ]h"]h$]h&]uh1jhj"Yubeh}(h]h ]h"]h$]h&]uh1jhj=YhMhjXubeh}(h]h ]h"]h$]h&]uh1jhjXubh)}(h**Description**h]j)}(hjcYh]h Description}(hjeYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaYubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjXubh)}(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 }(hjyYhhhNhNubj)}(h**ptr**h]hptr}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyYubhu evaluates to is not null and not an errno stored in a pointer. This is semantically equivalent to KUNIT_EXPECT_TRUE(}(hjyYhhhNhNubj)}(h**test**h]htest}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyYubh, !IS_ERR_OR_NULL(}(hjyYhhhNhNubj)}(h**ptr**h]hptr}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyYubh1)). See KUNIT_EXPECT_TRUE() for more information.}(hjyYhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjXubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_FAIL_AND_ABORT (C macro)c.KUNIT_FAIL_AND_ABORThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_FAIL_AND_ABORTh]h)}(hKUNIT_FAIL_AND_ABORTh]j)}(hKUNIT_FAIL_AND_ABORTh]j%)}(hjYh]hKUNIT_FAIL_AND_ABORT}(hjYhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjYubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjYhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjYhhhjYhMubah}(h]jYah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjYhMhjYhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjYhhhjYhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjZjtjZjujvjwuh1hhhhhhNhNubh)}(h)``KUNIT_FAIL_AND_ABORT (test, fmt, ...)``h]j)}(hjZh]h%KUNIT_FAIL_AND_ABORT (test, fmt, ...)}(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.hhMhhhhubj)}(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.ZhhhNhNubah}(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&]uh1jhj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6]ubh is false.}(hj6]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM2hj2]ubah}(h]h ]h"]h$]h&]uh1jhjV]hM2hhhhubjy)}(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)}(hjc]h]h Parameters}(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.hhM6hj]]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.hhM3hj|]ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hM3hj]ubah}(h]h ]h"]h$]h&]uh1jhj|]ubeh}(h]h ]h"]h$]h&]uh1jhj]hM3hjy]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.hhM4hj]ubj)}(hhh]h)}(h an arbitrary boolean expression.h]h an arbitrary boolean expression.}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hM4hj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hM4hjy]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.hhM6hj]]ubh)}(hSets an assertion that the value that **condition** evaluates to is false. This is the same as KUNIT_EXPECT_FALSE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h&Sets an assertion that the value that }(hj ^hhhNhNubj)}(h **condition**h]h condition}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ^ubh evaluates to is false. This is the same as KUNIT_EXPECT_FALSE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hj ^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM5hj]]ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_EQ (C macro)c.KUNIT_ASSERT_EQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_EQh]h)}(hKUNIT_ASSERT_EQh]j)}(hKUNIT_ASSERT_EQh]j%)}(hjG^h]hKUNIT_ASSERT_EQ}(hjQ^hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjM^ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjI^hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMEubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjE^hhhjd^hMEubah}(h]j@^ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjd^hMEhjB^hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjB^hhhjd^hMEubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj}^jtj}^jujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_EQ (test, left, right)``h]j)}(hj^h]h#KUNIT_ASSERT_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.hhMGhhhhubj)}(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 }(hj^hhhNhNubj)}(h**left**h]hleft}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh and }(hj^hhhNhNubj)}(h **right**h]hright}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh are equal.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMEhj^ubah}(h]h ]h"]h$]h&]uh1jhj^hMEhhhhubjy)}(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)}(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.hhMIhj^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.hhMFhj^ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_hMFhj_ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj_hMFhj^ubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hj4_h]hleft}(hj6_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2_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)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjM_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI_hMGhjJ_ubah}(h]h ]h"]h$]h&]uh1jhj._ubeh}(h]h ]h"]h$]h&]uh1jhjI_hMGhj^ubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjm_h]hright}(hjo_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjk_ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMHhjg_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_hMHhj_ubah}(h]h ]h"]h$]h&]uh1jhjg_ubeh}(h]h ]h"]h$]h&]uh1jhj_hMHhj^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.hhMJhj^ubh)}(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_hhhNhNubj)}(h**left**h]hleft}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubh and }(hj_hhhNhNubj)}(h **right**h]hright}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubh 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_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMIhj^ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_PTR_EQ (C macro)c.KUNIT_ASSERT_PTR_EQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_PTR_EQh]h)}(hKUNIT_ASSERT_PTR_EQh]j)}(hKUNIT_ASSERT_PTR_EQh]j%)}(hj `h]hKUNIT_ASSERT_PTR_EQ}(hj`hhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj`ubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj `hhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMYubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj `hhhj(`hMYubah}(h]j`ah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj(`hMYhj`hhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj`hhhj(`hMYubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjA`jtjA`jujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_ASSERT_PTR_EQ (test, left, right)``h]j)}(hjG`h]h'KUNIT_ASSERT_PTR_EQ (test, left, right)}(hjI`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE`ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM[hhhhubj)}(h8Asserts that pointers **left** and **right** are equal. h]h)}(h7Asserts that pointers **left** and **right** are equal.h](hAsserts that pointers }(hja`hhhNhNubj)}(h**left**h]hleft}(hji`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja`ubh and }(hja`hhhNhNubj)}(h **right**h]hright}(hj{`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja`ubh are equal.}(hja`hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMYhj]`ubah}(h]h ]h"]h$]h&]uh1jhj`hMYhhhhubjy)}(hX**Parameters** ``test`` The test context object. ``left`` an arbitrary expression that evaluates to a pointer. ``right`` an arbitrary expression that evaluates to a pointer. **Description** Sets an assertion that the values that **left** and **right** evaluate to are equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(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)}(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.hhMZhj`ubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMZhj`ubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj`hMZhj`ubj)}(h>``left`` an arbitrary expression that evaluates to a pointer. 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.hhM[hj`ubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ahM[hjaubah}(h]h ]h"]h$]h&]uh1jhj`ubeh}(h]h ]h"]h$]h&]uh1jhj ahM[hj`ubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. h](j)}(h ``right``h]j)}(hj1ah]hright}(hj3ahhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/aubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM\hj+aubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjJahhhNhNubah}(h]h ]h"]h$]h&]uh1hhjFahM\hjGaubah}(h]h ]h"]h$]h&]uh1jhj+aubeh}(h]h ]h"]h$]h&]uh1jhjFahM\hj`ubeh}(h]h ]h"]h$]h&]uh1jhj`ubh)}(h**Description**h]j)}(hjlah]h Description}(hjnahhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjaubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM^hj`ubh)}(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 }(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 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.}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM]hj`ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_NE (C macro)c.KUNIT_ASSERT_NEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_NEh]h)}(hKUNIT_ASSERT_NEh]j)}(hKUNIT_ASSERT_NEh]j%)}(hjah]hKUNIT_ASSERT_NE}(hjahhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjaubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjahhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMmubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjahhhjahMmubah}(h]jaah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjahMmhjahhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjahhhjahMmubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjbjtjbjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_NE (test, left, right)``h]j)}(hj bh]h#KUNIT_ASSERT_NE (test, left, right)}(hj bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj bubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMohhhhubj)}(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%bhhhNhNubj)}(h**left**h]hleft}(hj-bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%bubh and }(hj%bhhhNhNubj)}(h **right**h]hright}(hj?bhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%bubh are not equal.}(hj%bhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMmhj!bubah}(h]h ]h"]h$]h&]uh1jhjWbhMmhhhhubjy)}(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)}(hjdbh]h Parameters}(hjfbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbbubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMqhj^bubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjbh]htest}(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.hhMnhj}bubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjbhMnhjbubah}(h]h ]h"]h$]h&]uh1jhj}bubeh}(h]h ]h"]h$]h&]uh1jhjbhMnhjzbubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjbh]hleft}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMohjbubj)}(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&]uh1hhjbhMohjbubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhjbhMohjzbubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. 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.hhMphjbubj)}(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.}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhj chMphj cubah}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ]h"]h$]h&]uh1jhj chMphjzbubeh}(h]h ]h"]h$]h&]uh1jhj^bubh)}(h**Description**h]j)}(hj0ch]h Description}(hj2chhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.cubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMrhj^bubh)}(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 }(hjFchhhNhNubj)}(h**left**h]hleft}(hjNchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFcubh and }(hjFchhhNhNubj)}(h **right**h]hright}(hj`chhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFcubh 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.}(hjFchhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMqhj^bubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_PTR_NE (C macro)c.KUNIT_ASSERT_PTR_NEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_PTR_NEh]h)}(hKUNIT_ASSERT_PTR_NEh]j)}(hKUNIT_ASSERT_PTR_NEh]j%)}(hjch]hKUNIT_ASSERT_PTR_NE}(hjchhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjcubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjchhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjchhhjchMubah}(h]jcah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjchMhjchhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjchhhjchMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjcjtjcjujvjwuh1hhhhhhNhNubh)}(h+``KUNIT_ASSERT_PTR_NE (test, left, right)``h]j)}(hjch]h'KUNIT_ASSERT_PTR_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.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 }(hjchhhNhNubj)}(h**left**h]hleft}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubh and }(hjchhhNhNubj)}(h **right**h]hright}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubh> are not equal. KUNIT_ASSERT_PTR_EQ() - Asserts that pointers }(hjchhhNhNubj)}(h**left**h]hleft}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubh and }hjcsbj)}(h **right**h]hright}(hj'dhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjcubh are equal.}(hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjcubah}(h]h ]h"]h$]h&]uh1jhj?dhMhhhhubjy)}(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)}(hjLdh]h Parameters}(hjNdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJdubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjFdubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjkdh]htest}(hjmdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjidubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjedubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjedubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjbdubj)}(h>``left`` an arbitrary expression that evaluates to a pointer. 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.hhMhjdubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjbdubj)}(h?``right`` an arbitrary expression that evaluates to a pointer. h](j)}(h ``right``h]j)}(hjdh]hright}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjdubj)}(hhh]h)}(h4an arbitrary expression that evaluates to a pointer.h]h4an arbitrary expression that evaluates to a pointer.}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjdhMhjdubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhjdhMhjbdubeh}(h]h ]h"]h$]h&]uh1jhjFdubh)}(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.hhMhjFdubh)}(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.ehhhNhNubj)}(h**left**h]hleft}(hj6ehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.eubh and }(hj.ehhhNhNubj)}(h **right**h]hright}(hjHehhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.eubh 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.ehhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjFdubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_LT (C macro)c.KUNIT_ASSERT_LThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_LTh]h)}(hKUNIT_ASSERT_LTh]j)}(hKUNIT_ASSERT_LTh]j%)}(hj{eh]hKUNIT_ASSERT_LT}(hjehhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjeubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj}ehhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjyehhhjehMubah}(h]jteah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjehMhjvehhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjvehhhjehMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjejtjejujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_LT (test, left, right)``h]j)}(hjeh]h#KUNIT_ASSERT_LT (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)}(h3An assertion that **left** is less than **right**. h]h)}(h2An assertion that **left** is less than **right**.h](hAn assertion that }(hjehhhNhNubj)}(h**left**h]hleft}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh is less than }(hjehhhNhNubj)}(h **right**h]hright}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjeubh.}(hjehhhNhNubeh}(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&]uh1jhjfhMhhhhubjy)}(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)}(hjfh]h Parameters}(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.hhMhj fubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj/fh]htest}(hj1fhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-fubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj)fubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjHfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDfhMhjEfubah}(h]h ]h"]h$]h&]uh1jhj)fubeh}(h]h ]h"]h$]h&]uh1jhjDfhMhj&fubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjhfh]hleft}(hjjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjffubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjbfubj)}(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.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj}fhMhj~fubah}(h]h ]h"]h$]h&]uh1jhjbfubeh}(h]h ]h"]h$]h&]uh1jhj}fhMhj&fubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. 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.hhMhjfubj)}(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.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjfhMhjfubah}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ]h"]h$]h&]uh1jhjfhMhj&fubeh}(h]h ]h"]h$]h&]uh1jhj fubh)}(h**Description**h]j)}(hjfh]h Description}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj fubh)}(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 }(hjfhhhNhNubj)}(h**left**h]hleft}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh* evaluates to is less than the value that }(hjfhhhNhNubj)}(h **right**h]hright}(hj ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjfubh 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.}(hjfhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj fubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_LE (C macro)c.KUNIT_ASSERT_LEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_LEh]h)}(hKUNIT_ASSERT_LEh]j)}(hKUNIT_ASSERT_LEh]j%)}(hj?gh]hKUNIT_ASSERT_LE}(hjIghhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjEgubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjAghhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhj=ghhhj\ghMubah}(h]j8gah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj\ghMhj:ghhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhj:ghhhj\ghMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjugjtjugjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_LE (test, left, right)``h]j)}(hj{gh]h#KUNIT_ASSERT_LE (test, left, right)}(hj}ghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjygubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h?An assertion that **left** is less than or equal to **right**. h]h)}(h>An assertion that **left** is less than or equal to **right**.h](hAn assertion that }(hjghhhNhNubj)}(h**left**h]hleft}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubh is less than or equal to }(hjghhhNhNubj)}(h **right**h]hright}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubh.}(hjghhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjgubah}(h]h ]h"]h$]h&]uh1jhjghMhhhhubjy)}(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)}(hjgh]h Parameters}(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.hhMhjgubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjgh]htest}(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)}(hThe test context object.h]hThe test context object.}(hj hhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhMhj hubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjhhMhjgubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hj,hh]hleft}(hj.hhhhNhNubah}(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.hhMhj&hubj)}(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.}(hjEhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjAhhMhjBhubah}(h]h ]h"]h$]h&]uh1jhj&hubeh}(h]h ]h"]h$]h&]uh1jhjAhhMhjgubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjehh]hright}(hjghhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjchubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj_hubj)}(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~hhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhhMhj{hubah}(h]h ]h"]h$]h&]uh1jhj_hubeh}(h]h ]h"]h$]h&]uh1jhjzhhMhjgubeh}(h]h ]h"]h$]h&]uh1jhjgubh)}(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.hhMhjgubh)}(hXSets an assertion that the value that **left** evaluates to is less than or equal to the value that **right** evaluates to. This is the same as KUNIT_EXPECT_LE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h&Sets an assertion that the value that }(hjhhhhNhNubj)}(h**left**h]hleft}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh6 evaluates to is less than or equal to the value that }(hjhhhhNhNubj)}(h **right**h]hright}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh 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.}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjgubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_GT (C macro)c.KUNIT_ASSERT_GThNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_GTh]h)}(hKUNIT_ASSERT_GTh]j)}(hKUNIT_ASSERT_GTh]j%)}(hjih]hKUNIT_ASSERT_GT}(hj ihhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hj iubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjihhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjihhhj ihMubah}(h]jhah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj ihMhjhhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjhhhhj ihMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj9ijtj9ijujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_GT (test, left, right)``h]j)}(hj?ih]h#KUNIT_ASSERT_GT (test, left, right)}(hjAihhhNhNubah}(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.hhMhhhhubj)}(h6An assertion that **left** is greater than **right**. h]h)}(h5An assertion that **left** is greater than **right**.h](hAn assertion that }(hjYihhhNhNubj)}(h**left**h]hleft}(hjaihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYiubh is greater than }(hjYihhhNhNubj)}(h **right**h]hright}(hjsihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYiubh.}(hjYihhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjUiubah}(h]h ]h"]h$]h&]uh1jhjihMhhhhubjy)}(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_GT(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjih]h Parameters}(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.hhMhjiubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjih]htest}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjiubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjihMhjiubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjihMhjiubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjih]hleft}(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.}(hj jhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjjhMhjjubah}(h]h ]h"]h$]h&]uh1jhjiubeh}(h]h ]h"]h$]h&]uh1jhjjhMhjiubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hj)jh]hright}(hj+jhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'jubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj#jubj)}(hhh]h)}(h=an arbitrary expression that evaluates to a primitive C type.h]h=an arbitrary expression that evaluates to a primitive C type.}(hjBjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj>jhMhj?jubah}(h]h ]h"]h$]h&]uh1jhj#jubeh}(h]h ]h"]h$]h&]uh1jhj>jhMhjiubeh}(h]h ]h"]h$]h&]uh1jhjiubh)}(h**Description**h]j)}(hjdjh]h Description}(hjfjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbjubah}(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 greater than the value that **right** evaluates to. This is the same as KUNIT_EXPECT_GT(), 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 }(hjzjhhhNhNubj)}(h**left**h]hleft}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzjubh- evaluates to is greater than the value that }(hjzjhhhNhNubj)}(h **right**h]hright}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzjubh evaluates to. This is the same as KUNIT_EXPECT_GT(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjzjhhhNhNubeh}(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&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_GE (C macro)c.KUNIT_ASSERT_GEhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_GEh]h)}(hKUNIT_ASSERT_GEh]j)}(hKUNIT_ASSERT_GEh]j%)}(hjjh]hKUNIT_ASSERT_GE}(hjjhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjjubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjjhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjjhhhjjhMubah}(h]jjah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjjhMhjjhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjjhhhjjhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjjjtjjjujvjwuh1hhhhhhNhNubh)}(h'``KUNIT_ASSERT_GE (test, left, right)``h]j)}(hjkh]h#KUNIT_ASSERT_GE (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.hhMhhhhubj)}(h?Assertion that **left** is greater than or equal to **right**. h]h)}(h>Assertion that **left** is greater than or equal to **right**.h](hAssertion that }(hjkhhhNhNubj)}(h**left**h]hleft}(hj%khhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubh is greater than or equal to }(hjkhhhNhNubj)}(h **right**h]hright}(hj7khhhNhNubah}(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.hhMhjkubah}(h]h ]h"]h$]h&]uh1jhjOkhMhhhhubjy)}(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)}(hj\kh]h Parameters}(hj^khhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZkubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjVkubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hj{kh]htest}(hj}khhhNhNubah}(h]h ]h"]h$]h&]uh1jhjykubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjukubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhMhjkubah}(h]h ]h"]h$]h&]uh1jhjukubeh}(h]h ]h"]h$]h&]uh1jhjkhMhjrkubj)}(hG``left`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h``left``h]j)}(hjkh]hleft}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjkubj)}(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.}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhMhjkubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjkhMhjrkubj)}(hH``right`` an arbitrary expression that evaluates to a primitive C type. h](j)}(h ``right``h]j)}(hjkh]hright}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjkubj)}(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&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjlhMhjrkubeh}(h]h ]h"]h$]h&]uh1jhjVkubh)}(h**Description**h]j)}(hj(lh]h Description}(hj*lhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&lubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjVkubh)}(hSets an assertion that the value that **left** evaluates to is greater than the value that **right** evaluates to. This is the same as KUNIT_EXPECT_GE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h&Sets an assertion that the value that }(hj>lhhhNhNubj)}(h**left**h]hleft}(hjFlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>lubh- evaluates to is greater than the value that }(hj>lhhhNhNubj)}(h **right**h]hright}(hjXlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>lubh evaluates to. This is the same as KUNIT_EXPECT_GE(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hj>lhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjVkubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_STREQ (C macro)c.KUNIT_ASSERT_STREQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_STREQh]h)}(hKUNIT_ASSERT_STREQh]j)}(hKUNIT_ASSERT_STREQh]j%)}(hjlh]hKUNIT_ASSERT_STREQ}(hjlhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjlubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjlhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjlhhhjlhMubah}(h]jlah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjlhMhjlhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjlhhhjlhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjljtjljujvjwuh1hhhhhhNhNubh)}(h*``KUNIT_ASSERT_STREQ (test, left, right)``h]j)}(hjlh]h&KUNIT_ASSERT_STREQ (test, left, right)}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(hohhhNhNubah}(h]h ]h"]h$]h&]uh1jhj:oubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj6oubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjUohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQohMhjRoubah}(h]h ]h"]h$]h&]uh1jhj6oubeh}(h]h ]h"]h$]h&]uh1jhjQohMhjnubj)}(hN``right`` an arbitrary expression that evaluates to a null terminated string. h](j)}(h ``right``h]j)}(hjuoh]hright}(hjwohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsoubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjooubj)}(hhh]h)}(hCan arbitrary expression that evaluates to a null terminated string.h]hCan arbitrary expression that evaluates to a null terminated string.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhjohMhjoubah}(h]h ]h"]h$]h&]uh1jhjooubeh}(h]h ]h"]h$]h&]uh1jhjohMhjnubeh}(h]h ]h"]h$]h&]uh1jhjnubh)}(h**Description**h]j)}(hjoh]h Description}(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.hhMhjnubh)}(hSets an assertion that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_ASSERT_TRUE(**test**, strcmp((**left**), (**right**))). See KUNIT_ASSERT_TRUE() for more information.h](h'Sets an assertion that the values that }(hjohhhNhNubj)}(h**left**h]hleft}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubh and }(hjohhhNhNubj)}(h **right**h]hright}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_ASSERT_TRUE(}(hjohhhNhNubj)}(h**test**h]htest}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubh , strcmp((}(hjohhhNhNubj)}(h**left**h]hleft}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubh), (}(hjohhhNhNubj)}(h **right**h]hright}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubh2))). See KUNIT_ASSERT_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.hhMhjnubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_MEMEQ (C macro)c.KUNIT_ASSERT_MEMEQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_MEMEQh]h)}(hKUNIT_ASSERT_MEMEQh]j)}(hKUNIT_ASSERT_MEMEQh]j%)}(hjIph]hKUNIT_ASSERT_MEMEQ}(hjSphhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjOpubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjKphhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjGphhhjfphMubah}(h]jBpah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjfphMhjDphhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjDphhhjfphMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjpjtjpjujvjwuh1hhhhhhNhNubh)}(h0``KUNIT_ASSERT_MEMEQ (test, left, right, size)``h]j)}(hjph]h,KUNIT_ASSERT_MEMEQ (test, left, right, size)}(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.hhMhhhhubj)}(hKAsserts that the first **size** bytes of **left** and **right** are equal. h]h)}(hJAsserts that the first **size** bytes of **left** and **right** are equal.h](hAsserts that the first }(hjphhhNhNubj)}(h**size**h]hsize}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubh bytes of }(hjphhhNhNubj)}(h**left**h]hleft}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubh and }(hjphhhNhNubj)}(h **right**h]hright}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubh are equal.}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjpubah}(h]h ]h"]h$]h&]uh1jhjphMhhhhubjy)}(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 assertion that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_ASSERT_TRUE(**test**, !memcmp((**left**), (**right**), (**size**))). See KUNIT_ASSERT_TRUE() for more information. Although this assertion works for any memory block, it is not recommended for comparing more structured data, such as structs. This assertion is recommended for comparing, for example, data arrays.h](h)}(h**Parameters**h]j)}(hjph]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjpubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjqh]htest}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj qubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhj qubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj(qhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$qhMhj%qubah}(h]h ]h"]h$]h&]uh1jhj qubeh}(h]h ]h"]h$]h&]uh1jhj$qhMhjqubj)}(hG``left`` An arbitrary expression that evaluates to the specified size. h](j)}(h``left``h]j)}(hjHqh]hleft}(hjJqhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFqubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjBqubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjaqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]qhMhj^qubah}(h]h ]h"]h$]h&]uh1jhjBqubeh}(h]h ]h"]h$]h&]uh1jhj]qhMhjqubj)}(hH``right`` An arbitrary expression that evaluates to the specified size. h](j)}(h ``right``h]j)}(hjqh]hright}(hjqhhhNhNubah}(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.hhMhj{qubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhj{qubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjqubj)}(h#``size`` Number of bytes compared. h](j)}(h``size``h]j)}(hjqh]hsize}(hjqhhhNhNubah}(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.hhMhjqubj)}(hhh]h)}(hNumber of bytes compared.h]hNumber of bytes compared.}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjqhMhjqubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhjqhMhjqubeh}(h]h ]h"]h$]h&]uh1jhjpubh)}(h**Description**h]j)}(hjqh]h Description}(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.hhMhjpubh)}(hSets an assertion that the values that **left** and **right** evaluate to are equal. This is semantically equivalent to KUNIT_ASSERT_TRUE(**test**, !memcmp((**left**), (**right**), (**size**))). See KUNIT_ASSERT_TRUE() for more information.h](h'Sets an assertion that the values that }(hj rhhhNhNubj)}(h**left**h]hleft}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj rubh and }(hj rhhhNhNubj)}(h **right**h]hright}(hj%rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj rubhM evaluate to are equal. This is semantically equivalent to KUNIT_ASSERT_TRUE(}(hj rhhhNhNubj)}(h**test**h]htest}(hj7rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj rubh , !memcmp((}(hj rhhhNhNubj)}(h**left**h]hleft}(hjIrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj rubh), (}(hj rhhhNhNubj)}(h **right**h]hright}(hj[rhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj rubh), (}hj rsbj)}(h**size**h]hsize}(hjmrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj rubh2))). See KUNIT_ASSERT_TRUE() for more information.}(hj rhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjpubh)}(hAlthough this assertion works for any memory block, it is not recommended for comparing more structured data, such as structs. This assertion is recommended for comparing, for example, data arrays.h]hAlthough this assertion works for any memory block, it is not recommended for comparing more structured data, such as structs. This assertion is recommended for comparing, for example, data arrays.}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjpubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_MEMNEQ (C macro)c.KUNIT_ASSERT_MEMNEQhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_MEMNEQh]h)}(hKUNIT_ASSERT_MEMNEQh]j)}(hKUNIT_ASSERT_MEMNEQh]j%)}(hjrh]hKUNIT_ASSERT_MEMNEQ}(hjrhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjrubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjrhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM,ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjrhhhjrhM,ubah}(h]jrah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjrhM,hjrhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjrhhhjrhM,ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjrjtjrjujvjwuh1hhhhhhNhNubh)}(h1``KUNIT_ASSERT_MEMNEQ (test, left, right, size)``h]j)}(hjrh]h-KUNIT_ASSERT_MEMNEQ (test, left, right, size)}(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.hhM.hhhhubj)}(hOAsserts that the first **size** bytes of **left** and **right** are not equal. h]h)}(hNAsserts that the first **size** bytes of **left** and **right** are not equal.h](hAsserts that the first }(hjshhhNhNubj)}(h**size**h]hsize}(hj shhhNhNubah}(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}(hj1shhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubh are not equal.}(hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM,hjsubah}(h]h ]h"]h$]h&]uh1jhjIshM,hhhhubjy)}(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 assertion that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_ASSERT_TRUE(**test**, memcmp((**left**), (**right**), (**size**))). See KUNIT_ASSERT_TRUE() for more information. Although this assertion works for any memory block, it is not recommended for comparing more structured data, such as structs. This assertion is recommended for comparing, for example, data arrays.h](h)}(h**Parameters**h]j)}(hjVsh]h Parameters}(hjXshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTsubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM0hjPsubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjush]htest}(hjwshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjssubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM-hjosubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshM-hjsubah}(h]h ]h"]h$]h&]uh1jhjosubeh}(h]h ]h"]h$]h&]uh1jhjshM-hjlsubj)}(hG``left`` An arbitrary expression that evaluates to the specified size. h](j)}(h``left``h]j)}(hjsh]hleft}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM.hjsubj)}(hhh]h)}(h=An arbitrary expression that evaluates to the specified size.h]h=An arbitrary expression that evaluates to the specified size.}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshM.hjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshM.hjlsubj)}(hH``right`` An arbitrary expression that evaluates to the specified size. h](j)}(h ``right``h]j)}(hjsh]hright}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM/hjsubj)}(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&]uh1hhjshM/hjsubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjshM/hjlsubj)}(h#``size`` Number of bytes compared. h](j)}(h``size``h]j)}(hj th]hsize}(hj"thhhNhNubah}(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.hhM0hjtubj)}(hhh]h)}(hNumber of bytes compared.h]hNumber of bytes compared.}(hj9thhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5thM0hj6tubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhj5thM0hjlsubeh}(h]h ]h"]h$]h&]uh1jhjPsubh)}(h**Description**h]j)}(hj[th]h Description}(hj]thhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYtubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM2hjPsubh)}(hSets an assertion that the values that **left** and **right** evaluate to are not equal. This is semantically equivalent to KUNIT_ASSERT_TRUE(**test**, memcmp((**left**), (**right**), (**size**))). See KUNIT_ASSERT_TRUE() for more information.h](h'Sets an assertion that the values that }(hjqthhhNhNubj)}(h**left**h]hleft}(hjythhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqtubh and }(hjqthhhNhNubj)}(h **right**h]hright}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqtubhQ evaluate to are not equal. This is semantically equivalent to KUNIT_ASSERT_TRUE(}(hjqthhhNhNubj)}(h**test**h]htest}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqtubh , memcmp((}(hjqthhhNhNubj)}(h**left**h]hleft}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqtubh), (}(hjqthhhNhNubj)}(h **right**h]hright}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqtubh), (}hjqtsbj)}(h**size**h]hsize}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqtubh2))). See KUNIT_ASSERT_TRUE() for more information.}(hjqthhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM1hjPsubh)}(hAlthough this assertion works for any memory block, it is not recommended for comparing more structured data, such as structs. This assertion is recommended for comparing, for example, data arrays.h]hAlthough this assertion works for any memory block, it is not recommended for comparing more structured data, such as structs. This assertion is recommended for comparing, for example, data arrays.}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM6hjPsubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_NULL (C macro)c.KUNIT_ASSERT_NULLhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_NULLh]h)}(hKUNIT_ASSERT_NULLh]j)}(hKUNIT_ASSERT_NULLh]j%)}(hjuh]hKUNIT_ASSERT_NULL}(hjuhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjuubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjuhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMGubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjuhhhj2uhMGubah}(h]juah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj2uhMGhjuhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjuhhhj2uhMGubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjKujtjKujujvjwuh1hhhhhhNhNubh)}(h!``KUNIT_ASSERT_NULL (test, ptr)``h]j)}(hjQuh]hKUNIT_ASSERT_NULL (test, ptr)}(hjSuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOuubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMIhhhhubj)}(h'Asserts that pointers **ptr** is null. h]h)}(h&Asserts that pointers **ptr** is null.h](hAsserts that pointers }(hjkuhhhNhNubj)}(h**ptr**h]hptr}(hjsuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkuubh is null.}(hjkuhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMGhjguubah}(h]h ]h"]h$]h&]uh1jhjuhMGhhhhubjy)}(hX3**Parameters** ``test`` The test context object. ``ptr`` an arbitrary pointer. **Description** Sets an assertion that the values that **ptr** evaluates to is null. This is the same as KUNIT_EXPECT_NULL(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjuh]h Parameters}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMKhjuubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjuh]htest}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMHhjuubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhMHhjuubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjuhMHhjuubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hjuh]hptr}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMIhjuubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hj vhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjvhMIhjvubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjvhMIhjuubeh}(h]h ]h"]h$]h&]uh1jhjuubh)}(h**Description**h]j)}(hj+vh]h Description}(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.hhMKhjuubh)}(hSets an assertion that the values that **ptr** evaluates to is null. This is the same as KUNIT_EXPECT_NULL(), 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 }(hjAvhhhNhNubj)}(h**ptr**h]hptr}(hjIvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAvubh evaluates to is null. This is the same as KUNIT_EXPECT_NULL(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjAvhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMJhjuubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ASSERT_NOT_NULL (C macro)c.KUNIT_ASSERT_NOT_NULLhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_NOT_NULLh]h)}(hKUNIT_ASSERT_NOT_NULLh]j)}(hKUNIT_ASSERT_NOT_NULLh]j%)}(hj|vh]hKUNIT_ASSERT_NOT_NULL}(hjvhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjvubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhj~vhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM\ubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjzvhhhjvhM\ubah}(h]juvah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjvhM\hjwvhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjwvhhhjvhM\ubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjvjtjvjujvjwuh1hhhhhhNhNubh)}(h%``KUNIT_ASSERT_NOT_NULL (test, ptr)``h]j)}(hjvh]h!KUNIT_ASSERT_NOT_NULL (test, ptr)}(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.hhM^hhhhubj)}(h+Asserts that pointers **ptr** is not null. h]h)}(h*Asserts that pointers **ptr** is not null.h](hAsserts that pointers }(hjvhhhNhNubj)}(h**ptr**h]hptr}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubh is not null.}(hjvhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM\hjvubah}(h]h ]h"]h$]h&]uh1jhjvhM\hhhhubjy)}(hX;**Parameters** ``test`` The test context object. ``ptr`` an arbitrary pointer. **Description** Sets an assertion that the values that **ptr** evaluates to is not null. This is the same as KUNIT_EXPECT_NOT_NULL(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjvh]h Parameters}(hjwhhhNhNubah}(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.hhM`hjvubj)}(hhh](j)}(h"``test`` The test context object. h](j)}(h``test``h]j)}(hjwh]htest}(hj whhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM]hjwubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hj7whhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3whM]hj4wubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1jhj3whM]hjwubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hjWwh]hptr}(hjYwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUwubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM^hjQwubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hjpwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlwhM^hjmwubah}(h]h ]h"]h$]h&]uh1jhjQwubeh}(h]h ]h"]h$]h&]uh1jhjlwhM^hjwubeh}(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.hhM`hjvubh)}(hSets an assertion that the values that **ptr** evaluates to is not null. This is the same as KUNIT_EXPECT_NOT_NULL(), 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 }(hjwhhhNhNubj)}(h**ptr**h]hptr}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjwubh evaluates to is not null. This is the same as KUNIT_EXPECT_NOT_NULL(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjwhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhM_hjvubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h&KUNIT_ASSERT_NOT_ERR_OR_NULL (C macro)c.KUNIT_ASSERT_NOT_ERR_OR_NULLhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ASSERT_NOT_ERR_OR_NULLh]h)}(hKUNIT_ASSERT_NOT_ERR_OR_NULLh]j)}(hKUNIT_ASSERT_NOT_ERR_OR_NULLh]j%)}(hjwh]hKUNIT_ASSERT_NOT_ERR_OR_NULL}(hjwhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjwubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjwhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMqubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjwhhhjxhMqubah}(h]jwah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjxhMqhjwhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjwhhhjxhMqubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjxjtjxjujvjwuh1hhhhhhNhNubh)}(h,``KUNIT_ASSERT_NOT_ERR_OR_NULL (test, ptr)``h]j)}(hjxh]h(KUNIT_ASSERT_NOT_ERR_OR_NULL (test, ptr)}(hj!xhhhNhNubah}(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.hhMshhhhubj)}(h0Assertion that **ptr** is not null and not err. h]h)}(h/Assertion that **ptr** is not null and not err.h](hAssertion that }(hj9xhhhNhNubj)}(h**ptr**h]hptr}(hjAxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9xubh is not null and not err.}(hj9xhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMqhj5xubah}(h]h ]h"]h$]h&]uh1jhjYxhMqhhhhubjy)}(hXf**Parameters** ``test`` The test context object. ``ptr`` an arbitrary pointer. **Description** Sets an assertion that the value that **ptr** evaluates to is not null and not an errno stored in a pointer. This is the same as KUNIT_EXPECT_NOT_ERR_OR_NULL(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.h](h)}(h**Parameters**h]j)}(hjfxh]h Parameters}(hjhxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjdxubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMuhj`xubj)}(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.hhMrhjxubj)}(hhh]h)}(hThe test context object.h]hThe test context object.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMrhjxubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjxhMrhj|xubj)}(h``ptr`` an arbitrary pointer. h](j)}(h``ptr``h]j)}(hjxh]hptr}(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.hhMshjxubj)}(hhh]h)}(han arbitrary pointer.h]han arbitrary pointer.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhMshjxubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjxhMshj|xubeh}(h]h ]h"]h$]h&]uh1jhj`xubh)}(h**Description**h]j)}(hjxh]h Description}(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.hhMuhj`xubh)}(hSets an assertion that the value that **ptr** evaluates to is not null and not an errno stored in a pointer. This is the same as KUNIT_EXPECT_NOT_ERR_OR_NULL(), 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 }(hjyhhhNhNubj)}(h**ptr**h]hptr}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubh evaluates to is not null and not an errno stored in a pointer. This is the same as KUNIT_EXPECT_NOT_ERR_OR_NULL(), except it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.}(hjyhhhNhNubeh}(h]h ]w4h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMthj`xubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](hKUNIT_ARRAY_PARAM (C macro)c.KUNIT_ARRAY_PARAMhNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ARRAY_PARAMh]h)}(hKUNIT_ARRAY_PARAMh]j)}(hKUNIT_ARRAY_PARAMh]j%)}(hjJyh]hKUNIT_ARRAY_PARAM}(hjTyhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjPyubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjLyhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjHyhhhjgyhMubah}(h]jCyah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhjgyhMhjEyhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjEyhhhjgyhMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsjyjtjyjujvjwuh1hhhhhhNhNubh)}(h-``KUNIT_ARRAY_PARAM (name, array, get_desc)``h]j)}(hjyh]h)KUNIT_ARRAY_PARAM (name, array, get_desc)}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhhhhubj)}(h/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.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjyubah}(h]h ]h"]h$]h&]uh1jhjyhMhhhhubjy)}(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)}(hjyh]h Parameters}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjyubj)}(hhh](j)}(h;``name`` prefix for the test parameter generator function. h](j)}(h``name``h]j)}(hjyh]hname}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjyubj)}(hhh]h)}(h1prefix for the test parameter generator function.h]h1prefix for the test parameter generator function.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhMhjyubah}(h]h ]h"]h$]h&]uh1jhjyubeh}(h]h ]h"]h$]h&]uh1jhjyhMhjyubj)}(h$``array`` array of test parameters. h](j)}(h ``array``h]j)}(hjzh]harray}(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.hhMhj zubj)}(hhh]h)}(harray of test parameters.h]harray of test parameters.}(hj,zhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(zhMhj)zubah}(h]h ]h"]h$]h&]uh1jhj zubeh}(h]h ]h"]h$]h&]uh1jhj(zhMhjyubj)}(hK``get_desc`` function to convert param to description; NULL to use default h](j)}(h ``get_desc``h]j)}(hjLzh]hget_desc}(hjNzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJzubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjFzubj)}(hhh]h)}(h=function to convert param to description; NULL to use defaulth]h=function to convert param to description; NULL to use default}(hjezhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjazhMhjbzubah}(h]h ]h"]h$]h&]uh1jhjFzubeh}(h]h ]h"]h$]h&]uh1jhjazhMhjyubeh}(h]h ]h"]h$]h&]uh1jhjyubh)}(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.hhMhjyubh)}(hPDefine function **name_gen_params** which uses **array** to generate parameters.h](hDefine function }(hjzhhhNhNubj)}(h**name_gen_params**h]hname_gen_params}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubh which uses }(hjzhhhNhNubj)}(h **array**h]harray}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjzubh to generate parameters.}(hjzhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMhjyubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h KUNIT_ARRAY_PARAM_DESC (C macro)c.KUNIT_ARRAY_PARAM_DESChNtauh1hhhhhhNhNubh)}(hhh](h)}(hKUNIT_ARRAY_PARAM_DESCh]h)}(hKUNIT_ARRAY_PARAM_DESCh]j)}(hKUNIT_ARRAY_PARAM_DESCh]j%)}(hjzh]hKUNIT_ARRAY_PARAM_DESC}(hjzhhhNhNubah}(h]h ]j0ah"]h$]h&]uh1j$hjzubah}(h]h ](j7j8eh"]h$]h&]hhuh1jhjzhhh\/var/lib/git/docbuild/linux/Documentation/dev-tools/kunit/api/test:9: ./include/kunit/test.hhMubah}(h]h ]h"]h$]h&]hhjBuh1hjCjDhjzhhhj{hMubah}(h]jzah ](jHjIeh"]h$]h&]jMjN)jOhuh1hhj{hMhjzhhubjQ)}(hhh]h}(h]h ]h"]h$]h&]uh1jPhjzhhhj{hMubeh}(h]h ](jmmacroeh"]h$]h&]jrjmjsj {jtj {jujvjwuh1hhhhhhNhNubh)}(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.hhMhj<{ubah}(h]h ]h"]h$]h&]uh1jhjN{hMhhhhubjy)}(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)}(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;``name`` prefix for the test parameter generator function. h](j)}(h``name``h]j)}(hjz{h]hname}(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)}(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&]uh1jhjt{ubeh}(h]h ]h"]h$]h&]uh1jhj{hMhjq{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{hMhjq{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}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj|hMhj|ubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj|hMhjq{ubeh}(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.hhMhjU{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}(hjE|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=|ubh which uses }(hj=|hhhNhNubj)}(h **array**h]harray}(hjW|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.hhMhjU{ubeh}(h]h ] kernelindentah"]h$]h&]uh1jxhhhhhNhNubeh}(h]test-apiah ]h"]test apiah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj|error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}j||jy|s nametypes}j||sh}(jy|hhhjjjojjj3j8jrjwjyj~j/ j4 j j jMjRjjj"j'jjjj jjjjj:j?jJ!jO!js#jx#j&j&j(j(jn*js*jx/j}/j'1j,1j2j2jd4ji4j5j5j7j7j8j8j:j :jn;js;j<j<j>j>j@j@jBjBjDjDjFjFjHjHjJjJjLjLjNjNjPjPjRjRjTUjYUjVjVjFXjKXjYjYjM[jR[j\j\j@^jE^j`j `jajajcjcjtejyej8gj=gjhjijjjjjljljHnjMnjBpjGpjrjrjujujuvjzvjwjwjCyjHyjzjzu 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.