linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Gow <davidgow@google.com>
To: Brendan Higgins <brendanhiggins@google.com>,
	Daniel Latypov <dlatypov@google.com>,
	Shuah Khan <skhan@linuxfoundation.org>
Cc: David Gow <davidgow@google.com>,
	kunit-dev@googlegroups.com, linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 01/10] kunit: Do not typecheck binary assertions
Date: Thu, 13 May 2021 12:31:55 -0700	[thread overview]
Message-ID: <20210513193204.816681-1-davidgow@google.com> (raw)

The use of typecheck() in KUNIT_EXPECT_EQ() and friends is causing more
problems than I think it's worth. Things like enums need to have their
values explicitly cast, and literals all need to be very precisely
typed, else a large warning will be printed.

While typechecking does have its uses, the additional overhead of having
lots of needless casts -- combined with the awkward error messages which
don't mention which types are involved -- makes tests less readable and
more difficult to write.

By removing the typecheck() call, the two arguments still need to be of
compatible types, but don't need to be of exactly the same time, which
seems a less confusing and more useful compromise.

Signed-off-by: David Gow <davidgow@google.com>
Reviewed-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
---

Changes since v1:
https://lore.kernel.org/linux-kselftest/20210507050908.1008686-1-davidgow@google.com/
- Tidy up the patch description to note that a warning was being
  produced, not an error.
- Add additional patches to remove many of the now unnecessary casts.

 include/kunit/test.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/include/kunit/test.h b/include/kunit/test.h
index 49601c4b98b8..4c56ffcb7403 100644
--- a/include/kunit/test.h
+++ b/include/kunit/test.h
@@ -775,7 +775,6 @@ void kunit_do_assertion(struct kunit *test,
 do {									       \
 	typeof(left) __left = (left);					       \
 	typeof(right) __right = (right);				       \
-	((void)__typecheck(__left, __right));				       \
 									       \
 	KUNIT_ASSERTION(test,						       \
 			__left op __right,				       \
-- 
2.31.1.751.gd2f1c929bd-goog


             reply	other threads:[~2021-05-13 19:32 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-13 19:31 David Gow [this message]
2021-05-13 19:31 ` [PATCH v2 02/10] kunit: Assign strings to 'const char*' in STREQ assertions David Gow
2021-05-13 19:31 ` [PATCH v2 03/10] Documentation: kunit: Clean up some string casts in examples David Gow
2021-05-13 23:07   ` Daniel Latypov
2021-06-15 20:10   ` Brendan Higgins
2021-05-13 19:31 ` [PATCH v2 04/10] device property: Remove some casts in property-entry-test David Gow
2021-05-13 19:42   ` Greg Kroah-Hartman
2021-06-15 20:12   ` Brendan Higgins
2021-05-13 19:31 ` [PATCH v2 05/10] iio: Remove a cast in iio-test-format which is no longer required David Gow
2021-06-15 20:14   ` Brendan Higgins
2021-06-16 14:08     ` Jonathan Cameron
2021-05-13 19:32 ` [PATCH v2 06/10] mmc: sdhci-of-aspeed: Remove some unnecessary casts from KUnit tests David Gow
2021-05-14  1:55   ` Andrew Jeffery
2021-05-17  9:22   ` Ulf Hansson
2021-05-18  4:29     ` David Gow
2021-06-15 20:16   ` Brendan Higgins
2021-05-13 19:32 ` [PATCH v2 07/10] thunderbolt: test: Remove sone casts which are no longer required David Gow
2021-05-14  6:06   ` Mika Westerberg
2021-05-14  7:27     ` David Gow
2021-05-14 19:57       ` Shuah Khan
2021-06-15 20:31   ` Brendan Higgins
2021-05-13 19:32 ` [PATCH v2 08/10] kernel/sysctl-test: Remove some casts which are no-longer required David Gow
2021-06-15 20:33   ` Brendan Higgins
2021-05-13 19:32 ` [PATCH v2 09/10] apparmor: test: " David Gow
2021-06-15 20:40   ` Brendan Higgins
2021-06-15 21:26   ` John Johansen
2021-05-13 19:32 ` [PATCH v2 10/10] lib/cmdline_kunit: Remove a cast " David Gow
2021-05-17  6:52   ` Andy Shevchenko
2021-06-15 20:42   ` Brendan Higgins

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=20210513193204.816681-1-davidgow@google.com \
    --to=davidgow@google.com \
    --cc=brendanhiggins@google.com \
    --cc=dlatypov@google.com \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=skhan@linuxfoundation.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).