All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avinesh Kumar <akumar@suse.de>
To: Li Wang <liwang@redhat.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v2] getitimer03.c: convert to new LTP API
Date: Thu, 15 Sep 2022 15:30:22 +0530	[thread overview]
Message-ID: <12066736.O9o76ZdvQC@localhost> (raw)
In-Reply-To: <20220915074900.2639623-1-liwang@redhat.com>

Hi Li,

Sorry, I missed acting on the review comments you had provided. Thank you for
implementing them. Your patch looks good, I have tested as well.


On Thursday, September 15, 2022 1:19:00 PM IST Li Wang wrote:
> From: Avinesh Kumar <akumar@suse.de>
> 
> Signed-off-by: Avinesh Kumar <akumar@suse.de>
> Signed-off-by: Li Wang <liwang@redhat.com>
> ---
> 
> Notes:
>     Hi Avinesh,
>     
>         As this patch pending there with no action more than six weeks, I just
>         help to moving on the test convert-work in my suggest way, if you have
>         any different thought, please feel free add comments and review.
>         Thanks!  -- Li Wang
>     
>     v1 --> v2
>         * combine error test into 02 to better manage the error test in LTP
> 
>  .../kernel/syscalls/getitimer/getitimer02.c   |  45 +++++-
>  .../kernel/syscalls/getitimer/getitimer03.c   | 152 ------------------
>  2 files changed, 39 insertions(+), 158 deletions(-)
>  delete mode 100644 testcases/kernel/syscalls/getitimer/getitimer03.c
> 
> diff --git a/testcases/kernel/syscalls/getitimer/getitimer02.c b/testcases/kernel/syscalls/getitimer/getitimer02.c
> index a91e6434d..863e8e0a8 100644
> --- a/testcases/kernel/syscalls/getitimer/getitimer02.c
> +++ b/testcases/kernel/syscalls/getitimer/getitimer02.c
> @@ -1,30 +1,63 @@
>  // SPDX-License-Identifier: GPL-2.0-or-later
>  /*
>   * Copyright (c) International Business Machines  Corp., 2001
> - * 03/2001 - Written by Wayne Boyer
> + *               03/2001 - Written by Wayne Boyer
> + * Copyright (c) 2022 SUSE LLC Avinesh Kumar <avinesh.kumar@suse.com>
>   */
>  
>  /*\
>   * [Description]
>   *
> - * Check that a getitimer() call fails with EFAULT with invalid itimerval pointer.
> + * Check that getitimer() call fails:
> + *   1. EFAULT with invalid itimerval pointer
> + *   2. EINVAL when called with an invalid first argument
>   */
>  
> +#include <stdlib.h>
>  #include <errno.h>
>  #include <sys/time.h>
>  #include "tst_test.h"
>  #include "lapi/syscalls.h"
>  
> +static struct itimerval *value;
> +static struct itimerval *invalid;
> +
> +static struct tcase {
> +       int which;
> +       struct itimerval **val;
> +       int exp_errno;
> +} tcases[] = {
> +       {ITIMER_REAL, &invalid, EFAULT},
> +       {-ITIMER_PROF, &value, EINVAL},
> +};
> +
>  static int sys_getitimer(int which, void *curr_value)
>  {
> -	return tst_syscall(__NR_getitimer, which, curr_value);
> +        return tst_syscall(__NR_getitimer, which, curr_value);
> +}
> +
> +static void setup(void)
> +{
> +        value = SAFE_MALLOC(sizeof(struct itimerval));
> +        invalid = (struct itimerval *)-1;
> +}
> +
> +static void verify_getitimer(unsigned int i)
> +{
> +        struct tcase *tc = &tcases[i];
> +
> +        TST_EXP_FAIL(sys_getitimer(tc->which, *(tc->val)), tc->exp_errno);
>  }
>  
> -static void verify_getitimer(void)
> +static void cleanup(void)
>  {
> -	TST_EXP_FAIL(sys_getitimer(ITIMER_REAL, (struct itimerval *)-1), EFAULT);
> +        free(value);
> +        value = NULL;
>  }
>  
>  static struct tst_test test = {
> -	.test_all = verify_getitimer,
> +        .tcnt = ARRAY_SIZE(tcases),
> +        .test = verify_getitimer,
> +        .setup = setup,
> +        .cleanup = cleanup,
>  };
> diff --git a/testcases/kernel/syscalls/getitimer/getitimer03.c b/testcases/kernel/syscalls/getitimer/getitimer03.c
> deleted file mode 100644
> index cc5e83fad..000000000
> --- a/testcases/kernel/syscalls/getitimer/getitimer03.c
> +++ /dev/null
> @@ -1,152 +0,0 @@
> -/*
> - * Copyright (c) International Business Machines  Corp., 2001
> - *
> - * This program is free software;  you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY;  without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
> - * the GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program;  if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> - */
> -
> -/* $Header: /cvsroot/ltp/ltp/testcases/kernel/syscalls/getitimer/getitimer03.c,v 1.7 2009/08/28 10:18:24 vapier Exp $ */
> -
> -/*
> - * NAME
> - *	getitimer03.c
> - *
> - * DESCRIPTION
> - *	getitimer03 - check that a getitimer() call fails as expected
> - *		      with an incorrect first argument.
> - *
> - * CALLS
> - *	getitimer()
> - *
> - * ALGORITHM
> - *	loop if that option was specified
> - *	allocate space and set up needed values
> - *	issue the system call
> - *	check the errno value
> - *	  issue a PASS message if we get EINVAL
> - *	otherwise, the tests fails
> - *	  issue a FAIL message
> - *	  break any remaining tests
> - *	  call cleanup
> - *
> - * USAGE:  <for command-line>
> - *  getitmer03 [-c n] [-e] [-i n] [-I x] [-P x] [-t]
> - *     where,  -c n : Run n copies concurrently.
> - *             -e   : Turn on errno logging.
> - *	       -i n : Execute test n times.
> - *	       -I x : Execute test for x seconds.
> - *	       -P x : Pause for x seconds between iterations.
> - *	       -t   : Turn on syscall timing.
> - *
> - * USAGE
> - *	./getitimer03
> - *
> - * HISTORY
> - *	03/2001 - Written by Wayne Boyer
> - *
> - * RESTRICTIONS
> - *	none
> - */
> -
> -#include "test.h"
> -
> -#include <errno.h>
> -#include <sys/time.h>
> -
> -void cleanup(void);
> -void setup(void);
> -
> -char *TCID = "getitimer03";
> -int TST_TOTAL = 1;
> -
> -int main(int ac, char **av)
> -{
> -	int lc;
> -	struct itimerval *value;
> -
> -	tst_parse_opts(ac, av, NULL, NULL);
> -
> -	setup();		/* global setup */
> -
> -	/* The following loop checks looping state if -i option given */
> -
> -	for (lc = 0; TEST_LOOPING(lc); lc++) {
> -		/* reset tst_count in case we are looping */
> -		tst_count = 0;
> -
> -		/* allocate some space for the timer structure */
> -
> -		if ((value = malloc((size_t)sizeof(struct itimerval))) ==
> -		    NULL) {
> -			tst_brkm(TBROK, cleanup, "value malloc failed");
> -		}
> -
> -		/*
> -		 * issue the system call with the TEST() macro
> -		 * ITIMER_REAL = 0, ITIMER_VIRTUAL = 1 and ITIMER_PROF = 2
> -		 */
> -
> -		/* make the first value negative to get a failure */
> -		TEST(getitimer(-ITIMER_PROF, value));
> -
> -		if (TEST_RETURN == 0) {
> -			tst_resm(TFAIL, "call failed to produce expected error "
> -				 "- errno = %d - %s", TEST_ERRNO,
> -				 strerror(TEST_ERRNO));
> -			continue;
> -		}
> -
> -		switch (TEST_ERRNO) {
> -		case EINVAL:
> -			tst_resm(TPASS, "expected failure - errno = %d - %s",
> -				 TEST_ERRNO, strerror(TEST_ERRNO));
> -			break;
> -		default:
> -			tst_resm(TFAIL, "call failed to produce expected error "
> -				 "- errno = %d - %s", TEST_ERRNO,
> -				 strerror(TEST_ERRNO));
> -		}
> -
> -		/*
> -		 * clean up things in case we are looping
> -		 */
> -
> -		free(value);
> -		value = NULL;
> -	}
> -
> -	cleanup();
> -
> -	tst_exit();
> -}
> -
> -/*
> - * setup() - performs all the ONE TIME setup for this test.
> - */
> -void setup(void)
> -{
> -
> -	tst_sig(NOFORK, DEF_HANDLER, cleanup);
> -
> -	TEST_PAUSE;
> -}
> -
> -/*
> - * cleanup() - performs all the ONE TIME cleanup for this test at completion
> - * 	       or premature exit.
> - */
> -void cleanup(void)
> -{
> -
> -}
> 

Regards,
Avinesh



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

  reply	other threads:[~2022-09-15 10:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-20 10:44 [LTP] [PATCH] getitimer03.c: convert to new LTP API Avinesh Kumar
2022-07-21  4:04 ` Li Wang
2022-09-14 20:52   ` Petr Vorel
2022-09-15  7:49     ` [LTP] [PATCH v2] " Li Wang
2022-09-15 10:00       ` Avinesh Kumar [this message]
2022-09-16  2:12         ` Li Wang
2022-10-09  3:33           ` Li Wang
2022-10-10  6:30             ` Petr Vorel

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=12066736.O9o76ZdvQC@localhost \
    --to=akumar@suse.de \
    --cc=liwang@redhat.com \
    --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.