diff mbox series

getitimer01.c: convert to new LTP API

Message ID 20220720071743.28371-1-akumar@suse.de
State New
Headers show
Series getitimer01.c: convert to new LTP API | expand

Commit Message

Avinesh Kumar July 20, 2022, 7:17 a.m. UTC
Signed-off-by: Avinesh Kumar <akumar@suse.de>
---
 .../kernel/syscalls/getitimer/getitimer01.c   | 90 ++++---------------
 1 file changed, 17 insertions(+), 73 deletions(-)

Comments

Li Wang July 21, 2022, 7:07 a.m. UTC | #1
Hi Avinesh,

Avinesh Kumar <akumar@suse.de> wrote:


> +       for (i = 0; i < 3; i++) {
> +               TST_EXP_PASS(getitimer(itimer_name[i], &value));
> +               TST_EXP_EQ_LI(value.it_value.tv_sec, 0);
> +               TST_EXP_EQ_LI(value.it_value.tv_usec, 0);
>

This is just to verify getittimer() works well when there is none
of a specific interval timer being set.

Maybe we can add some more tests to check if it fully implements
the documented behavior? Or, at least confirming it gets expected
signals for different types of timers-specified is also necessary.

  ITIMER_REAL:         At each expiration, a SIGALRM signal is generated.
  ITIMER_VIRTUAL :  At each expiration, a SIGVTALRM signal is generated.
  ITIMER_PROF:        At each expiration, a SIGPROF signal is generated.

see: https://man7.org/linux/man-pages/man2/setitimer.2.html
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/getitimer/getitimer01.c b/testcases/kernel/syscalls/getitimer/getitimer01.c
index 9f6fc5e8f..e914f4c20 100644
--- a/testcases/kernel/syscalls/getitimer/getitimer01.c
+++ b/testcases/kernel/syscalls/getitimer/getitimer01.c
@@ -1,39 +1,17 @@ 
+// SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * 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
+ *	03/2001 - Written by Wayne Boyer
+ * Copyright (c) 2022 SUSE LLC Avinesh Kumar <avinesh.kumar@suse.com>
  */
 
-/*
-  HISTORY
-    03/2001 - Written by Wayne Boyer
-
-  TEST ITEMS:
-    Check that a correct call to getitimer() succeeds.
-*/
-
-#include "test.h"
-
-#include <errno.h>
-#include <sys/time.h>
-
-static void cleanup(void);
-static void setup(void);
+/*\
+ * [Description]
+ *
+ * Check that a correct call to getitimer() succeeds.
+ */
 
-char *TCID = "getitimer01";
-int TST_TOTAL = 3;
+#include "tst_test.h"
 
 static int itimer_name[] = {
 	ITIMER_REAL,
@@ -41,52 +19,18 @@  static int itimer_name[] = {
 	ITIMER_PROF,
 };
 
-int main(int ac, char **av)
+static void run(void)
 {
-	int lc;
 	int i;
 	struct itimerval value;
 
-	tst_parse_opts(ac, av, NULL, NULL);
-
-	setup();
-
-	for (lc = 0; TEST_LOOPING(lc); lc++) {
-		tst_count = 0;
-
-		for (i = 0; i < 3; i++) {
-
-			TEST(getitimer(itimer_name[i], &value));
-
-			if (TEST_RETURN != 0)
-				tst_resm(TFAIL, "call failed - errno = %d - %s",
-					 TEST_ERRNO, strerror(TEST_ERRNO));
-
-			/*
-			 * Since ITIMER is effectively disabled (we did
-			 * not set it before the getitimer call), the
-			 * elements in it_value should be zero.
-			 */
-			if ((value.it_value.tv_sec == 0) &&
-				(value.it_value.tv_usec == 0)) {
-				tst_resm(TPASS, "functionality is ok");
-			} else {
-				tst_resm(TFAIL, "timer are non zero");
-			}
-		}
+	for (i = 0; i < 3; i++) {
+		TST_EXP_PASS(getitimer(itimer_name[i], &value));
+		TST_EXP_EQ_LI(value.it_value.tv_sec, 0);
+		TST_EXP_EQ_LI(value.it_value.tv_usec, 0);
 	}
-
-	cleanup();
-	tst_exit();
-}
-
-static void setup(void)
-{
-	tst_sig(NOFORK, DEF_HANDLER, cleanup);
-
-	TEST_PAUSE;
 }
 
-static void cleanup(void)
-{
-}
+static struct tst_test test = {
+	.test_all = run
+};