On Fri, Jan 21, 2022 at 2:22 AM David Gow <davidgow@xxxxxxxxxx> wrote: > > On Wed, Jan 19, 2022 at 6:35 AM Daniel Latypov <dlatypov@xxxxxxxxxx> wrote: > > > > Introduce KUNIT_BINARY_PTR_ASSERTION to match KUNIT_BINARY_INT_ASSERTION > > and make KUNIT_EXPECT_EQ and KUNIT_EXPECT_PTREQ use these instead of > > shared intermediate macros that only remove the need to type "==" or > > "!=". > > > > The current macro chain looks like: > > KUNIT_EXPECT_EQ_MSG => KUNIT_BINARY_EQ_MSG_ASSERTION => KUNIT_BASE_EQ_MSG_ASSERTION => KUNIT_BASE_BINARY_ASSERTION > > KUNIT_EXPECT_PTR_EQ_MSG => KUNIT_BINARY_PTR_EQ_MSG_ASSERTION => KUNIT_BASE_EQ_MSG_ASSERTION => KUNIT_BASE_BINARY_ASSERTION > > <ditto for NE and ASSERT> > > > > After this change: > > KUNIT_EXPECT_EQ_MSG => KUNIT_BINARY_INT_ASSERTION => KUNIT_BASE_BINARY_ASSERTION > > KUNIT_EXPECT_PTR_EQ_MSG => KUNIT_BINARY_PTR_ASSERTION => KUNIT_BASE_BINARY_ASSERTION > > > > Signed-off-by: Daniel Latypov <dlatypov@xxxxxxxxxx> > > --- > > This is great: the macros are much simpler and nicer now. In fact, > this whole series is one of the nicest I've seen for a while: I can't > think of any serious downsides to any of it. I agree. I am a fan. > Reviewed-by: David Gow <davidgow@xxxxxxxxxx> > > Thanks, > -- David > > > > include/kunit/test.h | 173 ++++++++++++------------------------------- > > 1 file changed, 49 insertions(+), 124 deletions(-) > > > > diff --git a/include/kunit/test.h b/include/kunit/test.h > > index 48cf520b69ce..bf82c313223b 100644 > > --- a/include/kunit/test.h > > +++ b/include/kunit/test.h > > @@ -888,48 +888,6 @@ do { \ > > ##__VA_ARGS__); \ > > } while (0) > > > > -#define KUNIT_BASE_EQ_MSG_ASSERTION(test, \ > > - assert_class, \ > > - ASSERT_CLASS_INIT, \ > > - assert_type, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ...) \ > > - KUNIT_BASE_BINARY_ASSERTION(test, \ > > - assert_class, \ > > - ASSERT_CLASS_INIT, \ > > - assert_type, \ > > - left, ==, right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > - > > -#define KUNIT_BASE_NE_MSG_ASSERTION(test, \ > > - assert_class, \ > > - ASSERT_CLASS_INIT, \ > > - assert_type, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ...) \ > > - KUNIT_BASE_BINARY_ASSERTION(test, \ > > - assert_class, \ > > - ASSERT_CLASS_INIT, \ > > - assert_type, \ > > - left, !=, right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > - > > -#define KUNIT_BINARY_EQ_MSG_ASSERTION(test, assert_type, left, right, fmt, ...)\ > > - KUNIT_BASE_EQ_MSG_ASSERTION(test, \ > > - kunit_binary_assert, \ > > - KUNIT_INIT_BINARY_ASSERT_STRUCT, \ > > - assert_type, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > - > > #define KUNIT_BINARY_INT_ASSERTION(test, \ > > assert_type, \ > > left, \ > > @@ -945,43 +903,18 @@ do { \ > > fmt, \ > > ##__VA_ARGS__) > > > > -#define KUNIT_BINARY_PTR_EQ_MSG_ASSERTION(test, \ > > - assert_type, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ...) \ > > - KUNIT_BASE_EQ_MSG_ASSERTION(test, \ > > - kunit_binary_ptr_assert, \ > > - KUNIT_INIT_BINARY_PTR_ASSERT_STRUCT, \ > > - assert_type, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > - > > -#define KUNIT_BINARY_NE_MSG_ASSERTION(test, assert_type, left, right, fmt, ...)\ > > - KUNIT_BASE_NE_MSG_ASSERTION(test, \ > > - kunit_binary_assert, \ > > - KUNIT_INIT_BINARY_ASSERT_STRUCT, \ > > - assert_type, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > - > > -#define KUNIT_BINARY_PTR_NE_MSG_ASSERTION(test, \ > > - assert_type, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ...) \ > > - KUNIT_BASE_NE_MSG_ASSERTION(test, \ > > +#define KUNIT_BINARY_PTR_ASSERTION(test, \ > > + assert_type, \ > > + left, \ > > + op, \ > > + right, \ > > + fmt, \ > > + ...) \ > > + KUNIT_BASE_BINARY_ASSERTION(test, \ > > kunit_binary_ptr_assert, \ > > KUNIT_INIT_BINARY_PTR_ASSERT_STRUCT, \ > > assert_type, \ > > - left, \ > > - right, \ > > + left, op, right, \ > > fmt, \ > > ##__VA_ARGS__) > > > > @@ -1082,12 +1015,11 @@ do { \ > > KUNIT_EXPECT_EQ_MSG(test, left, right, NULL) > > > > #define KUNIT_EXPECT_EQ_MSG(test, left, right, fmt, ...) \ > > - KUNIT_BINARY_EQ_MSG_ASSERTION(test, \ > > - KUNIT_EXPECTATION, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > + KUNIT_BINARY_INT_ASSERTION(test, \ > > + KUNIT_EXPECTATION, \ > > + left, ==, right, \ > > + fmt, \ > > + ##__VA_ARGS__) > > > > /** > > * KUNIT_EXPECT_PTR_EQ() - Expects that pointers @left and @right are equal. > > @@ -1104,12 +1036,11 @@ do { \ > > KUNIT_EXPECT_PTR_EQ_MSG(test, left, right, NULL) > > > > #define KUNIT_EXPECT_PTR_EQ_MSG(test, left, right, fmt, ...) \ > > - KUNIT_BINARY_PTR_EQ_MSG_ASSERTION(test, \ > > - KUNIT_EXPECTATION, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > + KUNIT_BINARY_PTR_ASSERTION(test, \ > > + KUNIT_EXPECTATION, \ > > + left, ==, right, \ > > + fmt, \ > > + ##__VA_ARGS__) > > > > /** > > * KUNIT_EXPECT_NE() - An expectation that @left and @right are not equal. > > @@ -1126,12 +1057,11 @@ do { \ > > KUNIT_EXPECT_NE_MSG(test, left, right, NULL) > > > > #define KUNIT_EXPECT_NE_MSG(test, left, right, fmt, ...) \ > > - KUNIT_BINARY_NE_MSG_ASSERTION(test, \ > > - KUNIT_EXPECTATION, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > + KUNIT_BINARY_INT_ASSERTION(test, \ > > + KUNIT_EXPECTATION, \ > > + left, !=, right, \ > > + fmt, \ > > + ##__VA_ARGS__) > > > > /** > > * KUNIT_EXPECT_PTR_NE() - Expects that pointers @left and @right are not equal. > > @@ -1148,12 +1078,11 @@ do { \ > > KUNIT_EXPECT_PTR_NE_MSG(test, left, right, NULL) > > > > #define KUNIT_EXPECT_PTR_NE_MSG(test, left, right, fmt, ...) \ > > - KUNIT_BINARY_PTR_NE_MSG_ASSERTION(test, \ > > - KUNIT_EXPECTATION, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > + KUNIT_BINARY_PTR_ASSERTION(test, \ > > + KUNIT_EXPECTATION, \ > > + left, !=, right, \ > > + fmt, \ > > + ##__VA_ARGS__) > > > > /** > > * KUNIT_EXPECT_LT() - An expectation that @left is less than @right. > > @@ -1358,12 +1287,11 @@ do { \ > > KUNIT_ASSERT_EQ_MSG(test, left, right, NULL) > > > > #define KUNIT_ASSERT_EQ_MSG(test, left, right, fmt, ...) \ > > - KUNIT_BINARY_EQ_MSG_ASSERTION(test, \ > > - KUNIT_ASSERTION, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > + KUNIT_BINARY_INT_ASSERTION(test, \ > > + KUNIT_ASSERTION, \ > > + left, ==, right, \ > > + fmt, \ > > + ##__VA_ARGS__) > > > > /** > > * KUNIT_ASSERT_PTR_EQ() - Asserts that pointers @left and @right are equal. > > @@ -1379,12 +1307,11 @@ do { \ > > KUNIT_ASSERT_PTR_EQ_MSG(test, left, right, NULL) > > > > #define KUNIT_ASSERT_PTR_EQ_MSG(test, left, right, fmt, ...) \ > > - KUNIT_BINARY_PTR_EQ_MSG_ASSERTION(test, \ > > - KUNIT_ASSERTION, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > + KUNIT_BINARY_PTR_ASSERTION(test, \ > > + KUNIT_ASSERTION, \ > > + left, ==, right, \ > > + fmt, \ > > + ##__VA_ARGS__) > > > > /** > > * KUNIT_ASSERT_NE() - An assertion that @left and @right are not equal. > > @@ -1400,12 +1327,11 @@ do { \ > > KUNIT_ASSERT_NE_MSG(test, left, right, NULL) > > > > #define KUNIT_ASSERT_NE_MSG(test, left, right, fmt, ...) \ > > - KUNIT_BINARY_NE_MSG_ASSERTION(test, \ > > - KUNIT_ASSERTION, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > + KUNIT_BINARY_INT_ASSERTION(test, \ > > + KUNIT_ASSERTION, \ > > + left, !=, right, \ > > + fmt, \ > > + ##__VA_ARGS__) > > > > /** > > * KUNIT_ASSERT_PTR_NE() - Asserts that pointers @left and @right are not equal. > > @@ -1422,12 +1348,11 @@ do { \ > > KUNIT_ASSERT_PTR_NE_MSG(test, left, right, NULL) > > > > #define KUNIT_ASSERT_PTR_NE_MSG(test, left, right, fmt, ...) \ > > - KUNIT_BINARY_PTR_NE_MSG_ASSERTION(test, \ > > - KUNIT_ASSERTION, \ > > - left, \ > > - right, \ > > - fmt, \ > > - ##__VA_ARGS__) > > + KUNIT_BINARY_PTR_ASSERTION(test, \ > > + KUNIT_ASSERTION, \ > > + left, !=, right, \ > > + fmt, \ > > + ##__VA_ARGS__) > > /** > > * KUNIT_ASSERT_LT() - An assertion that @left is less than @right. > > * @test: The test context object. > > -- > > 2.34.1.703.g22d0c6ccf7-goog > >