[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/6] tests/tcg/aarch64: Add pauth smoke tests
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH 6/6] tests/tcg/aarch64: Add pauth smoke tests |
Date: |
Mon, 28 Jan 2019 11:06:14 +0000 |
User-agent: |
mu4e 1.1.0; emacs 26.1.91 |
Richard Henderson <address@hidden> writes:
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> tests/tcg/aarch64/pauth-1.c | 23 +++++++++++++++++++++++
> tests/tcg/aarch64/Makefile.target | 7 ++++++-
> 2 files changed, 29 insertions(+), 1 deletion(-)
> create mode 100644 tests/tcg/aarch64/pauth-1.c
>
> diff --git a/tests/tcg/aarch64/pauth-1.c b/tests/tcg/aarch64/pauth-1.c
> new file mode 100644
> index 0000000000..9bd8d28ede
> --- /dev/null
> +++ b/tests/tcg/aarch64/pauth-1.c
> @@ -0,0 +1,23 @@
> +#include <assert.h>
> +#include <sys/prctl.h>
> +
> +asm(".arch armv8.4-a");
> +
> +#ifndef PR_PAC_RESET_KEYS
> +#define PR_PAC_RESET_KEYS 54
> +#define PR_PAC_APDAKEY (1 << 2)
> +#endif
> +
> +int main()
> +{
> + int x;
> + void *p0 = &x, *p1, *p2;
> +
> + asm volatile("pacdza %0" : "=r"(p1) : "0"(p0));
> + prctl(PR_PAC_RESET_KEYS, PR_PAC_APDAKEY);
> + asm volatile("pacdza %0" : "=r"(p2) : "0"(p0));
> +
> + assert(p1 != p0);
> + assert(p1 != p2);
> + return 0;
> +}
> diff --git a/tests/tcg/aarch64/Makefile.target
> b/tests/tcg/aarch64/Makefile.target
> index 08c45b8470..e80d07276c 100644
> --- a/tests/tcg/aarch64/Makefile.target
> +++ b/tests/tcg/aarch64/Makefile.target
> @@ -8,10 +8,15 @@ VPATH += $(AARCH64_SRC)
> # we don't build any of the ARM tests
> AARCH64_TESTS=$(filter-out $(ARM_TESTS), $(TESTS))
> AARCH64_TESTS+=fcvt
> -TESTS:=$(AARCH64_TESTS)
>
> fcvt: LDFLAGS+=-lm
>
> run-fcvt: fcvt
> $(call run-test,$<,$(QEMU) $<, "$< on $(TARGET_NAME)")
> $(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
> +
> +AARCH64_TESTS += pauth-1
> +pauth-%: CFLAGS += -O -g
We build all tests with:
CFLAGS+=-Wall -O0 -g -fno-strict-aliasing
mainly because the first thing you want to do when they fail is run them
through gdb to see what went wrong. Do you actually need optimisation on
for the build to work? Everything else looks good though:
Reviewed-by: Alex Bennée <address@hidden>
> +run-pauth-%: QEMU += -cpu max
> +
> +TESTS:=$(AARCH64_TESTS)
--
Alex Bennée
- [Qemu-devel] [PATCH 0/6] target/arm: Complete ARMv8.3-PAuth linux-user, Richard Henderson, 2019/01/25
- [Qemu-devel] [PATCH 6/6] tests/tcg/aarch64: Add pauth smoke tests, Richard Henderson, 2019/01/25
- Re: [Qemu-devel] [PATCH 6/6] tests/tcg/aarch64: Add pauth smoke tests,
Alex Bennée <=
- [Qemu-devel] [PATCH 2/6] aarch64-linux-user: Update HWCAP bits from linux 5.0-rc1, Richard Henderson, 2019/01/25
- [Qemu-devel] [PATCH 3/6] aarch64-linux-user: Enable HWCAP bits for PAuth, Richard Henderson, 2019/01/25
- [Qemu-devel] [PATCH 4/6] linux-user: Initialize aarch64 pac keys, Richard Henderson, 2019/01/25
- [Qemu-devel] [PATCH 5/6] linux-user: Implement PR_PAC_RESET_KEYS, Richard Henderson, 2019/01/25
- [Qemu-devel] [PATCH] target/arm: Fix validation of 32-bit address spaces for aa32, Richard Henderson, 2019/01/25
- [Qemu-devel] [PATCH 1/6] target/arm: Always enable pac keys for user-only, Richard Henderson, 2019/01/25