[LTP] [PATCH] sched_getattr02: refactor with new LTP API

Petr Vorel pvorel@suse.cz
Mon Dec 16 23:04:54 CET 2024


Hi Ma Xinjian,

There was missing static:

$ make check-sched_getattr02
CHECK testcases/kernel/syscalls/sched_getattr/sched_getattr02.c
sched_getattr02.c:28:19: warning: Symbol 'attr_copy' has no prototype or library ('tst_') prefix. Should it be static?

> +static void verify_sched_getattr(unsigned int n)
>  {
> -	TEST(sched_getattr(*(test->pid), test->a, test->size,
> -			test->flags));
> +	struct test_case *tc = tcase + n;
> +
> +	TEST(sched_getattr(*(tc->pid), tc->a, tc->size, tc->flags));

> -	if (TEST_RETURN != -1) {
> -		tst_resm(TFAIL, "sched_getattr() succeeded unexpectedly.");
> +	if (TST_RET != -1) {
> +		tst_res(TFAIL, "sched_getattr() succeeded unexpectedly.");
>  		return;
>  	}

> -	if (TEST_ERRNO == test->exp_errno) {
> -		tst_resm(TPASS | TTERRNO,
> -			"sched_getattr() failed expectedly");
> +	if (TST_ERR == tc->exp_errno) {
> +		tst_res(TPASS | TTERRNO, "sched_getattr() failed expectedly");
>  		return;
>  	}

> -	tst_resm(TFAIL | TTERRNO, "sched_getattr() failed unexpectedly "
> +	tst_res(TFAIL | TTERRNO, "sched_getattr() failed unexpectedly "
>  		": expected: %d - %s",
> -		test->exp_errno, tst_strerrno(test->exp_errno));
> +		tc->exp_errno, tst_strerrno(tc->exp_errno));
>  }

We have TST_EXP_FAIL() for it. Merged with following diff.
Thanks!

Kind regards,
Petr

+++ testcases/kernel/syscalls/sched_getattr/sched_getattr02.c
@@ -7,7 +7,7 @@
 /*\
  * [Description]
  *
- * Verify that, sched_getattr(2) returns -1 and sets errno to
+ * Verify that, sched_getattr(2) returns -1 and sets errno to:
  *
  * 1. ESRCH if pid is unused.
  * 2. EINVAL if address is NULL.
@@ -18,18 +18,16 @@
 #define _GNU_SOURCE
 
 #include <errno.h>
-#include <string.h>
-
 #include "tst_test.h"
 #include "lapi/sched.h"
 
 static pid_t pid;
 static pid_t unused_pid;
-struct sched_attr attr_copy;
+static struct sched_attr attr_copy;
 
 static struct test_case {
 	pid_t *pid;
-	struct sched_attr *a;
+	struct sched_attr *attr;
 	unsigned int size;
 	unsigned int flags;
 	int exp_errno;
@@ -42,23 +40,11 @@ static struct test_case {
 
 static void verify_sched_getattr(unsigned int n)
 {
-	struct test_case *tc = tcase + n;
-
-	TEST(sched_getattr(*(tc->pid), tc->a, tc->size, tc->flags));
-
-	if (TST_RET != -1) {
-		tst_res(TFAIL, "sched_getattr() succeeded unexpectedly.");
-		return;
-	}
-
-	if (TST_ERR == tc->exp_errno) {
-		tst_res(TPASS | TTERRNO, "sched_getattr() failed expectedly");
-		return;
-	}
+	struct test_case *tc = &tcase[n];
 
-	tst_res(TFAIL | TTERRNO, "sched_getattr() failed unexpectedly "
-		": expected: %d - %s",
-		tc->exp_errno, tst_strerrno(tc->exp_errno));
+	TST_EXP_FAIL(sched_getattr(*(tc->pid), tc->attr, tc->size, tc->flags),
+				 tc->exp_errno, "sched_getattr(%d, ..., %d, %d)", *tc->pid,
+				 tc->size, tc->flags);
 }
 
 static void setup(void)


More information about the ltp mailing list