-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kselftest: arm64: extend toplevel skeleton Makefile
Modify KSFT arm64 toplevel Makefile to maintain arm64 kselftests organized by subsystem, keeping them into distinct subdirectories under arm64 custom KSFT directory: tools/testing/selftests/arm64/ Add to such toplevel Makefile a mechanism to guess the effective location of Kernel headers as installed by KSFT framework. Fit existing arm64 tags kselftest into this new schema moving them into their own subdirectory (arm64/tags). Reviewed-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: Cristian Marussi <cristian.marussi@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
- Loading branch information
Cristian Marussi
authored and
Catalin Marinas
committed
Nov 8, 2019
1 parent
4f5cafb
commit 313a4db
Showing
7 changed files
with
92 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,66 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
# ARCH can be overridden by the user for cross compiling | ||
# When ARCH not overridden for crosscompiling, lookup machine | ||
ARCH ?= $(shell uname -m 2>/dev/null || echo not) | ||
|
||
ifneq (,$(filter $(ARCH),aarch64 arm64)) | ||
CFLAGS += -I../../../../usr/include/ | ||
TEST_GEN_PROGS := tags_test | ||
TEST_PROGS := run_tags_test.sh | ||
ARM64_SUBTARGETS ?= tags | ||
else | ||
ARM64_SUBTARGETS := | ||
endif | ||
|
||
include ../lib.mk | ||
CFLAGS := -Wall -O2 -g | ||
|
||
# A proper top_srcdir is needed by KSFT(lib.mk) | ||
top_srcdir = $(realpath ../../../../) | ||
|
||
# Additional include paths needed by kselftest.h and local headers | ||
CFLAGS += -I$(top_srcdir)/tools/testing/selftests/ | ||
|
||
# Guessing where the Kernel headers could have been installed | ||
# depending on ENV config | ||
ifeq ($(KBUILD_OUTPUT),) | ||
khdr_dir = $(top_srcdir)/usr/include | ||
else | ||
# the KSFT preferred location when KBUILD_OUTPUT is set | ||
khdr_dir = $(KBUILD_OUTPUT)/kselftest/usr/include | ||
endif | ||
|
||
CFLAGS += -I$(khdr_dir) | ||
|
||
export CFLAGS | ||
export top_srcdir | ||
|
||
all: | ||
@for DIR in $(ARM64_SUBTARGETS); do \ | ||
BUILD_TARGET=$(OUTPUT)/$$DIR; \ | ||
mkdir -p $$BUILD_TARGET; \ | ||
make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ | ||
done | ||
|
||
install: all | ||
@for DIR in $(ARM64_SUBTARGETS); do \ | ||
BUILD_TARGET=$(OUTPUT)/$$DIR; \ | ||
make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ | ||
done | ||
|
||
run_tests: all | ||
@for DIR in $(ARM64_SUBTARGETS); do \ | ||
BUILD_TARGET=$(OUTPUT)/$$DIR; \ | ||
make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ | ||
done | ||
|
||
# Avoid any output on non arm64 on emit_tests | ||
emit_tests: all | ||
@for DIR in $(ARM64_SUBTARGETS); do \ | ||
BUILD_TARGET=$(OUTPUT)/$$DIR; \ | ||
make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ | ||
done | ||
|
||
clean: | ||
@for DIR in $(ARM64_SUBTARGETS); do \ | ||
BUILD_TARGET=$(OUTPUT)/$$DIR; \ | ||
make OUTPUT=$$BUILD_TARGET -C $$DIR $@; \ | ||
done | ||
|
||
.PHONY: all clean install run_tests emit_tests |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
KSelfTest ARM64 | ||
=============== | ||
|
||
- These tests are arm64 specific and so not built or run but just skipped | ||
completely when env-variable ARCH is found to be different than 'arm64' | ||
and `uname -m` reports other than 'aarch64'. | ||
|
||
- Holding true the above, ARM64 KSFT tests can be run within the KSelfTest | ||
framework using standard Linux top-level-makefile targets: | ||
|
||
$ make TARGETS=arm64 kselftest-clean | ||
$ make TARGETS=arm64 kselftest | ||
|
||
or | ||
|
||
$ make -C tools/testing/selftests TARGETS=arm64 \ | ||
INSTALL_PATH=<your-installation-path> install | ||
|
||
or, alternatively, only specific arm64/ subtargets can be picked: | ||
|
||
$ make -C tools/testing/selftests TARGETS=arm64 ARM64_SUBTARGETS="tags signal" \ | ||
INSTALL_PATH=<your-installation-path> install | ||
|
||
Further details on building and running KFST can be found in: | ||
Documentation/dev-tools/kselftest.rst |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
CFLAGS += -I../../../../../usr/include/ | ||
TEST_GEN_PROGS := tags_test | ||
TEST_PROGS := run_tags_test.sh | ||
|
||
include ../../lib.mk |
File renamed without changes.
File renamed without changes.