All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Mickaël Salaün" <mic@digikod.net>
To: Sean Christopherson <seanjc@google.com>
Cc: "Christian Brauner" <brauner@kernel.org>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Kees Cook" <keescook@chromium.org>,
	"Mark Brown" <broonie@kernel.org>,
	"Shengyu Li" <shengyu.li.evgeny@gmail.com>,
	"Shuah Khan" <shuah@kernel.org>,
	"David S . Miller" <davem@davemloft.net>,
	"Günther Noack" <gnoack@google.com>,
	"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
Subject: Re: [PATCH v5 10/10] selftests/harness: Handle TEST_F()'s explicit exit codes
Date: Mon, 6 May 2024 18:22:25 +0200	[thread overview]
Message-ID: <20240506.Ceeche0coolu@digikod.net> (raw)
In-Reply-To: <ZjTx7BYvbrqFSNuH@google.com>

On Fri, May 03, 2024 at 07:17:16AM GMT, Sean Christopherson wrote:
> On Fri, May 03, 2024, Mickaël Salaün wrote:
> > 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.
> > 
> > Initial patch written by Sean Christopherson [1].
> 
> Heh, my pseudo patch barely has any relevance at this point.  How about replacing
> that with:
> 
>   Reported-by: Sean Christopherson <seanjc@google.com>
>   Closes: https://lore.kernel.org/r/ZjPelW6-AbtYvslu@google.com
> 
> > Cc: Jakub Kicinski <kuba@kernel.org>
> > Cc: Kees Cook <keescook@chromium.org>
> > Cc: Mark Brown <broonie@kernel.org>
> > Cc: Sean Christopherson <seanjc@google.com>
> > Cc: Shuah Khan <shuah@kernel.org>
> > Cc: Will Drewry <wad@chromium.org>
> > Link: https://lore.kernel.org/r/ZjPelW6-AbtYvslu@google.com [1]
> > 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/20240503105820.300927-11-mic@digikod.net
> > ---
> > 
> > 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 eb25f7c11949..7612bf09c5f8 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); \
> 
> Ah, IIUC, this works because __run_test() effectively forwards the exit_code?
> 
> 	} else if (t->pid == 0) {
> 		setpgrp();
> 		t->fn(t, variant);
> 		_exit(t->exit_code);
> 	}

Yes

> 
> Tested-by: Sean Christopherson <seanjc@google.com>

OK, I'll send a v6. We really need to get this into -next.

> 
> > +		} else if (WIFSIGNALED(status)) { \
> >  			/* Forward signal to __wait_for_test(). */ \
> >  			kill(getpid(), WTERMSIG(status)); \
> > +		} \
> >  		__test_check_assert(_metadata); \
> >  	} \
> >  	static void __attribute__((constructor)) \
> > -- 
> > 2.45.0
> > 
> 

      reply	other threads:[~2024-05-06 16:22 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-03 10:58 [PATCH v5 00/10] Fix Kselftest's vfork() side effects Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 01/10] selftests/pidfd: Fix config for pidfd_setns_test Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 02/10] selftests/landlock: Fix FS tests when run on a private mount point Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 03/10] selftests/harness: Fix fixture teardown Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 04/10] selftests/harness: Fix interleaved scheduling leading to race conditions Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 05/10] selftests/landlock: Do not allocate memory in fixture data Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 06/10] selftests/harness: Constify fixture variants Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 07/10] selftests/pidfd: Fix wrong expectation Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 08/10] selftests/harness: Share _metadata between forked processes Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 09/10] selftests/harness: Fix vfork() side effects Mickaël Salaün
2024-05-03 10:58 ` [PATCH v5 10/10] selftests/harness: Handle TEST_F()'s explicit exit codes Mickaël Salaün
2024-05-03 14:17   ` Sean Christopherson
2024-05-06 16:22     ` 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=20240506.Ceeche0coolu@digikod.net \
    --to=mic@digikod.net \
    --cc=brauner@kernel.org \
    --cc=broonie@kernel.org \
    --cc=davem@davemloft.net \
    --cc=gnoack@google.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=seanjc@google.com \
    --cc=shengyu.li.evgeny@gmail.com \
    --cc=shuah@kernel.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.