All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mickaël Salaün" <mic@digikod.net>
To: Christian Brauner <brauner@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jakub Kicinski <kuba@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Mark Brown <broonie@kernel.org>, Sasha Levin <sashal@kernel.org>,
	Sean Christopherson <seanjc@google.com>,
	Shengyu Li <shengyu.li.evgeny@gmail.com>,
	Shuah Khan <shuah@kernel.org>,
	Shuah Khan <skhan@linuxfoundation.org>
Cc: "Mickaël Salaün" <mic@digikod.net>,
	"Bagas Sanjaya" <bagasdotme@gmail.com>,
	"Brendan Higgins" <brendanhiggins@google.com>,
	"David Gow" <davidgow@google.com>,
	"David S . Miller" <davem@davemloft.net>,
	"Florian Fainelli" <florian.fainelli@broadcom.com>,
	"Günther Noack" <gnoack@google.com>,
	"Jon Hunter" <jonathanh@nvidia.com>, "Ron Economos" <re@w6rz.net>,
	"Ronald Warsow" <rwarsow@gmx.de>,
	"Stephen Rothwell" <sfr@canb.auug.org.au>,
	"Will Drewry" <wad@chromium.org>,
	"kernel test robot" <oliver.sang@intel.com>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-kselftest@vger.kernel.org, netdev@vger.kernel.org,
	stable@vger.kernel.org
Subject: [PATCH v7 10/10] selftests/harness: Handle TEST_F()'s explicit exit codes
Date: Sat, 11 May 2024 19:14:45 +0200	[thread overview]
Message-ID: <20240511171445.904356-11-mic@digikod.net> (raw)
In-Reply-To: <20240511171445.904356-1-mic@digikod.net>

If TEST_F() explicitly calls exit(code) with code different than 0, then
_metadata->exit_code is set to this code (e.g. KVM_ONE_VCPU_TEST()).  We
need to keep in mind that _metadata->exit_code can be KSFT_SKIP while
the process exit code is 0.

Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Will Drewry <wad@chromium.org>
Reported-by: Sean Christopherson <seanjc@google.com>
Tested-by: Sean Christopherson <seanjc@google.com>
Closes: https://lore.kernel.org/r/ZjPelW6-AbtYvslu@google.com
Fixes: 0710a1a73fb4 ("selftests/harness: Merge TEST_F_FORK() into TEST_F()")
Signed-off-by: Mickaël Salaün <mic@digikod.net>
Link: https://lore.kernel.org/r/20240511171445.904356-11-mic@digikod.net
---

Changes since v5:
* Update commit message as suggested by Sean.

Changes since v4:
* Check abort status when the grandchild exited.
* Keep the _exit(0) calls because _metadata->exit_code is always
  checked.
* Only set _metadata->exit_code to WEXITSTATUS() if it is not zero.

Changes since v3:
* New patch mainly from Sean Christopherson.
---
 tools/testing/selftests/kselftest_harness.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h
index cbedb4a6cf7b..3c8f2965c285 100644
--- a/tools/testing/selftests/kselftest_harness.h
+++ b/tools/testing/selftests/kselftest_harness.h
@@ -462,9 +462,13 @@ static inline pid_t clone3_vfork(void)
 		munmap(teardown, sizeof(*teardown)); \
 		if (self && fixture_name##_teardown_parent) \
 			munmap(self, sizeof(*self)); \
-		if (!WIFEXITED(status) && WIFSIGNALED(status)) \
+		if (WIFEXITED(status)) { \
+			if (WEXITSTATUS(status)) \
+				_metadata->exit_code = WEXITSTATUS(status); \
+		} else if (WIFSIGNALED(status)) { \
 			/* Forward signal to __wait_for_test(). */ \
 			kill(getpid(), WTERMSIG(status)); \
+		} \
 		__test_check_assert(_metadata); \
 	} \
 	static struct __test_metadata *_##fixture_name##_##test_name##_object; \
-- 
2.45.0


      parent reply	other threads:[~2024-05-11 17:15 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-11 17:14 [PATCH v7 00/10] Fix Kselftest's vfork() side effects Mickaël Salaün
2024-05-11 17:14 ` [PATCH v7 01/10] selftests/pidfd: Fix config for pidfd_setns_test Mickaël Salaün
2024-05-11 17:14 ` [PATCH v7 02/10] selftests/landlock: Fix FS tests when run on a private mount point Mickaël Salaün
2024-05-11 17:14 ` [PATCH v7 03/10] selftests/harness: Fix fixture teardown Mickaël Salaün
2024-05-11 17:14 ` [PATCH v7 04/10] selftests/harness: Fix interleaved scheduling leading to race conditions Mickaël Salaün
2024-05-27 19:07   ` Mark Brown
2024-06-03 16:27     ` Mark Brown
2024-06-03 17:22       ` Mark Brown
2024-06-04 16:06         ` Mickaël Salaün
2024-06-04 16:18           ` Mark Brown
2024-05-11 17:14 ` [PATCH v7 05/10] selftests/landlock: Do not allocate memory in fixture data Mickaël Salaün
2024-05-11 17:14 ` [PATCH v7 06/10] selftests/harness: Constify fixture variants Mickaël Salaün
2024-05-11 17:14 ` [PATCH v7 07/10] selftests/pidfd: Fix wrong expectation Mickaël Salaün
2024-05-11 17:16   ` kernel test robot
2024-05-11 17:14 ` [PATCH v7 08/10] selftests/harness: Share _metadata between forked processes Mickaël Salaün
2024-05-11 17:14 ` [PATCH v7 09/10] selftests/harness: Fix vfork() side effects Mickaël Salaün
2024-05-11 17:14 ` Mickaël Salaün [this message]

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=20240511171445.904356-11-mic@digikod.net \
    --to=mic@digikod.net \
    --cc=bagasdotme@gmail.com \
    --cc=brauner@kernel.org \
    --cc=brendanhiggins@google.com \
    --cc=broonie@kernel.org \
    --cc=davem@davemloft.net \
    --cc=davidgow@google.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=gnoack@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jonathanh@nvidia.com \
    --cc=keescook@chromium.org \
    --cc=kuba@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=oliver.sang@intel.com \
    --cc=re@w6rz.net \
    --cc=rwarsow@gmx.de \
    --cc=sashal@kernel.org \
    --cc=seanjc@google.com \
    --cc=sfr@canb.auug.org.au \
    --cc=shengyu.li.evgeny@gmail.com \
    --cc=shuah@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=wad@chromium.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.