Re: [PATCH v4 26/30] selftests/liveupdate: Add multi-kexec session lifecycle test
From: Pasha Tatashin <pasha.tatashin@soleen.com>
Date: 2025-10-04 02:08:05
Also in:
linux-doc, linux-fsdevel, linux-mm, lkml
On Fri, Oct 3, 2025 at 6:51 PM Vipin Sharma [off-list ref] wrote:
On 2025-09-29 01:03:17, Pasha Tatashin wrote:quoted
diff --git a/tools/testing/selftests/liveupdate/.gitignore b/tools/testing/selftests/liveupdate/.gitignore index af6e773cf98f..de7ca45d3892 100644 --- a/tools/testing/selftests/liveupdate/.gitignore +++ b/tools/testing/selftests/liveupdate/.gitignore@@ -1 +1,2 @@ /liveupdate +/luo_multi_kexecIn next patches new tests are not added to gitignore.
Will fix it, thanks.
quoted
diff --git a/tools/testing/selftests/liveupdate/Makefile b/tools/testing/selftests/liveupdate/Makefile index 2a573c36016e..1cbc816ed5c5 100644 --- a/tools/testing/selftests/liveupdate/Makefile +++ b/tools/testing/selftests/liveupdate/Makefile@@ -1,7 +1,38 @@ # SPDX-License-Identifier: GPL-2.0-only + +KHDR_INCLUDES ?= -I../../../usr/includeIf make is run from the tools/testing/selftests/liveupdate directory, this will not work because it needs one more "..". If this is built using selftest Makefile from root directory make -C tools/testing/selftests TARGETS=liveupdate there will not be build errors because tools/testing/selftests/Makefile defines KHDR_INCLUDES, so above definition will never happen.quoted
CFLAGS += -Wall -O2 -Wno-unused-function CFLAGS += $(KHDR_INCLUDES) +LDFLAGS += -staticWhy static? Can't we let user pass extra flags if they prefer static
Because these tests are executed in a VM and not on the host, static makes sense to be able to run in a different environment.
quoted
+ +# --- Test Configuration (Edit this section when adding new tests) --- +LUO_SHARED_SRCS := luo_test_utils.c +LUO_SHARED_HDRS += luo_test_utils.h + +LUO_MANUAL_TESTS += luo_multi_kexec + +TEST_FILES += do_kexec.sh TEST_GEN_PROGS += liveupdate +# --- Automatic Rule Generation (Do not edit below) --- + +TEST_GEN_PROGS_EXTENDED += $(LUO_MANUAL_TESTS) + +# Define the full list of sources for each manual test. +$(foreach test,$(LUO_MANUAL_TESTS), \ + $(eval $(test)_SOURCES := $(test).c $(LUO_SHARED_SRCS))) + +# This loop automatically generates an explicit build rule for each manual test. +# It includes dependencies on the shared headers and makes the output +# executable. +# Note the use of '$$' to escape automatic variables for the 'eval' command. +$(foreach test,$(LUO_MANUAL_TESTS), \ + $(eval $(OUTPUT)/$(test): $($(test)_SOURCES) $(LUO_SHARED_HDRS) \ + $(call msg,LINK,,$$@) ; \ + $(Q)$(LINK.c) $$^ $(LDLIBS) -o $$@ ; \ + $(Q)chmod +x $$@ \ + ) \ +) + include ../lib.mkmake is not building LUO_MANUAL_TESTS, it is only building liveupdate. How to build them?
I am building them out of tree: make O=x86_64 -s -C tools/testing/selftests TARGETS=liveupdate install make O=x86_64 -s -C tools/testing/selftests TARGETS=kho install And for me it worked, but I forgot to test with the normal make options, thank you for reporting, and providing your fixes, I will address them. Pasha