On Sat, Aug 26, 2023, Mahmoud Matook wrote:
On 08/25, Sean Christopherson wrote:
On Fri, Aug 25, 2023, Mahmoud Maatuq wrote:
to avoid manual calculation of min and max values and fix coccinelle warnings such WARNING opportunity for min()/max() adding one common definition that could be used in multiple files under selftests. there are also some defines for min/max scattered locally inside sources under selftests. this also prepares for cleaning up those redundant defines and include kselftest.h instead.
Signed-off-by: Mahmoud Maatuq mahmoudmatook.mm@gmail.com Suggested-by: David Laight David.Laight@aculab.com
changes in v2: redefine min/max in a more strict way to avoid signedness mismatch and multiple evaluation. is_signed_type() moved from selftests/kselftest_harness.h to selftests/kselftest.h.
tools/testing/selftests/kselftest.h | 24 +++++++++++++++++++++
Heh, reminds me of https://xkcd.com/927.
All of these #defines are available in tools/include/linux/kernel.h, and it's trivially easy for selftests to add all of tools/include to their include path. I don't see any reason for the selftests framework to define yet another version, just fix the individual tests.
giving the reviews seems that patchset is useless. still a confusing point for me; after adding tools/include to the include path of selftes how we can differentaite between #include <linux/kernel.h> that under tools/include and one under usr/include.
AFAIK, it's up to the individual selftest (or it's "local" framework) to declare the tools/include path before usr/include, e.g. see tools/testing/selftests/kvm/Makefile.
The whole setup is definitely a bit kludgy, but IMO it's better than conditionally providing selftests specific fallbacks and potentially ending up with multiple definitions of min/max within a single test.