1 // SPDX-License-Identifier: GPL-2.0 OR MIT 2 /* 3 * ./tools/testing/kunit/kunit.py run is_signed_type [--raw_output] 4 */ 5 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 6 7 #include <kunit/test.h> 8 #include <linux/compiler.h> 9 10 enum unsigned_enum { 11 constant_a = 3, 12 }; 13 14 enum signed_enum { 15 constant_b = -1, 16 constant_c = 2, 17 }; 18 19 static void is_signed_type_test(struct kunit *test) 20 { 21 KUNIT_EXPECT_EQ(test, is_signed_type(bool), false); 22 KUNIT_EXPECT_EQ(test, is_signed_type(signed char), true); 23 KUNIT_EXPECT_EQ(test, is_signed_type(unsigned char), false); 24 #ifdef __CHAR_UNSIGNED__ 25 KUNIT_EXPECT_EQ(test, is_signed_type(char), false); 26 #else 27 KUNIT_EXPECT_EQ(test, is_signed_type(char), true); 28 #endif 29 KUNIT_EXPECT_EQ(test, is_signed_type(int), true); 30 KUNIT_EXPECT_EQ(test, is_signed_type(unsigned int), false); 31 KUNIT_EXPECT_EQ(test, is_signed_type(long), true); 32 KUNIT_EXPECT_EQ(test, is_signed_type(unsigned long), false); 33 KUNIT_EXPECT_EQ(test, is_signed_type(long long), true); 34 KUNIT_EXPECT_EQ(test, is_signed_type(unsigned long long), false); 35 KUNIT_EXPECT_EQ(test, is_signed_type(enum unsigned_enum), false); 36 KUNIT_EXPECT_EQ(test, is_signed_type(enum signed_enum), true); 37 KUNIT_EXPECT_EQ(test, is_signed_type(void *), false); 38 KUNIT_EXPECT_EQ(test, is_signed_type(const char *), false); 39 } 40 41 static struct kunit_case is_signed_type_test_cases[] = { 42 KUNIT_CASE(is_signed_type_test), 43 {} 44 }; 45 46 static struct kunit_suite is_signed_type_test_suite = { 47 .name = "is_signed_type", 48 .test_cases = is_signed_type_test_cases, 49 }; 50 51 kunit_test_suite(is_signed_type_test_suite); 52 53 MODULE_LICENSE("Dual MIT/GPL"); 54