diff mbox series

kselftest/arm64: signal: Skip tests if required features are missing

Message ID 20210920121228.35368-1-cristian.marussi@arm.com (mailing list archive)
State New, archived
Headers show
Series kselftest/arm64: signal: Skip tests if required features are missing | expand

Commit Message

Cristian Marussi Sept. 20, 2021, 12:12 p.m. UTC
During initialization of a signal testcase, features declared as required
are properly checked against the running system but no action is then taken
to effectively skip such a testcase.

Fix core signals test logic to abort initialization and report such a
testcase as skipped to the KSelfTest framework.

Fixes: f96bf4340316 ("kselftest: arm64: mangle_pstate_invalid_compat_toggle and common utils")
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
---
As a consequence KSelfTest TAP results will now report this when a signal-SVE
testcase run on a system missing SVE:

\# selftests: arm64: fake_sigreturn_sve_change_vl
\# Registered handlers for all signals.
\# Detected MINSTKSIGSZ:4720
\# Required Features: [ SVE ] NOT supported
\# ==>> completed. SKIP.
\# # FAKE_SIGRETURN_SVE_CHANGE :: Attempt to change SVE VL
\# ok 7 selftests: arm64: fake_sigreturn_sve_change_vl # SKIP
---
 tools/testing/selftests/arm64/signal/test_signals_utils.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Mark Brown Sept. 20, 2021, 12:22 p.m. UTC | #1
On Mon, Sep 20, 2021 at 01:12:28PM +0100, Cristian Marussi wrote:
> During initialization of a signal testcase, features declared as required
> are properly checked against the running system but no action is then taken
> to effectively skip such a testcase.

Reviwed-by: Mark Brown <broonie@kernel.org>

I have a version of this locally which I thought I'd sent out already
among all the in flight patches I've got for kseltest but it looks like
it didn't make it.
Cristian Marussi Sept. 20, 2021, 12:30 p.m. UTC | #2
On Mon, Sep 20, 2021 at 01:22:40PM +0100, Mark Brown wrote:
> On Mon, Sep 20, 2021 at 01:12:28PM +0100, Cristian Marussi wrote:
> > During initialization of a signal testcase, features declared as required
> > are properly checked against the running system but no action is then taken
> > to effectively skip such a testcase.
> 
> Reviwed-by: Mark Brown <broonie@kernel.org>
> 
> I have a version of this locally which I thought I'd sent out already
> among all the in flight patches I've got for kseltest but it looks like
> it didn't make it.

Ah ok sorry, I did not know. Pick either as you wish.

Thanks,
Cristian
Mark Brown Sept. 20, 2021, 12:31 p.m. UTC | #3
On Mon, Sep 20, 2021 at 01:30:14PM +0100, Cristian Marussi wrote:
> On Mon, Sep 20, 2021 at 01:22:40PM +0100, Mark Brown wrote:
> > On Mon, Sep 20, 2021 at 01:12:28PM +0100, Cristian Marussi wrote:
> > > During initialization of a signal testcase, features declared as required
> > > are properly checked against the running system but no action is then taken
> > > to effectively skip such a testcase.

> > Reviwed-by: Mark Brown <broonie@kernel.org>

> > I have a version of this locally which I thought I'd sent out already
> > among all the in flight patches I've got for kseltest but it looks like
> > it didn't make it.

> Ah ok sorry, I did not know. Pick either as you wish.

No, please use this one - like I say I thought I'd sent mine out but it
looks like I didn't.
Catalin Marinas Sept. 21, 2021, 5:12 p.m. UTC | #4
On Mon, 20 Sep 2021 13:12:28 +0100, Cristian Marussi wrote:
> During initialization of a signal testcase, features declared as required
> are properly checked against the running system but no action is then taken
> to effectively skip such a testcase.
> 
> Fix core signals test logic to abort initialization and report such a
> testcase as skipped to the KSelfTest framework.

Applied to arm64 (for-next/fixes), thanks!

[1/1] kselftest/arm64: signal: Skip tests if required features are missing
      https://git.kernel.org/arm64/c/0e3dbf765fe2
diff mbox series

Patch

diff --git a/tools/testing/selftests/arm64/signal/test_signals_utils.c b/tools/testing/selftests/arm64/signal/test_signals_utils.c
index 6836510a522f..22722abc9dfa 100644
--- a/tools/testing/selftests/arm64/signal/test_signals_utils.c
+++ b/tools/testing/selftests/arm64/signal/test_signals_utils.c
@@ -266,16 +266,19 @@  int test_init(struct tdescr *td)
 			td->feats_supported |= FEAT_SSBS;
 		if (getauxval(AT_HWCAP) & HWCAP_SVE)
 			td->feats_supported |= FEAT_SVE;
-		if (feats_ok(td))
+		if (feats_ok(td)) {
 			fprintf(stderr,
 				"Required Features: [%s] supported\n",
 				feats_to_string(td->feats_required &
 						td->feats_supported));
-		else
+		} else {
 			fprintf(stderr,
 				"Required Features: [%s] NOT supported\n",
 				feats_to_string(td->feats_required &
 						~td->feats_supported));
+			td->result = KSFT_SKIP;
+			return 0;
+		}
 	}
 
 	/* Perform test specific additional initialization */