summaryrefslogtreecommitdiff
path: root/tests/arch_prctl.sh
diff options
context:
space:
mode:
authorEugene Syromyatnikov <evgsyr@gmail.com>2022-08-08 11:54:43 +0200
committerEugene Syromyatnikov <evgsyr@gmail.com>2022-08-11 14:34:17 +0200
commit07da2c35fd20e1d9af9acd3401f3be7699486b67 (patch)
tree39d7be071eca802100bb67b500c67fbcd6ea0c11 /tests/arch_prctl.sh
parente926431fdaf4e75a73e8777ac6179dabe02b48d9 (diff)
downloadstrace-07da2c35fd20e1d9af9acd3401f3be7699486b67.tar.gz
arch_prctl: decode ARCH_GET_XCOMP_SUPP, ARCH_{GET,REQ}_XCOMP{,_GUEST}_PERM
* src/xlat/archvals.in (ARCH_GET_XCOMP_SUPP, ARCH_GET_XCOMP_PERM, ARCH_REQ_XCOMP_PERM): New constants, introduced by Linux commit v5.16-rc1~195^2~21. (ARCH_GET_XCOMP_GUEST_PERM, ARCH_REQ_XCOMP_GUEST_PERM): New constants, introduced by Linux commit v5.17-rc1~15^2~70. * src/xlat/x86_xfeature_bits.in: New file. * src/xlat/x86_xfeatures.in: Likewise. * src/prctl.c [X86_64 || X32 || I386]: Include "xlat/x86_xfeature_bits.h", "xlat/x86_xfeatures.h". * tests/.gitignore: Add arch_prctl, arch_prctl-Xabbrev, arch_prctl-Xraw, arch_prctl-Xverbose, arch_prctl-success, arch_prctl-success-Xabbrev, arch_prctl-success-Xraw, and arch_prctl-success-Xverbose. * tests/Makefile.am (check_PROGRAMS): Add arch_prctl-success, arch_prctl-success-Xabbrev, arch_prctl-success-Xraw, and arch_prctl-success-Xverbose. * tests/arch_prctl.c: New file. * tests/arch_prctl-Xabbrev.c: Likewise. * tests/arch_prctl-Xraw.c: Likewise. * tests/arch_prctl-Xverbose.c: Likewise. * tests/arch_prctl-success.c: Likewise. * tests/arch_prctl-success-Xabbrev.c: Likewise. * tests/arch_prctl-success-Xraw.c: Likewise. * tests/arch_prctl-success-Xverbose.c: Likewise. * tests/arch_prctl.sh: Likewise. * tests/gen_tests.in (arch_prctl, arch_prctl-Xabbrev, arch_prctl-Xraw, arch_prctl-Xverbose, arch_prctl-success, arch_prctl-success-Xabbrev, arch_prctl-success-Xraw, arch_prctl-success-Xverbose): New tests. * tests/prctl-success.sh (PRCTL_SYSCALL, PRCTL_MARKER_RE): New vaiables. Handle "ARCH_PRCTL_INJECT_RETVALS" in addition to "PRCTL_INJECT_RETVALS", set PRCTL_SYSCALL and PRCTL_MARKER_RE accordingly; use $PRCTL_SYSCALL and $PRCTL_MARKER_RE in run_strace and sed calls. * tests/pure_executables.list: Add arch_prctl, arch_prctl-Xabbrev, arch_prctl-Xraw, and arch_prctl-Xverbose. * NEWS: Mention it.
Diffstat (limited to 'tests/arch_prctl.sh')
-rw-r--r--tests/arch_prctl.sh16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/arch_prctl.sh b/tests/arch_prctl.sh
new file mode 100644
index 000000000..ddab7e25a
--- /dev/null
+++ b/tests/arch_prctl.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+#
+# Check arch_prctl syscall decoding.
+#
+# Copyright (c) 20212-2022 The strace developers.
+# All rights reserved.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+. "${srcdir=.}/init.sh"
+
+check_prog sed
+run_prog > /dev/null
+run_strace -earch_prctl "$@" $args > "$EXP"
+sed '0,/^arch_prctl(0xffffffff\( \/\* ARCH_??? \*\/\)\?, 0xfffffffe) *= -1 /d' < "$LOG" > "$OUT"
+match_diff "$OUT" "$EXP"