From: Cristian Marussi <cristian.marussi@arm.com> To: linux-kselftest@vger.kernel.org, linux-arm-kernel@lists.infradead.org, shuah@kernel.org Cc: andreyknvl@google.com, dave.martin@arm.com Subject: [PATCH v3 00/11] Add arm64/signal initial kselftest support Date: Fri, 2 Aug 2019 18:02:49 +0100 Message-ID: <20190802170300.20662-1-cristian.marussi@arm.com> (raw) Hi this patchset aims to add the initial arch-specific arm64 support to kselftest starting with signals-related test-cases. A common internal test-case layout is proposed which then it is anyway wired-up to the toplevel kselftest Makefile, so that it should be possible at the end to run it on an arm64 target in the usual way with KSFT. ~/linux# make TARGETS=arm64 kselftest New KSFT arm64 testcases live inside tools/testing/selftests/arm64 grouped by family inside subdirectories: arm64/signal is the first family proposed with this series. arm64/signal tests can be run via KSFT or standalone. Thanks Cristian Notes: ----- - further details in the included READMEs - more tests still to be written (current strategy is going through the related Kernel signal-handling code and write a test for each possible and sensible code-path) A few ideas in testcases/TODO.readme - a bit of overlap around KSFT arm64/ Makefiles is expected with this: https://lore.kernel.org/linux-arm-kernel/c1e6aad230658bc175b42d92daeff2e30050302a.1563904656.git.andreyknvl@google.com/ Changes: -------- v2-->v3: - rebased on v5.3-rc2 - better test result characterization looking for SEGV_ACCERR in si_code on SIGSEGV - using KSFT Framework macros for retvalues - removed SAFE_WRITE()/dump_uc: buggy, un-needed and unused - reviewed generation process of test_arm64_signals.sh runner script - re-added a fixed fake_sigreturn_misaligned_sp testcase and a properly extended fake_sigreturn() helper - added tests' TODO notes v1-->v2: - rebased on 5.2-rc7 - various makefile's cleanups - mixed READMEs fixes - fixed test_arm64_signals.sh runner script - cleaned up assembly code in signal.S - improved get_current_context() logic - fixed SAFE_WRITE() - common support code splitted into more chunks, each one introduced when needed by some new testcases - fixed some headers validation routines in testcases.c - removed some still broken/immature tests: + fake_sigreturn_misaligned + fake_sigreturn_overflow_reserved + mangle_pc_invalid + mangle_sp_misaligned - fixed some other testcases: + mangle_pstate_ssbs_regs: better checks of SSBS bit when feature unsupported + mangle_pstate_invalid_compat_toggle: name fix + mangle_pstate_invalid_mode_el[1-3]: precautionary zeroing PSTATE.MODE + fake_sigreturn_bad_magic, fake_sigreturn_bad_size, fake_sigreturn_bad_size_for_magic0: - accounting for available space...dropping extra when needed - keeping alignent - new testcases on FPSMID context: + fake_sigreturn_missing_fpsimd + fake_sigreturn_duplicated_fpsimd Cristian Marussi (11): kselftest: arm64: introduce new boilerplate code kselftest: arm64: adds first test and common utils kselftest: arm64: mangle_pstate_invalid_daif_bits kselftest: arm64: mangle_pstate_invalid_mode_el kselftest: arm64: mangle_pstate_ssbs_regs kselftest: arm64: fake_sigreturn_bad_magic kselftest: arm64: fake_sigreturn_bad_size_for_magic0 kselftest: arm64: fake_sigreturn_missing_fpsimd kselftest: arm64: fake_sigreturn_duplicated_fpsimd kselftest: arm64: fake_sigreturn_bad_size kselftest: arm64: fake_sigreturn_misaligned_sp tools/testing/selftests/Makefile | 1 + tools/testing/selftests/arm64/Makefile | 51 +++ tools/testing/selftests/arm64/README | 43 +++ .../testing/selftests/arm64/signal/.gitignore | 6 + tools/testing/selftests/arm64/signal/Makefile | 88 +++++ tools/testing/selftests/arm64/signal/README | 59 +++ .../testing/selftests/arm64/signal/signals.S | 73 ++++ .../arm64/signal/test_arm64_signals.src_shell | 55 +++ .../selftests/arm64/signal/test_signals.c | 26 ++ .../selftests/arm64/signal/test_signals.h | 141 +++++++ .../arm64/signal/test_signals_utils.c | 354 ++++++++++++++++++ .../arm64/signal/test_signals_utils.h | 16 + .../arm64/signal/testcases/.gitignore | 11 + .../arm64/signal/testcases/TODO.readme | 7 + .../testcases/fake_sigreturn_bad_magic.c | 63 ++++ .../testcases/fake_sigreturn_bad_size.c | 85 +++++ .../fake_sigreturn_bad_size_for_magic0.c | 57 +++ .../fake_sigreturn_duplicated_fpsimd.c | 62 +++ .../testcases/fake_sigreturn_misaligned_sp.c | 30 ++ .../testcases/fake_sigreturn_missing_fpsimd.c | 44 +++ .../mangle_pstate_invalid_compat_toggle.c | 25 ++ .../mangle_pstate_invalid_daif_bits.c | 28 ++ .../mangle_pstate_invalid_mode_el1.c | 29 ++ .../mangle_pstate_invalid_mode_el2.c | 29 ++ .../mangle_pstate_invalid_mode_el3.c | 29 ++ .../testcases/mangle_pstate_ssbs_regs.c | 56 +++ .../arm64/signal/testcases/testcases.c | 150 ++++++++ .../arm64/signal/testcases/testcases.h | 83 ++++ 28 files changed, 1701 insertions(+) create mode 100644 tools/testing/selftests/arm64/Makefile create mode 100644 tools/testing/selftests/arm64/README create mode 100644 tools/testing/selftests/arm64/signal/.gitignore create mode 100644 tools/testing/selftests/arm64/signal/Makefile create mode 100644 tools/testing/selftests/arm64/signal/README create mode 100644 tools/testing/selftests/arm64/signal/signals.S create mode 100755 tools/testing/selftests/arm64/signal/test_arm64_signals.src_shell create mode 100644 tools/testing/selftests/arm64/signal/test_signals.c create mode 100644 tools/testing/selftests/arm64/signal/test_signals.h create mode 100644 tools/testing/selftests/arm64/signal/test_signals_utils.c create mode 100644 tools/testing/selftests/arm64/signal/test_signals_utils.h create mode 100644 tools/testing/selftests/arm64/signal/testcases/.gitignore create mode 100644 tools/testing/selftests/arm64/signal/testcases/TODO.readme create mode 100644 tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_bad_magic.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_bad_size.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_bad_size_for_magic0.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_duplicated_fpsimd.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_misaligned_sp.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/fake_sigreturn_missing_fpsimd.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_compat_toggle.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_daif_bits.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el1.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el2.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_invalid_mode_el3.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/mangle_pstate_ssbs_regs.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/testcases.c create mode 100644 tools/testing/selftests/arm64/signal/testcases/testcases.h -- 2.17.1
next reply index Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-02 17:02 Cristian Marussi [this message] 2019-08-02 17:02 ` [PATCH v3 01/11] kselftest: arm64: introduce new boilerplate code Cristian Marussi 2019-08-13 16:23 ` Dave Martin 2019-08-27 12:14 ` Cristian Marussi 2019-08-02 17:02 ` [PATCH v3 02/11] kselftest: arm64: adds first test and common utils Cristian Marussi 2019-08-06 15:50 ` Cristian Marussi 2019-08-07 15:42 ` Cristian Marussi 2019-08-09 10:54 ` Cristian Marussi 2019-08-09 11:16 ` Dave Martin 2019-08-09 12:20 ` Cristian Marussi 2019-08-09 12:32 ` Dave Martin 2019-08-12 12:43 ` Amit Kachhap 2019-08-13 13:22 ` Cristian Marussi 2019-08-14 10:22 ` Amit Kachhap 2019-08-27 14:24 ` Cristian Marussi 2019-08-13 16:24 ` Dave Martin 2019-08-28 17:34 ` Cristian Marussi 2019-09-03 15:34 ` Dave Martin 2019-09-03 16:08 ` Cristian Marussi 2019-08-02 17:02 ` [PATCH v3 03/11] kselftest: arm64: mangle_pstate_invalid_daif_bits Cristian Marussi 2019-08-13 16:24 ` Dave Martin 2019-08-29 10:19 ` Cristian Marussi 2019-08-02 17:02 ` [PATCH v3 04/11] kselftest: arm64: mangle_pstate_invalid_mode_el Cristian Marussi 2019-08-13 16:24 ` Dave Martin 2019-08-29 11:50 ` Cristian Marussi 2019-08-02 17:02 ` [PATCH v3 05/11] kselftest: arm64: mangle_pstate_ssbs_regs Cristian Marussi 2019-08-13 16:25 ` Dave Martin 2019-08-29 15:35 ` Cristian Marussi 2019-08-02 17:02 ` [PATCH v3 06/11] kselftest: arm64: fake_sigreturn_bad_magic Cristian Marussi 2019-08-13 16:25 ` Dave Martin 2019-08-30 14:29 ` Cristian Marussi 2019-09-04 10:05 ` Dave Martin 2019-09-04 10:37 ` Cristian Marussi 2019-09-04 10:47 ` Dave Martin 2019-08-02 17:02 ` [PATCH v3 07/11] kselftest: arm64: fake_sigreturn_bad_size_for_magic0 Cristian Marussi 2019-08-13 16:25 ` Dave Martin 2019-08-30 14:49 ` Cristian Marussi 2019-08-02 17:02 ` [PATCH v3 08/11] kselftest: arm64: fake_sigreturn_missing_fpsimd Cristian Marussi 2019-08-13 16:26 ` Dave Martin 2019-08-30 14:55 ` Cristian Marussi 2019-08-02 17:02 ` [PATCH v3 09/11] kselftest: arm64: fake_sigreturn_duplicated_fpsimd Cristian Marussi 2019-08-13 16:26 ` Dave Martin 2019-08-30 15:11 ` Cristian Marussi 2019-08-02 17:02 ` [PATCH v3 10/11] kselftest: arm64: fake_sigreturn_bad_size Cristian Marussi 2019-08-13 16:26 ` Dave Martin 2019-08-30 15:21 ` Cristian Marussi 2019-08-02 17:03 ` [PATCH v3 11/11] kselftest: arm64: fake_sigreturn_misaligned_sp Cristian Marussi 2019-08-07 16:04 ` Cristian Marussi 2019-08-13 16:28 ` Dave Martin 2019-08-30 15:22 ` Cristian Marussi 2019-08-13 16:27 ` Dave Martin 2019-08-30 16:33 ` Cristian Marussi 2019-08-13 16:22 ` [PATCH v3 00/11] Add arm64/signal initial kselftest support Dave Martin 2019-08-30 16:40 ` Cristian Marussi 2019-09-02 10:53 ` Dave Martin 2019-09-02 11:30 ` Cristian Marussi
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190802170300.20662-1-cristian.marussi@arm.com \ --to=cristian.marussi@arm.com \ --cc=andreyknvl@google.com \ --cc=dave.martin@arm.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kselftest@vger.kernel.org \ --cc=shuah@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-kselftest Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-kselftest/0 linux-kselftest/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-kselftest linux-kselftest/ https://lore.kernel.org/linux-kselftest \ linux-kselftest@vger.kernel.org public-inbox-index linux-kselftest Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kselftest AGPL code for this site: git clone https://public-inbox.org/public-inbox.git