Thread (11 messages) flat view 11 messages, 2 authors, 2015-05-14

[PATCH 2/2] selftests/breakpoints: only set TEST_PROGS when built

From: Tyler Baker <hidden>
Date: 2015-05-14 17:11:58
Also in: lkml

On 14 May 2015 at 08:27, Shuah Khan [off-list ref] wrote:
On 05/14/2015 08:15 AM, Tyler Baker wrote:
quoted
On 13 May 2015 at 14:41, Shuah Khan [off-list ref] wrote:
quoted
On 05/12/2015 03:59 PM, tyler.baker at linaro.org wrote:
quoted
From: Tyler Baker <redacted>

Set TEST_PROGS only when a build has occurred.

Signed-off-by: Tyler Baker <redacted>
---
 tools/testing/selftests/breakpoints/Makefile | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tools/testing/selftests/breakpoints/Makefile b/tools/testing/selftests/breakpoints/Makefile
index 1822356..54cc3e7 100644
--- a/tools/testing/selftests/breakpoints/Makefile
+++ b/tools/testing/selftests/breakpoints/Makefile
@@ -12,12 +12,11 @@ endif
 all:
 ifeq ($(ARCH),x86)
      gcc breakpoint_test.c -o breakpoint_test
+     TEST_PROGS := breakpoint_test
 else
      echo "Not an x86 target, can't build breakpoints selftests"
 endif

-TEST_PROGS := breakpoint_test
-
 include ../lib.mk

 clean:
Hmm. With this change install fails to copy breakpoint_test all
together. Remember setting TEST_PROGS in compile step makes it
not stick around when install target is called. A better approach
would be the following:

if [ -f breakpoint_test ]
    TEST_PROGS := breakpoint_test
fi
Thanks for pointing this out, this is a good catch. We will also need
to do this for the x86 tests IIRC. Would it make more sense to have
this check performed in the INSTALL_RULE so that we don't have to have
a bunch of IF statements in the various Makefiles?
Right. x86 will need this type of logic for 32-bit execs when they
aren't not built on a 64-bit system, and for 64-bit execs when they
aren't built on a 32-bit system.
Considering the change below we can now simplify this case for x86 to:
diff --git a/tools/testing/selftests/x86/Makefile
b/tools/testing/selftests/x86/Makefile
index 12d8e76..3e238d0 100644
--- a/tools/testing/selftests/x86/Makefile
+++ b/tools/testing/selftests/x86/Makefile
@@ -14,13 +14,9 @@ UNAME_M := $(shell uname -m)
 ifeq ($(CROSS_COMPILE),)
 # Always build 32-bit tests
 all: all_32
-# Install 32-bit tests
-TEST_PROGS += $(BINARIES_32) run_x86_tests.sh
 # If we're on a 64-bit host, build 64-bit tests as well
 ifeq ($(UNAME_M),x86_64)
 all: all_64
-# Install 64-bit tests
-TEST_PROGS += $(BINARIES_64)
 endif
 endif
@@ -28,6 +24,9 @@ all_32: check_build32 $(BINARIES_32)

 all_64: $(BINARIES_64)

+# Install the tests
+TEST_PROGS := $(BINARIES_32) $(BINARIES_64) run_x86_tests.sh
+
 include ../lib.mk

 clean:
If the binaries do not exist, they will be not be installed. If you
and Andy are ok with this, I'll add a patch to this series.
quoted
Something like...

       @for ARTIFACT in $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES); do \
               if [ -f $$ARTIFACT ]; then \
                    install -t $(INSTALL_PATH) $$ARTIFACT; \
               fi; \
       done;
I think it makes perfect sense to do this in INSTALL_RULE.
As you said, this will avoid changes to test individual
Makefiles and new test writers don't have to worry about
adding this.

Would you like make the necessary changes?
Sure, I'll add this in the next revision.
thanks,
-- Shuah


--
Shuah Khan
Sr. Linux Kernel Developer
Open Source Innovation Group
Samsung Research America (Silicon Valley)
shuahkh at osg.samsung.com | (970) 217-8978
Cheers,

Tyler
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help