From: kernel test robot <lkp@intel.com>
To: Arpitha Raghunandan <98.arpi@gmail.com>,
brendanhiggins@google.com, skhan@linuxfoundation.org,
elver@google.com, yzaikin@google.com, tytso@mit.edu,
adilger.kernel@dilger.ca
Cc: kbuild-all@lists.01.org, Arpitha Raghunandan <98.arpi@gmail.com>,
linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature
Date: Wed, 28 Oct 2020 07:49:42 +0800 [thread overview]
Message-ID: <202010280748.WUyq8OoJ-lkp@intel.com> (raw)
In-Reply-To: <20201027174726.85284-1-98.arpi@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 56240 bytes --]
Hi Arpitha,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on ext4/dev]
[also build test WARNING on linus/master v5.10-rc1 next-20201027]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Arpitha-Raghunandan/kunit-Support-for-Parameterized-Testing/20201028-015018
base: https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev
config: mips-randconfig-r016-20201027 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/2de1e52708cd83d1dc4c718876683f6809045a98
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Arpitha-Raghunandan/kunit-Support-for-Parameterized-Testing/20201028-015018
git checkout 2de1e52708cd83d1dc4c718876683f6809045a98
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from fs/ext4/inode-test.c:7:
fs/ext4/inode-test.c: In function 'ext4_inode_gen_params':
>> include/kunit/test.h:1735:58: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
1735 | return __next - (array) < ARRAY_SIZE((array)) ? __next : NULL; \
fs/ext4/inode-test.c:214:1: note: in expansion of macro 'KUNIT_ARRAY_PARAM'
214 | KUNIT_ARRAY_PARAM(ext4_inode, test_data);
| ^~~~~~~~~~~~~~~~~
vim +/const +1735 include/kunit/test.h
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1154
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1155 #define KUNIT_PTR_NOT_ERR_OR_NULL_ASSERTION(test, assert_type, ptr) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1156 KUNIT_PTR_NOT_ERR_OR_NULL_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1157 assert_type, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1158 ptr, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1159 NULL)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1160
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1161 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1162 * KUNIT_EXPECT_TRUE() - Causes a test failure when the expression is not true.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1163 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1164 * @condition: an arbitrary boolean expression. The test fails when this does
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1165 * not evaluate to true.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1166 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1167 * This and expectations of the form `KUNIT_EXPECT_*` will cause the test case
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1168 * to fail when the specified condition is not met; however, it will not prevent
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1169 * the test case from continuing to run; this is otherwise known as an
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1170 * *expectation failure*.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1171 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1172 #define KUNIT_EXPECT_TRUE(test, condition) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1173 KUNIT_TRUE_ASSERTION(test, KUNIT_EXPECTATION, condition)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1174
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1175 #define KUNIT_EXPECT_TRUE_MSG(test, condition, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1176 KUNIT_TRUE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1177 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1178 condition, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1179 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1180 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1181
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1182 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1183 * KUNIT_EXPECT_FALSE() - Makes a test failure when the expression is not false.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1184 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1185 * @condition: an arbitrary boolean expression. The test fails when this does
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1186 * not evaluate to false.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1187 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1188 * Sets an expectation that @condition evaluates to false. See
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1189 * KUNIT_EXPECT_TRUE() for more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1190 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1191 #define KUNIT_EXPECT_FALSE(test, condition) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1192 KUNIT_FALSE_ASSERTION(test, KUNIT_EXPECTATION, condition)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1193
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1194 #define KUNIT_EXPECT_FALSE_MSG(test, condition, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1195 KUNIT_FALSE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1196 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1197 condition, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1198 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1199 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1200
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1201 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1202 * KUNIT_EXPECT_EQ() - Sets an expectation that @left and @right are equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1203 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1204 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1205 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1206 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1207 * Sets an expectation that the values that @left and @right evaluate to are
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1208 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1209 * KUNIT_EXPECT_TRUE(@test, (@left) == (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1210 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1211 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1212 #define KUNIT_EXPECT_EQ(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1213 KUNIT_BINARY_EQ_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1214
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1215 #define KUNIT_EXPECT_EQ_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1216 KUNIT_BINARY_EQ_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1217 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1218 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1219 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1220 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1221 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1222
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1223 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1224 * KUNIT_EXPECT_PTR_EQ() - Expects that pointers @left and @right are equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1225 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1226 * @left: an arbitrary expression that evaluates to a pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1227 * @right: an arbitrary expression that evaluates to a pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1228 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1229 * Sets an expectation that the values that @left and @right evaluate to are
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1230 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1231 * KUNIT_EXPECT_TRUE(@test, (@left) == (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1232 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1233 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1234 #define KUNIT_EXPECT_PTR_EQ(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1235 KUNIT_BINARY_PTR_EQ_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1236 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1237 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1238 right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1239
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1240 #define KUNIT_EXPECT_PTR_EQ_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1241 KUNIT_BINARY_PTR_EQ_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1242 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1243 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1244 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1245 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1246 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1247
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1248 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1249 * KUNIT_EXPECT_NE() - An expectation that @left and @right are not equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1250 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1251 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1252 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1253 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1254 * Sets an expectation that the values that @left and @right evaluate to are not
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1255 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1256 * KUNIT_EXPECT_TRUE(@test, (@left) != (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1257 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1258 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1259 #define KUNIT_EXPECT_NE(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1260 KUNIT_BINARY_NE_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1261
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1262 #define KUNIT_EXPECT_NE_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1263 KUNIT_BINARY_NE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1264 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1265 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1266 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1267 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1268 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1269
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1270 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1271 * KUNIT_EXPECT_PTR_NE() - Expects that pointers @left and @right are not equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1272 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1273 * @left: an arbitrary expression that evaluates to a pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1274 * @right: an arbitrary expression that evaluates to a pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1275 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1276 * Sets an expectation that the values that @left and @right evaluate to are not
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1277 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1278 * KUNIT_EXPECT_TRUE(@test, (@left) != (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1279 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1280 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1281 #define KUNIT_EXPECT_PTR_NE(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1282 KUNIT_BINARY_PTR_NE_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1283 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1284 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1285 right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1286
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1287 #define KUNIT_EXPECT_PTR_NE_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1288 KUNIT_BINARY_PTR_NE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1289 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1290 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1291 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1292 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1293 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1294
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1295 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1296 * KUNIT_EXPECT_LT() - An expectation that @left is less than @right.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1297 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1298 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1299 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1300 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1301 * Sets an expectation that the value that @left evaluates to is less than the
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1302 * value that @right evaluates to. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1303 * KUNIT_EXPECT_TRUE(@test, (@left) < (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1304 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1305 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1306 #define KUNIT_EXPECT_LT(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1307 KUNIT_BINARY_LT_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1308
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1309 #define KUNIT_EXPECT_LT_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1310 KUNIT_BINARY_LT_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1311 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1312 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1313 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1314 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1315 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1316
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1317 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1318 * KUNIT_EXPECT_LE() - Expects that @left is less than or equal to @right.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1319 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1320 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1321 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1322 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1323 * Sets an expectation that the value that @left evaluates to is less than or
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1324 * equal to the value that @right evaluates to. Semantically this is equivalent
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1325 * to KUNIT_EXPECT_TRUE(@test, (@left) <= (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1326 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1327 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1328 #define KUNIT_EXPECT_LE(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1329 KUNIT_BINARY_LE_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1330
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1331 #define KUNIT_EXPECT_LE_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1332 KUNIT_BINARY_LE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1333 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1334 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1335 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1336 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1337 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1338
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1339 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1340 * KUNIT_EXPECT_GT() - An expectation that @left is greater than @right.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1341 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1342 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1343 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1344 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1345 * Sets an expectation that the value that @left evaluates to is greater than
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1346 * the value that @right evaluates to. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1347 * KUNIT_EXPECT_TRUE(@test, (@left) > (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1348 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1349 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1350 #define KUNIT_EXPECT_GT(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1351 KUNIT_BINARY_GT_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1352
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1353 #define KUNIT_EXPECT_GT_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1354 KUNIT_BINARY_GT_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1355 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1356 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1357 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1358 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1359 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1360
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1361 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1362 * KUNIT_EXPECT_GE() - Expects that @left is greater than or equal to @right.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1363 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1364 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1365 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1366 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1367 * Sets an expectation that the value that @left evaluates to is greater than
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1368 * the value that @right evaluates to. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1369 * KUNIT_EXPECT_TRUE(@test, (@left) >= (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1370 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1371 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1372 #define KUNIT_EXPECT_GE(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1373 KUNIT_BINARY_GE_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1374
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1375 #define KUNIT_EXPECT_GE_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1376 KUNIT_BINARY_GE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1377 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1378 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1379 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1380 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1381 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1382
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1383 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1384 * KUNIT_EXPECT_STREQ() - Expects that strings @left and @right are equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1385 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1386 * @left: an arbitrary expression that evaluates to a null terminated string.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1387 * @right: an arbitrary expression that evaluates to a null terminated string.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1388 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1389 * Sets an expectation that the values that @left and @right evaluate to are
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1390 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1391 * KUNIT_EXPECT_TRUE(@test, !strcmp((@left), (@right))). See KUNIT_EXPECT_TRUE()
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1392 * for more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1393 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1394 #define KUNIT_EXPECT_STREQ(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1395 KUNIT_BINARY_STR_EQ_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1396
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1397 #define KUNIT_EXPECT_STREQ_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1398 KUNIT_BINARY_STR_EQ_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1399 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1400 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1401 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1402 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1403 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1404
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1405 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1406 * KUNIT_EXPECT_STRNEQ() - Expects that strings @left and @right are not equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1407 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1408 * @left: an arbitrary expression that evaluates to a null terminated string.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1409 * @right: an arbitrary expression that evaluates to a null terminated string.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1410 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1411 * Sets an expectation that the values that @left and @right evaluate to are
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1412 * not equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1413 * KUNIT_EXPECT_TRUE(@test, strcmp((@left), (@right))). See KUNIT_EXPECT_TRUE()
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1414 * for more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1415 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1416 #define KUNIT_EXPECT_STRNEQ(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1417 KUNIT_BINARY_STR_NE_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1418
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1419 #define KUNIT_EXPECT_STRNEQ_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1420 KUNIT_BINARY_STR_NE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1421 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1422 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1423 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1424 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1425 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1426
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1427 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1428 * KUNIT_EXPECT_NOT_ERR_OR_NULL() - Expects that @ptr is not null and not err.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1429 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1430 * @ptr: an arbitrary pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1431 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1432 * Sets an expectation that the value that @ptr evaluates to is not null and not
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1433 * an errno stored in a pointer. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1434 * KUNIT_EXPECT_TRUE(@test, !IS_ERR_OR_NULL(@ptr)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1435 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1436 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1437 #define KUNIT_EXPECT_NOT_ERR_OR_NULL(test, ptr) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1438 KUNIT_PTR_NOT_ERR_OR_NULL_ASSERTION(test, KUNIT_EXPECTATION, ptr)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1439
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1440 #define KUNIT_EXPECT_NOT_ERR_OR_NULL_MSG(test, ptr, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1441 KUNIT_PTR_NOT_ERR_OR_NULL_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1442 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1443 ptr, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1444 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1445 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1446
e4aea8f8532b55 Brendan Higgins 2019-09-23 1447 #define KUNIT_ASSERT_FAILURE(test, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1448 KUNIT_FAIL_ASSERTION(test, KUNIT_ASSERTION, fmt, ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1449
e4aea8f8532b55 Brendan Higgins 2019-09-23 1450 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1451 * KUNIT_ASSERT_TRUE() - Sets an assertion that @condition is true.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1452 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1453 * @condition: an arbitrary boolean expression. The test fails and aborts when
e4aea8f8532b55 Brendan Higgins 2019-09-23 1454 * this does not evaluate to true.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1455 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1456 * This and assertions of the form `KUNIT_ASSERT_*` will cause the test case to
e4aea8f8532b55 Brendan Higgins 2019-09-23 1457 * fail *and immediately abort* when the specified condition is not met. Unlike
e4aea8f8532b55 Brendan Higgins 2019-09-23 1458 * an expectation failure, it will prevent the test case from continuing to run;
e4aea8f8532b55 Brendan Higgins 2019-09-23 1459 * this is otherwise known as an *assertion failure*.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1460 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1461 #define KUNIT_ASSERT_TRUE(test, condition) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1462 KUNIT_TRUE_ASSERTION(test, KUNIT_ASSERTION, condition)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1463
e4aea8f8532b55 Brendan Higgins 2019-09-23 1464 #define KUNIT_ASSERT_TRUE_MSG(test, condition, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1465 KUNIT_TRUE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1466 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1467 condition, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1468 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1469 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1470
e4aea8f8532b55 Brendan Higgins 2019-09-23 1471 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1472 * KUNIT_ASSERT_FALSE() - Sets an assertion that @condition is false.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1473 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1474 * @condition: an arbitrary boolean expression.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1475 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1476 * Sets an assertion that the value that @condition evaluates to is false. This
e4aea8f8532b55 Brendan Higgins 2019-09-23 1477 * is the same as KUNIT_EXPECT_FALSE(), except it causes an assertion failure
e4aea8f8532b55 Brendan Higgins 2019-09-23 1478 * (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1479 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1480 #define KUNIT_ASSERT_FALSE(test, condition) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1481 KUNIT_FALSE_ASSERTION(test, KUNIT_ASSERTION, condition)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1482
e4aea8f8532b55 Brendan Higgins 2019-09-23 1483 #define KUNIT_ASSERT_FALSE_MSG(test, condition, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1484 KUNIT_FALSE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1485 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1486 condition, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1487 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1488 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1489
e4aea8f8532b55 Brendan Higgins 2019-09-23 1490 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1491 * KUNIT_ASSERT_EQ() - Sets an assertion that @left and @right are equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1492 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1493 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1494 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1495 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1496 * Sets an assertion that the values that @left and @right evaluate to are
e4aea8f8532b55 Brendan Higgins 2019-09-23 1497 * equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1498 * failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1499 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1500 #define KUNIT_ASSERT_EQ(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1501 KUNIT_BINARY_EQ_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1502
e4aea8f8532b55 Brendan Higgins 2019-09-23 1503 #define KUNIT_ASSERT_EQ_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1504 KUNIT_BINARY_EQ_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1505 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1506 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1507 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1508 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1509 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1510
e4aea8f8532b55 Brendan Higgins 2019-09-23 1511 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1512 * KUNIT_ASSERT_PTR_EQ() - Asserts that pointers @left and @right are equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1513 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1514 * @left: an arbitrary expression that evaluates to a pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1515 * @right: an arbitrary expression that evaluates to a pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1516 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1517 * Sets an assertion that the values that @left and @right evaluate to are
e4aea8f8532b55 Brendan Higgins 2019-09-23 1518 * equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1519 * failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1520 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1521 #define KUNIT_ASSERT_PTR_EQ(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1522 KUNIT_BINARY_PTR_EQ_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1523
e4aea8f8532b55 Brendan Higgins 2019-09-23 1524 #define KUNIT_ASSERT_PTR_EQ_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1525 KUNIT_BINARY_PTR_EQ_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1526 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1527 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1528 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1529 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1530 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1531
e4aea8f8532b55 Brendan Higgins 2019-09-23 1532 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1533 * KUNIT_ASSERT_NE() - An assertion that @left and @right are not equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1534 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1535 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1536 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1537 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1538 * Sets an assertion that the values that @left and @right evaluate to are not
e4aea8f8532b55 Brendan Higgins 2019-09-23 1539 * equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1540 * failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1541 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1542 #define KUNIT_ASSERT_NE(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1543 KUNIT_BINARY_NE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1544
e4aea8f8532b55 Brendan Higgins 2019-09-23 1545 #define KUNIT_ASSERT_NE_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1546 KUNIT_BINARY_NE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1547 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1548 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1549 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1550 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1551 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1552
e4aea8f8532b55 Brendan Higgins 2019-09-23 1553 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1554 * KUNIT_ASSERT_PTR_NE() - Asserts that pointers @left and @right are not equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1555 * KUNIT_ASSERT_PTR_EQ() - Asserts that pointers @left and @right are equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1556 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1557 * @left: an arbitrary expression that evaluates to a pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1558 * @right: an arbitrary expression that evaluates to a pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1559 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1560 * Sets an assertion that the values that @left and @right evaluate to are not
e4aea8f8532b55 Brendan Higgins 2019-09-23 1561 * equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1562 * failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1563 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1564 #define KUNIT_ASSERT_PTR_NE(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1565 KUNIT_BINARY_PTR_NE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1566
e4aea8f8532b55 Brendan Higgins 2019-09-23 1567 #define KUNIT_ASSERT_PTR_NE_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1568 KUNIT_BINARY_PTR_NE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1569 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1570 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1571 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1572 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1573 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1574 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1575 * KUNIT_ASSERT_LT() - An assertion that @left is less than @right.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1576 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1577 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1578 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1579 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1580 * Sets an assertion that the value that @left evaluates to is less than the
e4aea8f8532b55 Brendan Higgins 2019-09-23 1581 * value that @right evaluates to. This is the same as KUNIT_EXPECT_LT(), except
e4aea8f8532b55 Brendan Higgins 2019-09-23 1582 * it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1583 * is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1584 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1585 #define KUNIT_ASSERT_LT(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1586 KUNIT_BINARY_LT_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1587
e4aea8f8532b55 Brendan Higgins 2019-09-23 1588 #define KUNIT_ASSERT_LT_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1589 KUNIT_BINARY_LT_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1590 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1591 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1592 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1593 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1594 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1595 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1596 * KUNIT_ASSERT_LE() - An assertion that @left is less than or equal to @right.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1597 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1598 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1599 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1600 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1601 * Sets an assertion that the value that @left evaluates to is less than or
e4aea8f8532b55 Brendan Higgins 2019-09-23 1602 * equal to the value that @right evaluates to. This is the same as
e4aea8f8532b55 Brendan Higgins 2019-09-23 1603 * KUNIT_EXPECT_LE(), except it causes an assertion failure (see
e4aea8f8532b55 Brendan Higgins 2019-09-23 1604 * KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1605 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1606 #define KUNIT_ASSERT_LE(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1607 KUNIT_BINARY_LE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1608
e4aea8f8532b55 Brendan Higgins 2019-09-23 1609 #define KUNIT_ASSERT_LE_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1610 KUNIT_BINARY_LE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1611 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1612 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1613 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1614 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1615 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1616
e4aea8f8532b55 Brendan Higgins 2019-09-23 1617 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1618 * KUNIT_ASSERT_GT() - An assertion that @left is greater than @right.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1619 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1620 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1621 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1622 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1623 * Sets an assertion that the value that @left evaluates to is greater than the
e4aea8f8532b55 Brendan Higgins 2019-09-23 1624 * value that @right evaluates to. This is the same as KUNIT_EXPECT_GT(), except
e4aea8f8532b55 Brendan Higgins 2019-09-23 1625 * it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1626 * is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1627 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1628 #define KUNIT_ASSERT_GT(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1629 KUNIT_BINARY_GT_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1630
e4aea8f8532b55 Brendan Higgins 2019-09-23 1631 #define KUNIT_ASSERT_GT_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1632 KUNIT_BINARY_GT_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1633 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1634 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1635 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1636 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1637 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1638
e4aea8f8532b55 Brendan Higgins 2019-09-23 1639 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1640 * KUNIT_ASSERT_GE() - Assertion that @left is greater than or equal to @right.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1641 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1642 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1643 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1644 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1645 * Sets an assertion that the value that @left evaluates to is greater than the
e4aea8f8532b55 Brendan Higgins 2019-09-23 1646 * value that @right evaluates to. This is the same as KUNIT_EXPECT_GE(), except
e4aea8f8532b55 Brendan Higgins 2019-09-23 1647 * it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1648 * is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1649 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1650 #define KUNIT_ASSERT_GE(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1651 KUNIT_BINARY_GE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1652
e4aea8f8532b55 Brendan Higgins 2019-09-23 1653 #define KUNIT_ASSERT_GE_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1654 KUNIT_BINARY_GE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1655 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1656 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1657 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1658 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1659 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1660
e4aea8f8532b55 Brendan Higgins 2019-09-23 1661 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1662 * KUNIT_ASSERT_STREQ() - An assertion that strings @left and @right are equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1663 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1664 * @left: an arbitrary expression that evaluates to a null terminated string.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1665 * @right: an arbitrary expression that evaluates to a null terminated string.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1666 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1667 * Sets an assertion that the values that @left and @right evaluate to are
e4aea8f8532b55 Brendan Higgins 2019-09-23 1668 * equal. This is the same as KUNIT_EXPECT_STREQ(), except it causes an
e4aea8f8532b55 Brendan Higgins 2019-09-23 1669 * assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1670 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1671 #define KUNIT_ASSERT_STREQ(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1672 KUNIT_BINARY_STR_EQ_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1673
e4aea8f8532b55 Brendan Higgins 2019-09-23 1674 #define KUNIT_ASSERT_STREQ_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1675 KUNIT_BINARY_STR_EQ_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1676 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1677 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1678 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1679 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1680 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1681
e4aea8f8532b55 Brendan Higgins 2019-09-23 1682 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1683 * KUNIT_ASSERT_STRNEQ() - Expects that strings @left and @right are not equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1684 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1685 * @left: an arbitrary expression that evaluates to a null terminated string.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1686 * @right: an arbitrary expression that evaluates to a null terminated string.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1687 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1688 * Sets an expectation that the values that @left and @right evaluate to are
e4aea8f8532b55 Brendan Higgins 2019-09-23 1689 * not equal. This is semantically equivalent to
e4aea8f8532b55 Brendan Higgins 2019-09-23 1690 * KUNIT_ASSERT_TRUE(@test, strcmp((@left), (@right))). See KUNIT_ASSERT_TRUE()
e4aea8f8532b55 Brendan Higgins 2019-09-23 1691 * for more information.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1692 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1693 #define KUNIT_ASSERT_STRNEQ(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1694 KUNIT_BINARY_STR_NE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1695
e4aea8f8532b55 Brendan Higgins 2019-09-23 1696 #define KUNIT_ASSERT_STRNEQ_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1697 KUNIT_BINARY_STR_NE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1698 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1699 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1700 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1701 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1702 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1703
e4aea8f8532b55 Brendan Higgins 2019-09-23 1704 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1705 * KUNIT_ASSERT_NOT_ERR_OR_NULL() - Assertion that @ptr is not null and not err.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1706 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1707 * @ptr: an arbitrary pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1708 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1709 * Sets an assertion that the value that @ptr evaluates to is not null and not
e4aea8f8532b55 Brendan Higgins 2019-09-23 1710 * an errno stored in a pointer. This is the same as
e4aea8f8532b55 Brendan Higgins 2019-09-23 1711 * KUNIT_EXPECT_NOT_ERR_OR_NULL(), except it causes an assertion failure (see
e4aea8f8532b55 Brendan Higgins 2019-09-23 1712 * KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1713 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1714 #define KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1715 KUNIT_PTR_NOT_ERR_OR_NULL_ASSERTION(test, KUNIT_ASSERTION, ptr)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1716
e4aea8f8532b55 Brendan Higgins 2019-09-23 1717 #define KUNIT_ASSERT_NOT_ERR_OR_NULL_MSG(test, ptr, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1718 KUNIT_PTR_NOT_ERR_OR_NULL_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1719 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1720 ptr, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1721 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1722 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1723
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1724 /**
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1725 * KUNIT_ARRAY_PARAM() - Helper method for test parameter generators
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1726 * required in parameterized tests.
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1727 * @name: prefix of the name for the test parameter generator function.
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1728 * It will be suffixed by "_gen_params".
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1729 * @array: a user-supplied pointer to an array of test parameters.
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1730 */
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1731 #define KUNIT_ARRAY_PARAM(name, array) \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1732 static void *name##_gen_params(void *prev) \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1733 { \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1734 typeof((array)[0]) * __next = prev ? ((typeof(__next)) prev) + 1 : (array); \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 @1735 return __next - (array) < ARRAY_SIZE((array)) ? __next : NULL; \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1736 }
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1737
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 31654 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v4 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature
Date: Wed, 28 Oct 2020 07:49:42 +0800 [thread overview]
Message-ID: <202010280748.WUyq8OoJ-lkp@intel.com> (raw)
In-Reply-To: <20201027174726.85284-1-98.arpi@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 56867 bytes --]
Hi Arpitha,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on ext4/dev]
[also build test WARNING on linus/master v5.10-rc1 next-20201027]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Arpitha-Raghunandan/kunit-Support-for-Parameterized-Testing/20201028-015018
base: https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev
config: mips-randconfig-r016-20201027 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/2de1e52708cd83d1dc4c718876683f6809045a98
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Arpitha-Raghunandan/kunit-Support-for-Parameterized-Testing/20201028-015018
git checkout 2de1e52708cd83d1dc4c718876683f6809045a98
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from fs/ext4/inode-test.c:7:
fs/ext4/inode-test.c: In function 'ext4_inode_gen_params':
>> include/kunit/test.h:1735:58: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
1735 | return __next - (array) < ARRAY_SIZE((array)) ? __next : NULL; \
fs/ext4/inode-test.c:214:1: note: in expansion of macro 'KUNIT_ARRAY_PARAM'
214 | KUNIT_ARRAY_PARAM(ext4_inode, test_data);
| ^~~~~~~~~~~~~~~~~
vim +/const +1735 include/kunit/test.h
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1154
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1155 #define KUNIT_PTR_NOT_ERR_OR_NULL_ASSERTION(test, assert_type, ptr) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1156 KUNIT_PTR_NOT_ERR_OR_NULL_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1157 assert_type, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1158 ptr, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1159 NULL)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1160
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1161 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1162 * KUNIT_EXPECT_TRUE() - Causes a test failure when the expression is not true.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1163 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1164 * @condition: an arbitrary boolean expression. The test fails when this does
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1165 * not evaluate to true.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1166 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1167 * This and expectations of the form `KUNIT_EXPECT_*` will cause the test case
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1168 * to fail when the specified condition is not met; however, it will not prevent
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1169 * the test case from continuing to run; this is otherwise known as an
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1170 * *expectation failure*.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1171 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1172 #define KUNIT_EXPECT_TRUE(test, condition) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1173 KUNIT_TRUE_ASSERTION(test, KUNIT_EXPECTATION, condition)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1174
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1175 #define KUNIT_EXPECT_TRUE_MSG(test, condition, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1176 KUNIT_TRUE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1177 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1178 condition, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1179 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1180 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1181
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1182 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1183 * KUNIT_EXPECT_FALSE() - Makes a test failure when the expression is not false.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1184 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1185 * @condition: an arbitrary boolean expression. The test fails when this does
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1186 * not evaluate to false.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1187 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1188 * Sets an expectation that @condition evaluates to false. See
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1189 * KUNIT_EXPECT_TRUE() for more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1190 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1191 #define KUNIT_EXPECT_FALSE(test, condition) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1192 KUNIT_FALSE_ASSERTION(test, KUNIT_EXPECTATION, condition)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1193
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1194 #define KUNIT_EXPECT_FALSE_MSG(test, condition, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1195 KUNIT_FALSE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1196 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1197 condition, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1198 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1199 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1200
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1201 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1202 * KUNIT_EXPECT_EQ() - Sets an expectation that @left and @right are equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1203 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1204 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1205 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1206 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1207 * Sets an expectation that the values that @left and @right evaluate to are
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1208 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1209 * KUNIT_EXPECT_TRUE(@test, (@left) == (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1210 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1211 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1212 #define KUNIT_EXPECT_EQ(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1213 KUNIT_BINARY_EQ_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1214
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1215 #define KUNIT_EXPECT_EQ_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1216 KUNIT_BINARY_EQ_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1217 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1218 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1219 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1220 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1221 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1222
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1223 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1224 * KUNIT_EXPECT_PTR_EQ() - Expects that pointers @left and @right are equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1225 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1226 * @left: an arbitrary expression that evaluates to a pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1227 * @right: an arbitrary expression that evaluates to a pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1228 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1229 * Sets an expectation that the values that @left and @right evaluate to are
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1230 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1231 * KUNIT_EXPECT_TRUE(@test, (@left) == (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1232 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1233 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1234 #define KUNIT_EXPECT_PTR_EQ(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1235 KUNIT_BINARY_PTR_EQ_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1236 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1237 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1238 right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1239
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1240 #define KUNIT_EXPECT_PTR_EQ_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1241 KUNIT_BINARY_PTR_EQ_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1242 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1243 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1244 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1245 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1246 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1247
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1248 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1249 * KUNIT_EXPECT_NE() - An expectation that @left and @right are not equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1250 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1251 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1252 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1253 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1254 * Sets an expectation that the values that @left and @right evaluate to are not
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1255 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1256 * KUNIT_EXPECT_TRUE(@test, (@left) != (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1257 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1258 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1259 #define KUNIT_EXPECT_NE(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1260 KUNIT_BINARY_NE_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1261
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1262 #define KUNIT_EXPECT_NE_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1263 KUNIT_BINARY_NE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1264 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1265 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1266 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1267 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1268 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1269
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1270 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1271 * KUNIT_EXPECT_PTR_NE() - Expects that pointers @left and @right are not equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1272 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1273 * @left: an arbitrary expression that evaluates to a pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1274 * @right: an arbitrary expression that evaluates to a pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1275 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1276 * Sets an expectation that the values that @left and @right evaluate to are not
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1277 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1278 * KUNIT_EXPECT_TRUE(@test, (@left) != (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1279 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1280 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1281 #define KUNIT_EXPECT_PTR_NE(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1282 KUNIT_BINARY_PTR_NE_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1283 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1284 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1285 right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1286
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1287 #define KUNIT_EXPECT_PTR_NE_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1288 KUNIT_BINARY_PTR_NE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1289 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1290 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1291 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1292 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1293 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1294
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1295 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1296 * KUNIT_EXPECT_LT() - An expectation that @left is less than @right.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1297 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1298 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1299 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1300 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1301 * Sets an expectation that the value that @left evaluates to is less than the
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1302 * value that @right evaluates to. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1303 * KUNIT_EXPECT_TRUE(@test, (@left) < (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1304 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1305 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1306 #define KUNIT_EXPECT_LT(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1307 KUNIT_BINARY_LT_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1308
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1309 #define KUNIT_EXPECT_LT_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1310 KUNIT_BINARY_LT_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1311 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1312 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1313 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1314 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1315 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1316
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1317 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1318 * KUNIT_EXPECT_LE() - Expects that @left is less than or equal to @right.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1319 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1320 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1321 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1322 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1323 * Sets an expectation that the value that @left evaluates to is less than or
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1324 * equal to the value that @right evaluates to. Semantically this is equivalent
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1325 * to KUNIT_EXPECT_TRUE(@test, (@left) <= (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1326 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1327 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1328 #define KUNIT_EXPECT_LE(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1329 KUNIT_BINARY_LE_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1330
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1331 #define KUNIT_EXPECT_LE_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1332 KUNIT_BINARY_LE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1333 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1334 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1335 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1336 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1337 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1338
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1339 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1340 * KUNIT_EXPECT_GT() - An expectation that @left is greater than @right.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1341 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1342 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1343 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1344 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1345 * Sets an expectation that the value that @left evaluates to is greater than
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1346 * the value that @right evaluates to. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1347 * KUNIT_EXPECT_TRUE(@test, (@left) > (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1348 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1349 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1350 #define KUNIT_EXPECT_GT(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1351 KUNIT_BINARY_GT_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1352
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1353 #define KUNIT_EXPECT_GT_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1354 KUNIT_BINARY_GT_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1355 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1356 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1357 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1358 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1359 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1360
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1361 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1362 * KUNIT_EXPECT_GE() - Expects that @left is greater than or equal to @right.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1363 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1364 * @left: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1365 * @right: an arbitrary expression that evaluates to a primitive C type.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1366 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1367 * Sets an expectation that the value that @left evaluates to is greater than
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1368 * the value that @right evaluates to. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1369 * KUNIT_EXPECT_TRUE(@test, (@left) >= (@right)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1370 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1371 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1372 #define KUNIT_EXPECT_GE(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1373 KUNIT_BINARY_GE_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1374
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1375 #define KUNIT_EXPECT_GE_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1376 KUNIT_BINARY_GE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1377 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1378 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1379 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1380 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1381 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1382
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1383 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1384 * KUNIT_EXPECT_STREQ() - Expects that strings @left and @right are equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1385 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1386 * @left: an arbitrary expression that evaluates to a null terminated string.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1387 * @right: an arbitrary expression that evaluates to a null terminated string.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1388 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1389 * Sets an expectation that the values that @left and @right evaluate to are
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1390 * equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1391 * KUNIT_EXPECT_TRUE(@test, !strcmp((@left), (@right))). See KUNIT_EXPECT_TRUE()
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1392 * for more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1393 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1394 #define KUNIT_EXPECT_STREQ(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1395 KUNIT_BINARY_STR_EQ_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1396
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1397 #define KUNIT_EXPECT_STREQ_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1398 KUNIT_BINARY_STR_EQ_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1399 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1400 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1401 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1402 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1403 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1404
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1405 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1406 * KUNIT_EXPECT_STRNEQ() - Expects that strings @left and @right are not equal.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1407 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1408 * @left: an arbitrary expression that evaluates to a null terminated string.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1409 * @right: an arbitrary expression that evaluates to a null terminated string.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1410 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1411 * Sets an expectation that the values that @left and @right evaluate to are
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1412 * not equal. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1413 * KUNIT_EXPECT_TRUE(@test, strcmp((@left), (@right))). See KUNIT_EXPECT_TRUE()
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1414 * for more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1415 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1416 #define KUNIT_EXPECT_STRNEQ(test, left, right) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1417 KUNIT_BINARY_STR_NE_ASSERTION(test, KUNIT_EXPECTATION, left, right)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1418
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1419 #define KUNIT_EXPECT_STRNEQ_MSG(test, left, right, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1420 KUNIT_BINARY_STR_NE_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1421 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1422 left, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1423 right, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1424 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1425 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1426
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1427 /**
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1428 * KUNIT_EXPECT_NOT_ERR_OR_NULL() - Expects that @ptr is not null and not err.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1429 * @test: The test context object.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1430 * @ptr: an arbitrary pointer.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1431 *
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1432 * Sets an expectation that the value that @ptr evaluates to is not null and not
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1433 * an errno stored in a pointer. This is semantically equivalent to
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1434 * KUNIT_EXPECT_TRUE(@test, !IS_ERR_OR_NULL(@ptr)). See KUNIT_EXPECT_TRUE() for
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1435 * more information.
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1436 */
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1437 #define KUNIT_EXPECT_NOT_ERR_OR_NULL(test, ptr) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1438 KUNIT_PTR_NOT_ERR_OR_NULL_ASSERTION(test, KUNIT_EXPECTATION, ptr)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1439
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1440 #define KUNIT_EXPECT_NOT_ERR_OR_NULL_MSG(test, ptr, fmt, ...) \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1441 KUNIT_PTR_NOT_ERR_OR_NULL_MSG_ASSERTION(test, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1442 KUNIT_EXPECTATION, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1443 ptr, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1444 fmt, \
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1445 ##__VA_ARGS__)
73cda7bb8bfb1d Brendan Higgins 2019-09-23 1446
e4aea8f8532b55 Brendan Higgins 2019-09-23 1447 #define KUNIT_ASSERT_FAILURE(test, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1448 KUNIT_FAIL_ASSERTION(test, KUNIT_ASSERTION, fmt, ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1449
e4aea8f8532b55 Brendan Higgins 2019-09-23 1450 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1451 * KUNIT_ASSERT_TRUE() - Sets an assertion that @condition is true.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1452 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1453 * @condition: an arbitrary boolean expression. The test fails and aborts when
e4aea8f8532b55 Brendan Higgins 2019-09-23 1454 * this does not evaluate to true.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1455 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1456 * This and assertions of the form `KUNIT_ASSERT_*` will cause the test case to
e4aea8f8532b55 Brendan Higgins 2019-09-23 1457 * fail *and immediately abort* when the specified condition is not met. Unlike
e4aea8f8532b55 Brendan Higgins 2019-09-23 1458 * an expectation failure, it will prevent the test case from continuing to run;
e4aea8f8532b55 Brendan Higgins 2019-09-23 1459 * this is otherwise known as an *assertion failure*.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1460 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1461 #define KUNIT_ASSERT_TRUE(test, condition) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1462 KUNIT_TRUE_ASSERTION(test, KUNIT_ASSERTION, condition)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1463
e4aea8f8532b55 Brendan Higgins 2019-09-23 1464 #define KUNIT_ASSERT_TRUE_MSG(test, condition, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1465 KUNIT_TRUE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1466 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1467 condition, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1468 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1469 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1470
e4aea8f8532b55 Brendan Higgins 2019-09-23 1471 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1472 * KUNIT_ASSERT_FALSE() - Sets an assertion that @condition is false.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1473 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1474 * @condition: an arbitrary boolean expression.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1475 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1476 * Sets an assertion that the value that @condition evaluates to is false. This
e4aea8f8532b55 Brendan Higgins 2019-09-23 1477 * is the same as KUNIT_EXPECT_FALSE(), except it causes an assertion failure
e4aea8f8532b55 Brendan Higgins 2019-09-23 1478 * (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1479 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1480 #define KUNIT_ASSERT_FALSE(test, condition) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1481 KUNIT_FALSE_ASSERTION(test, KUNIT_ASSERTION, condition)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1482
e4aea8f8532b55 Brendan Higgins 2019-09-23 1483 #define KUNIT_ASSERT_FALSE_MSG(test, condition, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1484 KUNIT_FALSE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1485 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1486 condition, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1487 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1488 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1489
e4aea8f8532b55 Brendan Higgins 2019-09-23 1490 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1491 * KUNIT_ASSERT_EQ() - Sets an assertion that @left and @right are equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1492 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1493 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1494 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1495 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1496 * Sets an assertion that the values that @left and @right evaluate to are
e4aea8f8532b55 Brendan Higgins 2019-09-23 1497 * equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1498 * failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1499 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1500 #define KUNIT_ASSERT_EQ(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1501 KUNIT_BINARY_EQ_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1502
e4aea8f8532b55 Brendan Higgins 2019-09-23 1503 #define KUNIT_ASSERT_EQ_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1504 KUNIT_BINARY_EQ_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1505 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1506 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1507 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1508 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1509 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1510
e4aea8f8532b55 Brendan Higgins 2019-09-23 1511 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1512 * KUNIT_ASSERT_PTR_EQ() - Asserts that pointers @left and @right are equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1513 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1514 * @left: an arbitrary expression that evaluates to a pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1515 * @right: an arbitrary expression that evaluates to a pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1516 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1517 * Sets an assertion that the values that @left and @right evaluate to are
e4aea8f8532b55 Brendan Higgins 2019-09-23 1518 * equal. This is the same as KUNIT_EXPECT_EQ(), except it causes an assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1519 * failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1520 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1521 #define KUNIT_ASSERT_PTR_EQ(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1522 KUNIT_BINARY_PTR_EQ_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1523
e4aea8f8532b55 Brendan Higgins 2019-09-23 1524 #define KUNIT_ASSERT_PTR_EQ_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1525 KUNIT_BINARY_PTR_EQ_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1526 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1527 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1528 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1529 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1530 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1531
e4aea8f8532b55 Brendan Higgins 2019-09-23 1532 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1533 * KUNIT_ASSERT_NE() - An assertion that @left and @right are not equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1534 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1535 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1536 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1537 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1538 * Sets an assertion that the values that @left and @right evaluate to are not
e4aea8f8532b55 Brendan Higgins 2019-09-23 1539 * equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1540 * failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1541 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1542 #define KUNIT_ASSERT_NE(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1543 KUNIT_BINARY_NE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1544
e4aea8f8532b55 Brendan Higgins 2019-09-23 1545 #define KUNIT_ASSERT_NE_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1546 KUNIT_BINARY_NE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1547 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1548 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1549 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1550 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1551 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1552
e4aea8f8532b55 Brendan Higgins 2019-09-23 1553 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1554 * KUNIT_ASSERT_PTR_NE() - Asserts that pointers @left and @right are not equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1555 * KUNIT_ASSERT_PTR_EQ() - Asserts that pointers @left and @right are equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1556 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1557 * @left: an arbitrary expression that evaluates to a pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1558 * @right: an arbitrary expression that evaluates to a pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1559 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1560 * Sets an assertion that the values that @left and @right evaluate to are not
e4aea8f8532b55 Brendan Higgins 2019-09-23 1561 * equal. This is the same as KUNIT_EXPECT_NE(), except it causes an assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1562 * failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1563 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1564 #define KUNIT_ASSERT_PTR_NE(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1565 KUNIT_BINARY_PTR_NE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1566
e4aea8f8532b55 Brendan Higgins 2019-09-23 1567 #define KUNIT_ASSERT_PTR_NE_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1568 KUNIT_BINARY_PTR_NE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1569 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1570 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1571 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1572 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1573 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1574 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1575 * KUNIT_ASSERT_LT() - An assertion that @left is less than @right.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1576 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1577 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1578 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1579 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1580 * Sets an assertion that the value that @left evaluates to is less than the
e4aea8f8532b55 Brendan Higgins 2019-09-23 1581 * value that @right evaluates to. This is the same as KUNIT_EXPECT_LT(), except
e4aea8f8532b55 Brendan Higgins 2019-09-23 1582 * it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1583 * is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1584 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1585 #define KUNIT_ASSERT_LT(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1586 KUNIT_BINARY_LT_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1587
e4aea8f8532b55 Brendan Higgins 2019-09-23 1588 #define KUNIT_ASSERT_LT_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1589 KUNIT_BINARY_LT_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1590 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1591 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1592 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1593 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1594 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1595 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1596 * KUNIT_ASSERT_LE() - An assertion that @left is less than or equal to @right.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1597 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1598 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1599 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1600 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1601 * Sets an assertion that the value that @left evaluates to is less than or
e4aea8f8532b55 Brendan Higgins 2019-09-23 1602 * equal to the value that @right evaluates to. This is the same as
e4aea8f8532b55 Brendan Higgins 2019-09-23 1603 * KUNIT_EXPECT_LE(), except it causes an assertion failure (see
e4aea8f8532b55 Brendan Higgins 2019-09-23 1604 * KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1605 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1606 #define KUNIT_ASSERT_LE(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1607 KUNIT_BINARY_LE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1608
e4aea8f8532b55 Brendan Higgins 2019-09-23 1609 #define KUNIT_ASSERT_LE_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1610 KUNIT_BINARY_LE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1611 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1612 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1613 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1614 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1615 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1616
e4aea8f8532b55 Brendan Higgins 2019-09-23 1617 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1618 * KUNIT_ASSERT_GT() - An assertion that @left is greater than @right.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1619 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1620 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1621 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1622 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1623 * Sets an assertion that the value that @left evaluates to is greater than the
e4aea8f8532b55 Brendan Higgins 2019-09-23 1624 * value that @right evaluates to. This is the same as KUNIT_EXPECT_GT(), except
e4aea8f8532b55 Brendan Higgins 2019-09-23 1625 * it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1626 * is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1627 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1628 #define KUNIT_ASSERT_GT(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1629 KUNIT_BINARY_GT_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1630
e4aea8f8532b55 Brendan Higgins 2019-09-23 1631 #define KUNIT_ASSERT_GT_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1632 KUNIT_BINARY_GT_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1633 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1634 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1635 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1636 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1637 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1638
e4aea8f8532b55 Brendan Higgins 2019-09-23 1639 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1640 * KUNIT_ASSERT_GE() - Assertion that @left is greater than or equal to @right.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1641 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1642 * @left: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1643 * @right: an arbitrary expression that evaluates to a primitive C type.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1644 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1645 * Sets an assertion that the value that @left evaluates to is greater than the
e4aea8f8532b55 Brendan Higgins 2019-09-23 1646 * value that @right evaluates to. This is the same as KUNIT_EXPECT_GE(), except
e4aea8f8532b55 Brendan Higgins 2019-09-23 1647 * it causes an assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion
e4aea8f8532b55 Brendan Higgins 2019-09-23 1648 * is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1649 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1650 #define KUNIT_ASSERT_GE(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1651 KUNIT_BINARY_GE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1652
e4aea8f8532b55 Brendan Higgins 2019-09-23 1653 #define KUNIT_ASSERT_GE_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1654 KUNIT_BINARY_GE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1655 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1656 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1657 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1658 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1659 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1660
e4aea8f8532b55 Brendan Higgins 2019-09-23 1661 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1662 * KUNIT_ASSERT_STREQ() - An assertion that strings @left and @right are equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1663 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1664 * @left: an arbitrary expression that evaluates to a null terminated string.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1665 * @right: an arbitrary expression that evaluates to a null terminated string.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1666 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1667 * Sets an assertion that the values that @left and @right evaluate to are
e4aea8f8532b55 Brendan Higgins 2019-09-23 1668 * equal. This is the same as KUNIT_EXPECT_STREQ(), except it causes an
e4aea8f8532b55 Brendan Higgins 2019-09-23 1669 * assertion failure (see KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1670 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1671 #define KUNIT_ASSERT_STREQ(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1672 KUNIT_BINARY_STR_EQ_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1673
e4aea8f8532b55 Brendan Higgins 2019-09-23 1674 #define KUNIT_ASSERT_STREQ_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1675 KUNIT_BINARY_STR_EQ_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1676 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1677 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1678 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1679 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1680 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1681
e4aea8f8532b55 Brendan Higgins 2019-09-23 1682 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1683 * KUNIT_ASSERT_STRNEQ() - Expects that strings @left and @right are not equal.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1684 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1685 * @left: an arbitrary expression that evaluates to a null terminated string.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1686 * @right: an arbitrary expression that evaluates to a null terminated string.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1687 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1688 * Sets an expectation that the values that @left and @right evaluate to are
e4aea8f8532b55 Brendan Higgins 2019-09-23 1689 * not equal. This is semantically equivalent to
e4aea8f8532b55 Brendan Higgins 2019-09-23 1690 * KUNIT_ASSERT_TRUE(@test, strcmp((@left), (@right))). See KUNIT_ASSERT_TRUE()
e4aea8f8532b55 Brendan Higgins 2019-09-23 1691 * for more information.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1692 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1693 #define KUNIT_ASSERT_STRNEQ(test, left, right) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1694 KUNIT_BINARY_STR_NE_ASSERTION(test, KUNIT_ASSERTION, left, right)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1695
e4aea8f8532b55 Brendan Higgins 2019-09-23 1696 #define KUNIT_ASSERT_STRNEQ_MSG(test, left, right, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1697 KUNIT_BINARY_STR_NE_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1698 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1699 left, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1700 right, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1701 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1702 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1703
e4aea8f8532b55 Brendan Higgins 2019-09-23 1704 /**
e4aea8f8532b55 Brendan Higgins 2019-09-23 1705 * KUNIT_ASSERT_NOT_ERR_OR_NULL() - Assertion that @ptr is not null and not err.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1706 * @test: The test context object.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1707 * @ptr: an arbitrary pointer.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1708 *
e4aea8f8532b55 Brendan Higgins 2019-09-23 1709 * Sets an assertion that the value that @ptr evaluates to is not null and not
e4aea8f8532b55 Brendan Higgins 2019-09-23 1710 * an errno stored in a pointer. This is the same as
e4aea8f8532b55 Brendan Higgins 2019-09-23 1711 * KUNIT_EXPECT_NOT_ERR_OR_NULL(), except it causes an assertion failure (see
e4aea8f8532b55 Brendan Higgins 2019-09-23 1712 * KUNIT_ASSERT_TRUE()) when the assertion is not met.
e4aea8f8532b55 Brendan Higgins 2019-09-23 1713 */
e4aea8f8532b55 Brendan Higgins 2019-09-23 1714 #define KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1715 KUNIT_PTR_NOT_ERR_OR_NULL_ASSERTION(test, KUNIT_ASSERTION, ptr)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1716
e4aea8f8532b55 Brendan Higgins 2019-09-23 1717 #define KUNIT_ASSERT_NOT_ERR_OR_NULL_MSG(test, ptr, fmt, ...) \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1718 KUNIT_PTR_NOT_ERR_OR_NULL_MSG_ASSERTION(test, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1719 KUNIT_ASSERTION, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1720 ptr, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1721 fmt, \
e4aea8f8532b55 Brendan Higgins 2019-09-23 1722 ##__VA_ARGS__)
e4aea8f8532b55 Brendan Higgins 2019-09-23 1723
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1724 /**
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1725 * KUNIT_ARRAY_PARAM() - Helper method for test parameter generators
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1726 * required in parameterized tests.
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1727 * @name: prefix of the name for the test parameter generator function.
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1728 * It will be suffixed by "_gen_params".
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1729 * @array: a user-supplied pointer to an array of test parameters.
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1730 */
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1731 #define KUNIT_ARRAY_PARAM(name, array) \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1732 static void *name##_gen_params(void *prev) \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1733 { \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1734 typeof((array)[0]) * __next = prev ? ((typeof(__next)) prev) + 1 : (array); \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 @1735 return __next - (array) < ARRAY_SIZE((array)) ? __next : NULL; \
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1736 }
ae68283f3e666a Arpitha Raghunandan 2020-10-27 1737
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31654 bytes --]
next prev parent reply other threads:[~2020-10-28 1:40 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-27 17:46 [PATCH v4 1/2] kunit: Support for Parameterized Testing Arpitha Raghunandan
2020-10-27 17:46 ` [Linux-kernel-mentees] " Arpitha Raghunandan
2020-10-27 17:47 ` [PATCH v4 2/2] fs: ext4: Modify inode-test.c to use KUnit parameterized testing feature Arpitha Raghunandan
2020-10-27 17:47 ` [Linux-kernel-mentees] " Arpitha Raghunandan
2020-10-27 23:49 ` kernel test robot [this message]
2020-10-27 23:49 ` kernel test robot
2020-10-28 8:30 ` Marco Elver
2020-10-28 8:30 ` Marco Elver
2020-10-28 8:47 ` Arpitha Raghunandan
2020-10-31 18:41 ` kernel test robot
2020-10-31 18:41 ` kernel test robot
2020-10-27 19:21 ` [PATCH v4 1/2] kunit: Support for Parameterized Testing Marco Elver
2020-10-27 19:21 ` [Linux-kernel-mentees] " Marco Elver via Linux-kernel-mentees
2020-10-28 8:45 ` Arpitha Raghunandan
2020-10-28 8:45 ` [Linux-kernel-mentees] " Arpitha Raghunandan
2020-11-05 7:31 ` Arpitha Raghunandan
2020-11-05 7:31 ` [Linux-kernel-mentees] " Arpitha Raghunandan
2020-11-05 8:30 ` Marco Elver
2020-11-05 8:30 ` [Linux-kernel-mentees] " Marco Elver via Linux-kernel-mentees
2020-11-05 14:30 ` Arpitha Raghunandan
2020-11-05 14:30 ` [Linux-kernel-mentees] " Arpitha Raghunandan
2020-11-05 15:02 ` Marco Elver
2020-11-05 15:02 ` [Linux-kernel-mentees] " Marco Elver via Linux-kernel-mentees
2020-11-05 19:55 ` Marco Elver
2020-11-05 19:55 ` [Linux-kernel-mentees] " Marco Elver via Linux-kernel-mentees
2020-11-06 5:54 ` Arpitha Raghunandan
2020-11-06 5:54 ` [Linux-kernel-mentees] " Arpitha Raghunandan
2020-11-06 8:11 ` Marco Elver
2020-11-06 8:11 ` [Linux-kernel-mentees] " Marco Elver via Linux-kernel-mentees
2020-11-06 12:34 ` Marco Elver
2020-11-06 12:34 ` [Linux-kernel-mentees] " Marco Elver via Linux-kernel-mentees
2020-11-06 16:16 ` Arpitha Raghunandan
2020-11-06 16:16 ` [Linux-kernel-mentees] " Arpitha Raghunandan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202010280748.WUyq8OoJ-lkp@intel.com \
--to=lkp@intel.com \
--cc=98.arpi@gmail.com \
--cc=adilger.kernel@dilger.ca \
--cc=brendanhiggins@google.com \
--cc=elver@google.com \
--cc=kbuild-all@lists.01.org \
--cc=kunit-dev@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=tytso@mit.edu \
--cc=yzaikin@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.