summaryrefslogtreecommitdiff
path: root/lib/is_signed_type_kunit.c
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2022-09-07 11:03:29 -0700
committerKees Cook <keescook@chromium.org>2022-09-07 16:37:27 -0700
commit98388bda6a99d76309f81584f2bc0d773bdf8b35 (patch)
treec9c9e9e57b54be9bebb6ed98ea4a4845e75569b8 /lib/is_signed_type_kunit.c
parent6e42aec7c75947e0d6b38400628f171364eb8231 (diff)
lib: Improve the is_signed_type() kunit test
Since the definition of is_signed_type() has been moved from <linux/overflow.h> to <linux/compiler.h>, include the latter header file instead of the former. Additionally, add a test for the type 'char'. Cc: Isabella Basso <isabbasso@riseup.net> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20220907180329.3825417-1-bvanassche@acm.org
Diffstat (limited to 'lib/is_signed_type_kunit.c')
-rw-r--r--lib/is_signed_type_kunit.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/is_signed_type_kunit.c b/lib/is_signed_type_kunit.c
index f2eedb1f0935..207207522925 100644
--- a/lib/is_signed_type_kunit.c
+++ b/lib/is_signed_type_kunit.c
@@ -5,7 +5,7 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <kunit/test.h>
-#include <linux/overflow.h>
+#include <linux/compiler.h>
enum unsigned_enum {
constant_a = 3,
@@ -21,6 +21,11 @@ static void is_signed_type_test(struct kunit *test)
KUNIT_EXPECT_EQ(test, is_signed_type(bool), false);
KUNIT_EXPECT_EQ(test, is_signed_type(signed char), true);
KUNIT_EXPECT_EQ(test, is_signed_type(unsigned char), false);
+#ifdef __CHAR_UNSIGNED__
+ KUNIT_EXPECT_EQ(test, is_signed_type(char), false);
+#else
+ KUNIT_EXPECT_EQ(test, is_signed_type(char), true);
+#endif
KUNIT_EXPECT_EQ(test, is_signed_type(int), true);
KUNIT_EXPECT_EQ(test, is_signed_type(unsigned int), false);
KUNIT_EXPECT_EQ(test, is_signed_type(long), true);