~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/kunit/assert.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/kunit/assert.h (Version linux-6.12-rc7) and /include/kunit/assert.h (Version linux-5.14.21)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 /* SPDX-License-Identifier: GPL-2.0 */
  2 /*                                                  2 /*
  3  * Assertion and expectation serialization API      3  * Assertion and expectation serialization API.
  4  *                                                  4  *
  5  * Copyright (C) 2019, Google LLC.                  5  * Copyright (C) 2019, Google LLC.
  6  * Author: Brendan Higgins <brendanhiggins@goo      6  * Author: Brendan Higgins <brendanhiggins@google.com>
  7  */                                                 7  */
  8                                                     8 
  9 #ifndef _KUNIT_ASSERT_H                             9 #ifndef _KUNIT_ASSERT_H
 10 #define _KUNIT_ASSERT_H                            10 #define _KUNIT_ASSERT_H
 11                                                    11 
 12 #include <linux/err.h>                             12 #include <linux/err.h>
 13 #include <linux/printk.h>                      !!  13 #include <linux/kernel.h>
 14                                                    14 
 15 struct kunit;                                      15 struct kunit;
 16 struct string_stream;                              16 struct string_stream;
 17                                                    17 
 18 /**                                                18 /**
 19  * enum kunit_assert_type - Type of expectatio     19  * enum kunit_assert_type - Type of expectation/assertion.
 20  * @KUNIT_ASSERTION: Used to denote that a kun     20  * @KUNIT_ASSERTION: Used to denote that a kunit_assert represents an assertion.
 21  * @KUNIT_EXPECTATION: Denotes that a kunit_as     21  * @KUNIT_EXPECTATION: Denotes that a kunit_assert represents an expectation.
 22  *                                                 22  *
 23  * Used in conjunction with a &struct kunit_as     23  * Used in conjunction with a &struct kunit_assert to denote whether it
 24  * represents an expectation or an assertion.      24  * represents an expectation or an assertion.
 25  */                                                25  */
 26 enum kunit_assert_type {                           26 enum kunit_assert_type {
 27         KUNIT_ASSERTION,                           27         KUNIT_ASSERTION,
 28         KUNIT_EXPECTATION,                         28         KUNIT_EXPECTATION,
 29 };                                                 29 };
 30                                                    30 
 31 /**                                                31 /**
 32  * struct kunit_loc - Identifies the source lo !!  32  * struct kunit_assert - Data for printing a failed assertion or expectation.
 33  * @line: the line number in the file.         !!  33  * @test: the test case this expectation/assertion is associated with.
 34  * @file: the file name.                       !!  34  * @type: the type (either an expectation or an assertion) of this kunit_assert.
                                                   >>  35  * @line: the source code line number that the expectation/assertion is at.
                                                   >>  36  * @file: the file path of the source file that the expectation/assertion is in.
                                                   >>  37  * @message: an optional message to provide additional context.
                                                   >>  38  * @format: a function which formats the data in this kunit_assert to a string.
                                                   >>  39  *
                                                   >>  40  * Represents a failed expectation/assertion. Contains all the data necessary to
                                                   >>  41  * format a string to a user reporting the failure.
 35  */                                                42  */
 36 struct kunit_loc {                             !!  43 struct kunit_assert {
                                                   >>  44         struct kunit *test;
                                                   >>  45         enum kunit_assert_type type;
 37         int line;                                  46         int line;
 38         const char *file;                          47         const char *file;
                                                   >>  48         struct va_format message;
                                                   >>  49         void (*format)(const struct kunit_assert *assert,
                                                   >>  50                        struct string_stream *stream);
 39 };                                                 51 };
 40                                                    52 
 41 #define KUNIT_CURRENT_LOC { .file = __FILE__,  !!  53 /**
                                                   >>  54  * KUNIT_INIT_VA_FMT_NULL - Default initializer for struct va_format.
                                                   >>  55  *
                                                   >>  56  * Used inside a struct initialization block to initialize struct va_format to
                                                   >>  57  * default values where fmt and va are null.
                                                   >>  58  */
                                                   >>  59 #define KUNIT_INIT_VA_FMT_NULL { .fmt = NULL, .va = NULL }
 42                                                    60 
 43 /**                                                61 /**
 44  * struct kunit_assert - Data for printing a f !!  62  * KUNIT_INIT_ASSERT_STRUCT() - Initializer for a &struct kunit_assert.
                                                   >>  63  * @kunit: The test case that this expectation/assertion is associated with.
                                                   >>  64  * @assert_type: The type (assertion or expectation) of this kunit_assert.
                                                   >>  65  * @fmt: The formatting function which builds a string out of this kunit_assert.
 45  *                                                 66  *
 46  * Represents a failed expectation/assertion.  !!  67  * The base initializer for a &struct kunit_assert.
 47  * format a string to a user reporting the fai << 
 48  */                                                68  */
 49 struct kunit_assert {};                        !!  69 #define KUNIT_INIT_ASSERT_STRUCT(kunit, assert_type, fmt) {                    \
                                                   >>  70         .test = kunit,                                                         \
                                                   >>  71         .type = assert_type,                                                   \
                                                   >>  72         .file = __FILE__,                                                      \
                                                   >>  73         .line = __LINE__,                                                      \
                                                   >>  74         .message = KUNIT_INIT_VA_FMT_NULL,                                     \
                                                   >>  75         .format = fmt                                                          \
                                                   >>  76 }
 50                                                    77 
 51 typedef void (*assert_format_t)(const struct k !!  78 void kunit_base_assert_format(const struct kunit_assert *assert,
 52                                 const struct v !!  79                               struct string_stream *stream);
 53                                 struct string_ << 
 54                                                    80 
 55 void kunit_assert_prologue(const struct kunit_ !!  81 void kunit_assert_print_msg(const struct kunit_assert *assert,
 56                            enum kunit_assert_t !!  82                             struct string_stream *stream);
 57                            struct string_strea << 
 58                                                    83 
 59 /**                                                84 /**
 60  * struct kunit_fail_assert - Represents a pla     85  * struct kunit_fail_assert - Represents a plain fail expectation/assertion.
 61  * @assert: The parent of this type.               86  * @assert: The parent of this type.
 62  *                                                 87  *
 63  * Represents a simple KUNIT_FAIL/KUNIT_FAIL_A !!  88  * Represents a simple KUNIT_FAIL/KUNIT_ASSERT_FAILURE that always fails.
 64  */                                                89  */
 65 struct kunit_fail_assert {                         90 struct kunit_fail_assert {
 66         struct kunit_assert assert;                91         struct kunit_assert assert;
 67 };                                                 92 };
 68                                                    93 
 69 void kunit_fail_assert_format(const struct kun     94 void kunit_fail_assert_format(const struct kunit_assert *assert,
 70                               const struct va_ << 
 71                               struct string_st     95                               struct string_stream *stream);
 72                                                    96 
 73 /**                                                97 /**
                                                   >>  98  * KUNIT_INIT_FAIL_ASSERT_STRUCT() - Initializer for &struct kunit_fail_assert.
                                                   >>  99  * @test: The test case that this expectation/assertion is associated with.
                                                   >> 100  * @type: The type (assertion or expectation) of this kunit_assert.
                                                   >> 101  *
                                                   >> 102  * Initializes a &struct kunit_fail_assert. Intended to be used in
                                                   >> 103  * KUNIT_EXPECT_* and KUNIT_ASSERT_* macros.
                                                   >> 104  */
                                                   >> 105 #define KUNIT_INIT_FAIL_ASSERT_STRUCT(test, type) {                            \
                                                   >> 106         .assert = KUNIT_INIT_ASSERT_STRUCT(test,                               \
                                                   >> 107                                            type,                               \
                                                   >> 108                                            kunit_fail_assert_format)           \
                                                   >> 109 }
                                                   >> 110 
                                                   >> 111 /**
 74  * struct kunit_unary_assert - Represents a KU    112  * struct kunit_unary_assert - Represents a KUNIT_{EXPECT|ASSERT}_{TRUE|FALSE}
 75  * @assert: The parent of this type.              113  * @assert: The parent of this type.
 76  * @condition: A string representation of a co    114  * @condition: A string representation of a conditional expression.
 77  * @expected_true: True if of type KUNIT_{EXPE    115  * @expected_true: True if of type KUNIT_{EXPECT|ASSERT}_TRUE, false otherwise.
 78  *                                                116  *
 79  * Represents a simple expectation or assertio    117  * Represents a simple expectation or assertion that simply asserts something is
 80  * true or false. In other words, represents t    118  * true or false. In other words, represents the expectations:
 81  * KUNIT_{EXPECT|ASSERT}_{TRUE|FALSE}             119  * KUNIT_{EXPECT|ASSERT}_{TRUE|FALSE}
 82  */                                               120  */
 83 struct kunit_unary_assert {                       121 struct kunit_unary_assert {
 84         struct kunit_assert assert;               122         struct kunit_assert assert;
 85         const char *condition;                    123         const char *condition;
 86         bool expected_true;                       124         bool expected_true;
 87 };                                                125 };
 88                                                   126 
 89 void kunit_unary_assert_format(const struct ku    127 void kunit_unary_assert_format(const struct kunit_assert *assert,
 90                                const struct va << 
 91                                struct string_s    128                                struct string_stream *stream);
 92                                                   129 
 93 /**                                               130 /**
                                                   >> 131  * KUNIT_INIT_UNARY_ASSERT_STRUCT() - Initializes &struct kunit_unary_assert.
                                                   >> 132  * @test: The test case that this expectation/assertion is associated with.
                                                   >> 133  * @type: The type (assertion or expectation) of this kunit_assert.
                                                   >> 134  * @cond: A string representation of the expression asserted true or false.
                                                   >> 135  * @expect_true: True if of type KUNIT_{EXPECT|ASSERT}_TRUE, false otherwise.
                                                   >> 136  *
                                                   >> 137  * Initializes a &struct kunit_unary_assert. Intended to be used in
                                                   >> 138  * KUNIT_EXPECT_* and KUNIT_ASSERT_* macros.
                                                   >> 139  */
                                                   >> 140 #define KUNIT_INIT_UNARY_ASSERT_STRUCT(test, type, cond, expect_true) {        \
                                                   >> 141         .assert = KUNIT_INIT_ASSERT_STRUCT(test,                               \
                                                   >> 142                                            type,                               \
                                                   >> 143                                            kunit_unary_assert_format),         \
                                                   >> 144         .condition = cond,                                                     \
                                                   >> 145         .expected_true = expect_true                                           \
                                                   >> 146 }
                                                   >> 147 
                                                   >> 148 /**
 94  * struct kunit_ptr_not_err_assert - An expect    149  * struct kunit_ptr_not_err_assert - An expectation/assertion that a pointer is
 95  *      not NULL and not a -errno.                150  *      not NULL and not a -errno.
 96  * @assert: The parent of this type.              151  * @assert: The parent of this type.
 97  * @text: A string representation of the expre    152  * @text: A string representation of the expression passed to the expectation.
 98  * @value: The actual evaluated pointer value     153  * @value: The actual evaluated pointer value of the expression.
 99  *                                                154  *
100  * Represents an expectation/assertion that a     155  * Represents an expectation/assertion that a pointer is not null and is does
101  * not contain a -errno. (See IS_ERR_OR_NULL()    156  * not contain a -errno. (See IS_ERR_OR_NULL().)
102  */                                               157  */
103 struct kunit_ptr_not_err_assert {                 158 struct kunit_ptr_not_err_assert {
104         struct kunit_assert assert;               159         struct kunit_assert assert;
105         const char *text;                         160         const char *text;
106         const void *value;                        161         const void *value;
107 };                                                162 };
108                                                   163 
109 void kunit_ptr_not_err_assert_format(const str    164 void kunit_ptr_not_err_assert_format(const struct kunit_assert *assert,
110                                      const str << 
111                                      struct st    165                                      struct string_stream *stream);
112                                                   166 
113 /**                                               167 /**
114  * struct kunit_binary_assert_text - holds str !! 168  * KUNIT_INIT_PTR_NOT_ERR_ASSERT_STRUCT() - Initializes a
115  *      kunit_binary_assert and friends to try !! 169  *      &struct kunit_ptr_not_err_assert.
116  * @operation: A string representation of the  !! 170  * @test: The test case that this expectation/assertion is associated with.
117  * @left_text: A string representation of the  !! 171  * @type: The type (assertion or expectation) of this kunit_assert.
118  * @right_text: A string representation of the !! 172  * @txt: A string representation of the expression passed to the expectation.
                                                   >> 173  * @val: The actual evaluated pointer value of the expression.
                                                   >> 174  *
                                                   >> 175  * Initializes a &struct kunit_ptr_not_err_assert. Intended to be used in
                                                   >> 176  * KUNIT_EXPECT_* and KUNIT_ASSERT_* macros.
119  */                                               177  */
120 struct kunit_binary_assert_text {              !! 178 #define KUNIT_INIT_PTR_NOT_ERR_STRUCT(test, type, txt, val) {                  \
121         const char *operation;                 !! 179         .assert = KUNIT_INIT_ASSERT_STRUCT(test,                               \
122         const char *left_text;                 !! 180                                            type,                               \
123         const char *right_text;                !! 181                                            kunit_ptr_not_err_assert_format),   \
124 };                                             !! 182         .text = txt,                                                           \
                                                   >> 183         .value = val                                                           \
                                                   >> 184 }
125                                                   185 
126 /**                                               186 /**
127  * struct kunit_binary_assert - An expectation    187  * struct kunit_binary_assert - An expectation/assertion that compares two
128  *      non-pointer values (for example, KUNIT    188  *      non-pointer values (for example, KUNIT_EXPECT_EQ(test, 1 + 1, 2)).
129  * @assert: The parent of this type.              189  * @assert: The parent of this type.
130  * @text: Holds the textual representations of !! 190  * @operation: A string representation of the comparison operator (e.g. "==").
                                                   >> 191  * @left_text: A string representation of the expression in the left slot.
131  * @left_value: The actual evaluated value of     192  * @left_value: The actual evaluated value of the expression in the left slot.
                                                   >> 193  * @right_text: A string representation of the expression in the right slot.
132  * @right_value: The actual evaluated value of    194  * @right_value: The actual evaluated value of the expression in the right slot.
133  *                                                195  *
134  * Represents an expectation/assertion that co    196  * Represents an expectation/assertion that compares two non-pointer values. For
135  * example, to expect that 1 + 1 == 2, you can    197  * example, to expect that 1 + 1 == 2, you can use the expectation
136  * KUNIT_EXPECT_EQ(test, 1 + 1, 2);               198  * KUNIT_EXPECT_EQ(test, 1 + 1, 2);
137  */                                               199  */
138 struct kunit_binary_assert {                      200 struct kunit_binary_assert {
139         struct kunit_assert assert;               201         struct kunit_assert assert;
140         const struct kunit_binary_assert_text  !! 202         const char *operation;
                                                   >> 203         const char *left_text;
141         long long left_value;                     204         long long left_value;
                                                   >> 205         const char *right_text;
142         long long right_value;                    206         long long right_value;
143 };                                                207 };
144                                                   208 
145 void kunit_binary_assert_format(const struct k    209 void kunit_binary_assert_format(const struct kunit_assert *assert,
146                                 const struct v << 
147                                 struct string_    210                                 struct string_stream *stream);
148                                                   211 
149 /**                                               212 /**
                                                   >> 213  * KUNIT_INIT_BINARY_ASSERT_STRUCT() - Initializes a
                                                   >> 214  *      &struct kunit_binary_assert.
                                                   >> 215  * @test: The test case that this expectation/assertion is associated with.
                                                   >> 216  * @type: The type (assertion or expectation) of this kunit_assert.
                                                   >> 217  * @op_str: A string representation of the comparison operator (e.g. "==").
                                                   >> 218  * @left_str: A string representation of the expression in the left slot.
                                                   >> 219  * @left_val: The actual evaluated value of the expression in the left slot.
                                                   >> 220  * @right_str: A string representation of the expression in the right slot.
                                                   >> 221  * @right_val: The actual evaluated value of the expression in the right slot.
                                                   >> 222  *
                                                   >> 223  * Initializes a &struct kunit_binary_assert. Intended to be used in
                                                   >> 224  * KUNIT_EXPECT_* and KUNIT_ASSERT_* macros.
                                                   >> 225  */
                                                   >> 226 #define KUNIT_INIT_BINARY_ASSERT_STRUCT(test,                                  \
                                                   >> 227                                         type,                                  \
                                                   >> 228                                         op_str,                                \
                                                   >> 229                                         left_str,                              \
                                                   >> 230                                         left_val,                              \
                                                   >> 231                                         right_str,                             \
                                                   >> 232                                         right_val) {                           \
                                                   >> 233         .assert = KUNIT_INIT_ASSERT_STRUCT(test,                               \
                                                   >> 234                                            type,                               \
                                                   >> 235                                            kunit_binary_assert_format),        \
                                                   >> 236         .operation = op_str,                                                   \
                                                   >> 237         .left_text = left_str,                                                 \
                                                   >> 238         .left_value = left_val,                                                \
                                                   >> 239         .right_text = right_str,                                               \
                                                   >> 240         .right_value = right_val                                               \
                                                   >> 241 }
                                                   >> 242 
                                                   >> 243 /**
150  * struct kunit_binary_ptr_assert - An expecta    244  * struct kunit_binary_ptr_assert - An expectation/assertion that compares two
151  *      pointer values (for example, KUNIT_EXP    245  *      pointer values (for example, KUNIT_EXPECT_PTR_EQ(test, foo, bar)).
152  * @assert: The parent of this type.              246  * @assert: The parent of this type.
153  * @text: Holds the textual representations of !! 247  * @operation: A string representation of the comparison operator (e.g. "==").
                                                   >> 248  * @left_text: A string representation of the expression in the left slot.
154  * @left_value: The actual evaluated value of     249  * @left_value: The actual evaluated value of the expression in the left slot.
                                                   >> 250  * @right_text: A string representation of the expression in the right slot.
155  * @right_value: The actual evaluated value of    251  * @right_value: The actual evaluated value of the expression in the right slot.
156  *                                                252  *
157  * Represents an expectation/assertion that co    253  * Represents an expectation/assertion that compares two pointer values. For
158  * example, to expect that foo and bar point t    254  * example, to expect that foo and bar point to the same thing, you can use the
159  * expectation KUNIT_EXPECT_PTR_EQ(test, foo,     255  * expectation KUNIT_EXPECT_PTR_EQ(test, foo, bar);
160  */                                               256  */
161 struct kunit_binary_ptr_assert {                  257 struct kunit_binary_ptr_assert {
162         struct kunit_assert assert;               258         struct kunit_assert assert;
163         const struct kunit_binary_assert_text  !! 259         const char *operation;
                                                   >> 260         const char *left_text;
164         const void *left_value;                   261         const void *left_value;
                                                   >> 262         const char *right_text;
165         const void *right_value;                  263         const void *right_value;
166 };                                                264 };
167                                                   265 
168 void kunit_binary_ptr_assert_format(const stru    266 void kunit_binary_ptr_assert_format(const struct kunit_assert *assert,
169                                     const stru << 
170                                     struct str    267                                     struct string_stream *stream);
171                                                   268 
172 /**                                               269 /**
                                                   >> 270  * KUNIT_INIT_BINARY_PTR_ASSERT_STRUCT() - Initializes a
                                                   >> 271  *      &struct kunit_binary_ptr_assert.
                                                   >> 272  * @test: The test case that this expectation/assertion is associated with.
                                                   >> 273  * @type: The type (assertion or expectation) of this kunit_assert.
                                                   >> 274  * @op_str: A string representation of the comparison operator (e.g. "==").
                                                   >> 275  * @left_str: A string representation of the expression in the left slot.
                                                   >> 276  * @left_val: The actual evaluated value of the expression in the left slot.
                                                   >> 277  * @right_str: A string representation of the expression in the right slot.
                                                   >> 278  * @right_val: The actual evaluated value of the expression in the right slot.
                                                   >> 279  *
                                                   >> 280  * Initializes a &struct kunit_binary_ptr_assert. Intended to be used in
                                                   >> 281  * KUNIT_EXPECT_* and KUNIT_ASSERT_* macros.
                                                   >> 282  */
                                                   >> 283 #define KUNIT_INIT_BINARY_PTR_ASSERT_STRUCT(test,                              \
                                                   >> 284                                             type,                              \
                                                   >> 285                                             op_str,                            \
                                                   >> 286                                             left_str,                          \
                                                   >> 287                                             left_val,                          \
                                                   >> 288                                             right_str,                         \
                                                   >> 289                                             right_val) {                       \
                                                   >> 290         .assert = KUNIT_INIT_ASSERT_STRUCT(test,                               \
                                                   >> 291                                            type,                               \
                                                   >> 292                                            kunit_binary_ptr_assert_format),    \
                                                   >> 293         .operation = op_str,                                                   \
                                                   >> 294         .left_text = left_str,                                                 \
                                                   >> 295         .left_value = left_val,                                                \
                                                   >> 296         .right_text = right_str,                                               \
                                                   >> 297         .right_value = right_val                                               \
                                                   >> 298 }
                                                   >> 299 
                                                   >> 300 /**
173  * struct kunit_binary_str_assert - An expecta    301  * struct kunit_binary_str_assert - An expectation/assertion that compares two
174  *      string values (for example, KUNIT_EXPE    302  *      string values (for example, KUNIT_EXPECT_STREQ(test, foo, "bar")).
175  * @assert: The parent of this type.              303  * @assert: The parent of this type.
176  * @text: Holds the textual representations of !! 304  * @operation: A string representation of the comparison operator (e.g. "==").
                                                   >> 305  * @left_text: A string representation of the expression in the left slot.
177  * @left_value: The actual evaluated value of     306  * @left_value: The actual evaluated value of the expression in the left slot.
                                                   >> 307  * @right_text: A string representation of the expression in the right slot.
178  * @right_value: The actual evaluated value of    308  * @right_value: The actual evaluated value of the expression in the right slot.
179  *                                                309  *
180  * Represents an expectation/assertion that co    310  * Represents an expectation/assertion that compares two string values. For
181  * example, to expect that the string in foo i    311  * example, to expect that the string in foo is equal to "bar", you can use the
182  * expectation KUNIT_EXPECT_STREQ(test, foo, "    312  * expectation KUNIT_EXPECT_STREQ(test, foo, "bar");
183  */                                               313  */
184 struct kunit_binary_str_assert {                  314 struct kunit_binary_str_assert {
185         struct kunit_assert assert;               315         struct kunit_assert assert;
186         const struct kunit_binary_assert_text  !! 316         const char *operation;
                                                   >> 317         const char *left_text;
187         const char *left_value;                   318         const char *left_value;
                                                   >> 319         const char *right_text;
188         const char *right_value;                  320         const char *right_value;
189 };                                                321 };
190                                                   322 
191 void kunit_binary_str_assert_format(const stru    323 void kunit_binary_str_assert_format(const struct kunit_assert *assert,
192                                     const stru << 
193                                     struct str    324                                     struct string_stream *stream);
194                                                   325 
195 /**                                               326 /**
196  * struct kunit_mem_assert - An expectation/as !! 327  * KUNIT_INIT_BINARY_STR_ASSERT_STRUCT() - Initializes a
197  *      memory blocks.                         !! 328  *      &struct kunit_binary_str_assert.
198  * @assert: The parent of this type.           !! 329  * @test: The test case that this expectation/assertion is associated with.
199  * @text: Holds the textual representations of !! 330  * @type: The type (assertion or expectation) of this kunit_assert.
200  * @left_value: The actual evaluated value of  !! 331  * @op_str: A string representation of the comparison operator (e.g. "==").
201  * @right_value: The actual evaluated value of !! 332  * @left_str: A string representation of the expression in the left slot.
202  * @size: Size of the memory block analysed in !! 333  * @left_val: The actual evaluated value of the expression in the left slot.
                                                   >> 334  * @right_str: A string representation of the expression in the right slot.
                                                   >> 335  * @right_val: The actual evaluated value of the expression in the right slot.
203  *                                                336  *
204  * Represents an expectation/assertion that co !! 337  * Initializes a &struct kunit_binary_str_assert. Intended to be used in
205  * example, to expect that the first three byt !! 338  * KUNIT_EXPECT_* and KUNIT_ASSERT_* macros.
206  * first three bytes of bar, you can use the e << 
207  * KUNIT_EXPECT_MEMEQ(test, foo, bar, 3);      << 
208  */                                               339  */
209 struct kunit_mem_assert {                      !! 340 #define KUNIT_INIT_BINARY_STR_ASSERT_STRUCT(test,                              \
210         struct kunit_assert assert;            !! 341                                             type,                              \
211         const struct kunit_binary_assert_text  !! 342                                             op_str,                            \
212         const void *left_value;                !! 343                                             left_str,                          \
213         const void *right_value;               !! 344                                             left_val,                          \
214         const size_t size;                     !! 345                                             right_str,                         \
215 };                                             !! 346                                             right_val) {                       \
216                                                !! 347         .assert = KUNIT_INIT_ASSERT_STRUCT(test,                               \
217 void kunit_mem_assert_format(const struct kuni !! 348                                            type,                               \
218                              const struct va_f !! 349                                            kunit_binary_str_assert_format),    \
219                              struct string_str !! 350         .operation = op_str,                                                   \
220                                                !! 351         .left_text = left_str,                                                 \
221 #if IS_ENABLED(CONFIG_KUNIT)                   !! 352         .left_value = left_val,                                                \
222 void kunit_assert_print_msg(const struct va_fo !! 353         .right_text = right_str,                                               \
223                             struct string_stre !! 354         .right_value = right_val                                               \
224 bool is_literal(const char *text, long long va !! 355 }
225 bool is_str_literal(const char *text, const ch << 
226 void kunit_assert_hexdump(struct string_stream << 
227                           const void *buf,     << 
228                           const void *compared << 
229                           const size_t len);   << 
230 #endif                                         << 
231                                                   356 
232 #endif /*  _KUNIT_ASSERT_H */                     357 #endif /*  _KUNIT_ASSERT_H */
233                                                   358 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php