* [to-be-updated] lib-tests-string_helpers-introduce-test_string_unescape_one.patch removed from -mm tree
@ 2026-10-07 2:00 Andrew Morton
0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2026-10-07 2:00 UTC (permalink / raw)
To: mm-commits, kernel, kees, andy, jre, akpm
The quilt patch titled
Subject: lib/tests: string_helpers: introduce test_string_unescape_one
has been removed from the -mm tree. Its filename was
lib-tests-string_helpers-introduce-test_string_unescape_one.patch
This patch was dropped because an updated version will be issued
------------------------------------------------------
From: Jonas Rebmann <jre@pengutronix.de>
Subject: lib/tests: string_helpers: introduce test_string_unescape_one
Date: Wed, 16 Sep 2026 19:38:08 +0200
The existing test_string_unescape() function follows a complex procedure
where it, given a set of UNESCAPE flags, appends multiple test fragments
and predicts their unescape result for the chosen set of flags. Rename
test_string_unescape() to a more descriptive test_string_unescape_combined
In preparation to add simple regression tests, introduce
test_string_unescape_one() which asserts on exactly one call to
string_unescape.
Add some tests for corner cases which already pass.
Link: https://lore.kernel.org/20260916-string_unescape-v1-3-7f8bd986fa33@pengutronix.de
Signed-off-by: Jonas Rebmann <jre@pengutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Shevchenko <andy@kernel.org>
Cc: Kees Cook <kees@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
---
lib/tests/string_helpers_kunit.c | 31 +++++++++++++++++++++++------
1 file changed, 25 insertions(+), 6 deletions(-)
--- a/lib/tests/string_helpers_kunit.c~lib-tests-string_helpers-introduce-test_string_unescape_one
+++ a/lib/tests/string_helpers_kunit.c
@@ -55,9 +55,9 @@ static const struct test_string strings[
},
};
-static void test_string_unescape(struct kunit *test,
- const char *name, unsigned int flags,
- bool inplace)
+static void test_string_unescape_combined(struct kunit *test,
+ const char *name, unsigned int flags,
+ bool inplace)
{
int q_real = 256;
char *in = kunit_kzalloc(test, q_real, GFP_KERNEL);
@@ -596,14 +596,33 @@ static void test_upper_lower(struct kuni
}
}
+static void test_string_unescape_one(struct kunit *test,
+ const char *name, unsigned int flags,
+ char *src, size_t len,
+ char *out_test, size_t q_test)
+{
+ char *out_real = kunit_kzalloc(test, len, GFP_KERNEL);
+ int q_real;
+
+ q_real = string_unescape(src, out_real, len, flags);
+ test_string_check_buf(test, name, flags, out_real, q_real, out_test, q_test);
+}
+
static void test_unescape(struct kunit *test)
{
unsigned int i;
for (i = 0; i < UNESCAPE_ALL_MASK + 1; i++)
- test_string_unescape(test, "unescape", i, false);
- test_string_unescape(test, "unescape inplace",
- get_random_u32_below(UNESCAPE_ALL_MASK + 1), true);
+ test_string_unescape_combined(test, "unescape", i, false);
+ test_string_unescape_combined(test, "unescape inplace",
+ get_random_u32_below(UNESCAPE_ALL_MASK + 1), true);
+
+ test_string_unescape_one(test, "simple case", UNESCAPE_HEX | UNESCAPE_SPECIAL, "ABC", 6, "ABC", 3);
+ test_string_unescape_one(test, "single escape", UNESCAPE_HEX | UNESCAPE_SPECIAL, "A\\x42C", 6, "ABC", 3);
+ test_string_unescape_one(test, "escape before end", UNESCAPE_HEX, "B\\qX", 4, "B\\q", 3);
+ test_string_unescape_one(test, "escape at end", UNESCAPE_HEX, "a\\qX", 3, "a\\", 2);
+ test_string_unescape_one(test, "backslash before escape", UNESCAPE_HEX, "\\\\x41B", 12, "\\\\x41B", 6);
+ test_string_unescape_one(test, "backslash escape", UNESCAPE_HEX | UNESCAPE_SPECIAL, "\\\\x41B", 16, "\\x41B", 5);
}
static void test_escape(struct kunit *test)
_
Patches currently in -mm which might be from jre@pengutronix.de are
lib-string_helpers-use-full-destination-buffer-in-string_unescape.patch
lib-string_helpers-fix-counting-of-remaining-bytes-in-string_unescape.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-10-07 2:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-07 2:00 [to-be-updated] lib-tests-string_helpers-introduce-test_string_unescape_one.patch removed from -mm tree Andrew Morton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.