[RFC 2/2] kunit: printf: Add test case for pte_t

From: Anshuman Khandual
Date: Wed Jun 18 2025 - 00:13:25 EST


This adds a new test case for pte_t printf format.

Cc: Petr Mladek <pmladek@xxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Cc: Rasmus Villemoes <linux@xxxxxxxxxxxxxxxxxx>
Cc: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx
Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
---
lib/tests/printf_kunit.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

diff --git a/lib/tests/printf_kunit.c b/lib/tests/printf_kunit.c
index bc54cca2d7a6f..d94c5067e8b0d 100644
--- a/lib/tests/printf_kunit.c
+++ b/lib/tests/printf_kunit.c
@@ -763,6 +763,31 @@ errptr(struct kunit *kunittest)
#endif
}

+struct pte_test {
+ u64 val;
+ const char *name;
+};
+
+static struct pte_test pte_test_cases[] = {
+ { .val = 0xc0ffee, .name = "0x00c0ffee"},
+ { .val = 0xdeadbeef, .name = "0xdeadbeef"},
+ { .val = 0xaabbcc, .name = "0x00aabbcc"},
+};
+
+static void
+pte(struct kunit *kunittest)
+{
+ char buf[64];
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(pte_test_cases); i++) {
+ pte_t pte = __pte(pte_test_cases[i].val);
+
+ snprintf(buf, sizeof(buf), "%ppte", &pte);
+ KUNIT_EXPECT_STREQ(kunittest, buf, pte_test_cases[i].name);
+ }
+}
+
static int printf_suite_init(struct kunit_suite *suite)
{
total_tests = 0;
@@ -811,6 +836,7 @@ static struct kunit_case printf_test_cases[] = {
KUNIT_CASE(errptr),
KUNIT_CASE(fwnode_pointer),
KUNIT_CASE(fourcc_pointer),
+ KUNIT_CASE(pte),
{}
};

--
2.30.2