Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1801487pxb; Sat, 22 Jan 2022 06:48:49 -0800 (PST) X-Google-Smtp-Source: ABdhPJwdY46iJXMoIfvtKkID1WyZ6NV4OaDR8UD2CCOGd/yk2cAaq/EQZLA0XNIjQzhMGvAV25GJ X-Received: by 2002:a63:6444:: with SMTP id y65mr6154377pgb.426.1642862929294; Sat, 22 Jan 2022 06:48:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642862929; cv=none; d=google.com; s=arc-20160816; b=bI4Sx+WN3O5HuyaVNyG1jZi0HI7fz63zBbYcf3mCEtuOtNm9NHZAACE6A+QD/K0LKT UW8C72tPgI1FdO5QOchUY0E+B6O6lw/2bMffxUevmlf3uONx5eQdIccz4n4fOOqeXFqH AnSNqh+hNq5dGrA7cF8+BuX9ndQov0h2KmIABBtiK0NCjWXfkKd5MhVXY0nO+AaUnL3I wl6Od68gVfmBQ0g1mJ572ERBy4ycxB27OqIpudggX/SPng2WUKt78WEUeowpNqXw2AF9 9Sh1182lHWMC1cCKvSAmbYagR+oABw8oYZMJWhe4+BDQ8lMvxVqiBh3K8ZX1RnBwd0jb vhrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=9yJdfXSqmBMRf7VSxOdNbi3LCubMR+icphODMR51kXU=; b=VjYSlaCcg+d1dHrFK6L/Y5IY3n2TbYJL2w+28CU2DwwkGm4IzxjOJifTbeis5OIRTp CMCl8AsMLh/fl5WMVdYyIjkg7Fn8hfNIWsIgC2FW10XLa4g2zhnqXUt4xvvtkl5O9Vmr /ft5dMJ7p2pWeoD6NbGqT+6aqoqYVRX/gxdUkMlo3Ros7oKmOTkNpk4GEUApNZ3Ld6XI dkd0x9S48VBcw0ZtQEnzEtxJg1WrAewJ2eV+ZVfe1OPxVGad6kcofv9ORwL3Gf3Fp/kS u0iKk9It4ECtMb7rA3/bbWL/1NmcXHG3YpECnUu6DMhZFjyiK47XjVLp/Wk3g1qMrg8O qvCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="amF40r/0"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k6si6900773pgr.673.2022.01.22.06.48.09; Sat, 22 Jan 2022 06:48:49 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b="amF40r/0"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233340AbiAUW0N (ORCPT + 99 others); Fri, 21 Jan 2022 17:26:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233256AbiAUW0L (ORCPT ); Fri, 21 Jan 2022 17:26:11 -0500 Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6F77EC06173B for ; Fri, 21 Jan 2022 14:26:11 -0800 (PST) Received: by mail-pf1-x434.google.com with SMTP id e28so5661393pfj.5 for ; Fri, 21 Jan 2022 14:26:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9yJdfXSqmBMRf7VSxOdNbi3LCubMR+icphODMR51kXU=; b=amF40r/0URe/YKOgmIMi8zys6bqsi6LWuWJh0LKtkZc4QfPXNbt/gZrPbcdz6Qig0F DxbXzUDE/f0CZkTSm/K9lBNcSgkcFIuxWEl0WJsGpohkZVmL5Agz6pqmW9vHw9dxmNDx 6shMgSCG03KsGjID/gcidwdJabbSKpL9dan/o915NgX2MlzL+KdO2i3aUQumiR/sUADK qjXOcICyzFixTfx3Oqjhb9y5E37fJoKVaR+n4ZH40y2yhe8wKUCr43egiVEdjkQYYrgJ 4jgNWenEcY9h1s3vdJ6RTa3IJmqv2yJURrSW8o6EecQMm4tAFwkkByEz695qW2yTeRoA DqNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9yJdfXSqmBMRf7VSxOdNbi3LCubMR+icphODMR51kXU=; b=HztVsZNEVNkK7Vs7/W0iEdacKRrWAQ2ZFBT643PF1VRF/8VzTw8HQ3q1FQSLSL4cEr 6TIYNB74q74jk9iwwm3S6HO0wCWNBz1yYjoVD1oDaeCRN7EWphaEG9d2GGBmap6y6555 DCB+J4h6yLo9+FR/iALyI9sLk3my6CXkTJnJY+eM53MD9e7pF0L0oIkr/pYCvTaSGKyU HvuvQvGopHJBPe2zsZjaQlNf6OlIHHm6Sn1enngDi7dn7Vf02yryaLp/350HDUH6bmKp 8xib09w0F+xWZzLzPKSsJCHxe8YtSukNslzK6m6Viv9dLzIszfAXtIrGlsXqfSMOCW+b a4qg== X-Gm-Message-State: AOAM533tJsHB+sgv9gNXTLljNuHIY32vng0ohaSqqJssW93BrWwDB8Sp SfA6aw3mS9YIO+kntfzpO70nhXOTgOHeE0Zt1Azu96t+icLmcg== X-Received: by 2002:a63:1157:: with SMTP id 23mr4257011pgr.12.1642803970603; Fri, 21 Jan 2022 14:26:10 -0800 (PST) MIME-Version: 1.0 References: <20220118223506.1701553-1-dlatypov@google.com> <20220118223506.1701553-6-dlatypov@google.com> In-Reply-To: From: Brendan Higgins Date: Fri, 21 Jan 2022 17:25:58 -0500 Message-ID: Subject: Re: [PATCH 5/5] kunit: decrease macro layering for EQ/NE asserts To: David Gow Cc: Daniel Latypov , Linux Kernel Mailing List , KUnit Development , "open list:KERNEL SELFTEST FRAMEWORK" , Shuah Khan Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 21, 2022 at 2:22 AM David Gow wrote: > > On Wed, Jan 19, 2022 at 6:35 AM Daniel Latypov 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 > > > > > > 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 > > --- > > 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 > > 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 > >