[PATCH v2 05/12] selftests/livepatch: Test klp-prepare-patch with dependent patches
From: Song Liu
Date: Wed Oct 28 2026 - 17:54:04 EST
Add a test case where the second patch changes lines added by the
first, so it only applies on top of it. klp-prepare-patch has to
combine the two into a single patch against the original source, rather
than fixing each one against the original source on its own.
The case uses the same source file and first patch as the single patch
test, so add it to test-basic.sh.
Assisted-by: Claude:claude-opus-5
Signed-off-by: Song Liu <song@xxxxxxxxxx>
---
.../livepatch/test_klp_build/test-basic.sh | 36 +++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/tools/testing/selftests/livepatch/test_klp_build/test-basic.sh b/tools/testing/selftests/livepatch/test_klp_build/test-basic.sh
index 127d678a07ce..70a653ee72aa 100755
--- a/tools/testing/selftests/livepatch/test_klp_build/test-basic.sh
+++ b/tools/testing/selftests/livepatch/test_klp_build/test-basic.sh
@@ -54,4 +54,40 @@ expect_patch <<'EOT'
return x;
EOT
+# - a patch which changes lines added by an earlier patch doesn't apply to the
+# original source on its own, but the combined patch does
+
+start_test "patch which depends on an earlier one"
+
+add_patch 0002-foo-again.patch <<'EOT'
+--- a/drivers/foo/foo.c
++++ b/drivers/foo/foo.c
+@@ -1,8 +1,8 @@
+ int foo(int x)
+ {
+ if (!x)
+- return 0;
++ return 1;
+ if (x < 0)
+ return -1;
+ return x;
+ }
+EOT
+
+run_klp_prepare_patch 0001-foo.patch 0002-foo-again.patch
+
+expect_patch <<'EOT'
+--- a/drivers/foo/foo.c
++++ b/drivers/foo/foo.c
+@@ -1,5 +1,8 @@
+ int foo(int x)
+ {
++ if (!x)
++ return 1;
++#line 3
+ if (x < 0)
+ return -1;
+ return x;
+EOT
+
exit 0
--
2.53.0-Meta