All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Palethorpe <rpalethorpe@suse.de>
To: Avinesh Kumar <akumar@suse.de>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH] setreuid01.c: Rewrite using new LTP API and use TST_EXP* macros
Date: Thu, 22 Dec 2022 08:47:34 +0000	[thread overview]
Message-ID: <87ili3stt2.fsf@suse.de> (raw)
In-Reply-To: <20221221075220.14353-1-akumar@suse.de>

Hello,

Avinesh Kumar <akumar@suse.de> writes:

> Hi,
> I changed this simple setreuid() test to new LTP API but I think
> this is a subset of setreuid03.c test and can be removed altogether.
> Please share your opinion. If this should be removed, I'll post new
> patch for that.

Yes, I think that is reasonable.

>
>
> Signed-off-by: Avinesh Kumar <akumar@suse.de>
> ---
>  .../kernel/syscalls/setreuid/setreuid01.c     | 188 +++---------------
>  1 file changed, 25 insertions(+), 163 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/setreuid/setreuid01.c b/testcases/kernel/syscalls/setreuid/setreuid01.c
> index 54ba2d7a8..b0c1e0ab2 100644
> --- a/testcases/kernel/syscalls/setreuid/setreuid01.c
> +++ b/testcases/kernel/syscalls/setreuid/setreuid01.c
> @@ -1,176 +1,38 @@
> +// SPDX-License-Identifier: GPL-2.0
>  /*
>   * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
> - *
> - * This program is free software; you can redistribute it and/or modify it
> - * under the terms of version 2 of the GNU General Public License as
> - * published by the Free Software Foundation.
> - *
> - * This program is distributed in the hope that it would be useful, but
> - * WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> - *
> - * Further, this software is distributed without any warranty that it is
> - * free of the rightful claim of any third person regarding infringement
> - * or the like.  Any license provided herein, whether implied or
> - * otherwise, applies only to this software file.  Patent licenses, if
> - * any, provided herein do not apply to combinations of this program with
> - * other software, or any other product whatsoever.
> - *
> - * You should have received a copy of the GNU General Public License along
> - * with this program; if not, write the Free Software Foundation, Inc.,
> - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> - *
> - * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
> - * Mountain View, CA  94043, or:
> - *
> - * http://www.sgi.com
> - *
> - * For further information regarding this notice, see:
> - *
> - * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
> - *
> - * Author: William Roske
> - * Co-pilot: Dave Fenner
> + *	Author: William Roske
> + *	Co-pilot: Dave Fenner
> + * Copyright (c) 2022 SUSE LLC Avinesh Kumar <avinesh.kumar@suse.com>
>   */
>  
> -/*
> - * Testcase to test the basic functionality of setreuid(2) system call.
> +/*\
> + * [Description]
> + *
> + * Verify the basic functionality of setreuid(2) system call when executed
> + * as non-root user.
>   */
>  
> -#include <errno.h>
> -#include <string.h>
> -#include <signal.h>
> -#include <sys/types.h>
> +#include "tst_test.h"
> +#include "compat_tst_16.h"
>  
> -#include "test.h"
> -#include "compat_16.h"
> +static uid_t ruid, euid;
>  
> -static void setup(void);
> -static void cleanup(void);
> -
> -TCID_DEFINE(setreuid01);
> -int TST_TOTAL = 5;
> -
> -static uid_t ruid, euid;	/* real and effective user ids */
> -
> -int main(int ac, char **av)
> +static void run(void)
>  {
> -	int lc;
> -
> -	tst_parse_opts(ac, av, NULL, NULL);
> -
> -	setup();
> -
> -	for (lc = 0; TEST_LOOPING(lc); lc++) {
> -
> -		tst_count = 0;
> -
> -		/*
> -		 * TEST CASE:
> -		 *  Don't change either real or effective uid
> -		 */
> -		ruid = getuid();	/* get real uid */
> -		UID16_CHECK(ruid, setreuid, cleanup);
> -
> -		euid = geteuid();	/* get effective uid */
> -		UID16_CHECK(euid, setreuid, cleanup);
> -
> -		TEST(SETREUID(cleanup, -1, -1));
> +	ruid = getuid();
> +	UID16_CHECK(ruid, setreuid);
>  
> -		if (TEST_RETURN == -1) {
> -			tst_resm(TFAIL,
> -				 "setreuid -  Don't change either real or effective uid failed, errno=%d : %s",
> -				 TEST_ERRNO, strerror(TEST_ERRNO));
> -		} else {
> -			tst_resm(TPASS,
> -				 "setreuid -  Don't change either real or effective uid returned %ld",
> -				 TEST_RETURN);
> -		}
> +	euid = geteuid();
> +	UID16_CHECK(euid, setreuid);
>  
> -		/*
> -		 * TEST CASE:
> -		 *  change effective to effective uid
> -		 */
> -
> -		TEST(SETREUID(cleanup, -1, euid));
> -
> -		if (TEST_RETURN == -1) {
> -			tst_resm(TFAIL,
> -				 "setreuid -  change effective to effective uid failed, errno=%d : %s",
> -				 TEST_ERRNO, strerror(TEST_ERRNO));
> -		} else {
> -			tst_resm(TPASS,
> -				 "setreuid -  change effective to effective uid returned %ld",
> -				 TEST_RETURN);
> -		}
> -
> -		/*
> -		 * TEST CASE:
> -		 *  change real to real uid
> -		 */
> -
> -		TEST(SETREUID(cleanup, ruid, -1));
> -
> -		if (TEST_RETURN == -1) {
> -			tst_resm(TFAIL,
> -				 "setreuid -  change real to real uid failed, errno=%d : %s",
> -				 TEST_ERRNO, strerror(TEST_ERRNO));
> -		} else {
> -			tst_resm(TPASS,
> -				 "setreuid -  change real to real uid returned %ld",
> -				 TEST_RETURN);
> -		}
> -
> -		/*
> -		 * TEST CASE:
> -		 *  change effective to real uid
> -		 */
> -
> -		TEST(SETREUID(cleanup, -1, ruid));
> -
> -		if (TEST_RETURN == -1) {
> -			tst_resm(TFAIL,
> -				 "setreuid -  change effective to real uid failed, errno=%d : %s",
> -				 TEST_ERRNO, strerror(TEST_ERRNO));
> -		} else {
> -			tst_resm(TPASS,
> -				 "setreuid -  change effective to real uid returned %ld",
> -				 TEST_RETURN);
> -		}
> -
> -		/*
> -		 * TEST CASE:
> -		 *  try to change real to current real
> -		 */
> -
> -		TEST(SETREUID(cleanup, ruid, ruid));
> -
> -		if (TEST_RETURN == -1) {
> -			tst_resm(TFAIL,
> -				 "setreuid -  try to change real to current real failed, errno=%d : %s",
> -				 TEST_ERRNO, strerror(TEST_ERRNO));
> -		} else {
> -			tst_resm(TPASS,
> -				 "setreuid -  try to change real to current real returned %ld",
> -				 TEST_RETURN);
> -		}
> -
> -	}
> -
> -	cleanup();
> -	tst_exit();
> -}
> -
> -static void setup(void)
> -{
> -	tst_sig(NOFORK, DEF_HANDLER, cleanup);
> -
> -	TEST_PAUSE;
> -
> -	tst_tmpdir();
> +	TST_EXP_PASS(setreuid(-1, -1));
> +	TST_EXP_PASS(setreuid(-1, euid));
> +	TST_EXP_PASS(setreuid(ruid, -1));
> +	TST_EXP_PASS(setreuid(-1, ruid));
> +	TST_EXP_PASS(setreuid(euid, -1));
>  }
>  
> -static void cleanup(void)
> -{
> -	tst_rmdir();
> -}
> +static struct tst_test test = {
> +	.test_all = run
> +};
> -- 
> 2.39.0


-- 
Thank you,
Richard.

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

  reply	other threads:[~2022-12-22  8:54 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-21  7:52 [LTP] [PATCH] setreuid01.c: Rewrite using new LTP API and use TST_EXP* macros Avinesh Kumar
2022-12-22  8:47 ` Richard Palethorpe [this message]
2022-12-23  8:53   ` Petr Vorel
2023-01-09 14:55 ` Richard Palethorpe
2023-01-10 10:35   ` [LTP] [PATCH v2] " Avinesh Kumar
2023-01-10 11:12     ` Richard Palethorpe

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=87ili3stt2.fsf@suse.de \
    --to=rpalethorpe@suse.de \
    --cc=akumar@suse.de \
    --cc=ltp@lists.linux.it \
    /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.