linux/tools/testing/selftests/arm64
Mark Brown 314bcbf09f kselftest: arm64: Add BTI tests
Add some tests that verify that BTI functions correctly for static binaries
built with and without BTI support, verifying that SIGILL is generated when
expected and is not generated in other situations.

Since BTI support is still being rolled out in distributions these tests
are built entirely free standing, no libc support is used at all so none
of the standard helper functions for kselftest can be used and we open
code everything. This also means we aren't testing the kernel support for
the dynamic linker, though the test program can be readily adapted for
that once it becomes something that we can reliably build and run.

These tests were originally written by Dave Martin, I've adapted them for
kselftest, mainly around the build system and the output format.

Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: Dave Martin <Dave.Martin@arm.com>
Link: https://lore.kernel.org/r/20210309193731.57247-1-broonie@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2021-03-24 15:43:20 +00:00
..
bti kselftest: arm64: Add BTI tests 2021-03-24 15:43:20 +00:00
fp kselftest: arm64: Fix exit code of sve-ptrace 2021-03-10 10:58:11 +00:00
mte kselftest/arm64: mte: Report filename on failing temp file creation 2021-03-24 15:43:20 +00:00
pauth kselftests/arm64: add PAuth tests for single threaded consistency and differently initialized keys 2020-09-18 14:07:20 +01:00
signal kselftest: arm64: Remove redundant clean target 2020-06-24 14:25:59 +01:00
tags .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
Makefile kselftest: arm64: Add BTI tests 2021-03-24 15:43:20 +00:00
README kselftest: arm64: extend toplevel skeleton Makefile 2019-11-08 11:10:30 +00:00

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