diff mbox series

syscalls/nice01: Add test nice(-1) and nice(-50)

Message ID 20221116034910.37030-1-zhaogongyi@huawei.com
State Changes Requested
Headers show
Series syscalls/nice01: Add test nice(-1) and nice(-50) | expand

Commit Message

Zhao Gongyi Nov. 16, 2022, 3:49 a.m. UTC
1. Add test verify that the errno is zero when callling of nice
legitimately return -1.(nice(-1), the default nice is usally 0)
2. Add test verify that user of root can decrease the nice value of
the process successfully by passing a lower increment
value (< min. applicable limits) to nice() system call.(nice(-50))

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
---
 testcases/kernel/syscalls/nice/nice01.c | 27 ++++++++++++++-----------
 1 file changed, 15 insertions(+), 12 deletions(-)

--
2.17.1

Comments

Richard Palethorpe Nov. 28, 2022, 2:26 p.m. UTC | #1
Hello,

Zhao Gongyi via ltp <ltp@lists.linux.it> writes:

> 1. Add test verify that the errno is zero when callling of nice
> legitimately return -1.(nice(-1), the default nice is usally 0)
> 2. Add test verify that user of root can decrease the nice value of
> the process successfully by passing a lower increment
> value (< min. applicable limits) to nice() system call.(nice(-50))
>
> Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
> ---
>  testcases/kernel/syscalls/nice/nice01.c | 27 ++++++++++++++-----------
>  1 file changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/nice/nice01.c b/testcases/kernel/syscalls/nice/nice01.c
> index 876246180..bc022a265 100644
> --- a/testcases/kernel/syscalls/nice/nice01.c
> +++ b/testcases/kernel/syscalls/nice/nice01.c
> @@ -17,29 +17,31 @@
>  #include <sys/resource.h>
>  #include "tst_test.h"
>
> -#define	NICEINC		-12
> -#define MIN_PRIO	-20
> +#define MIN_PRIO        -20
>
> -static void verify_nice(void)
> +static int nice_inc[] = {-1, -12, -50};
> +
> +static void verify_nice(unsigned int i)
>  {
>  	int new_nice;
>  	int orig_nice;
>  	int exp_nice;
> +	int inc = nice_inc[i];
>
>  	orig_nice = SAFE_GETPRIORITY(PRIO_PROCESS, 0);
>
> -	TEST(nice(NICEINC));
> +	TEST(nice(inc));
>
> -	exp_nice = MAX(MIN_PRIO, (orig_nice + NICEINC));
> +	exp_nice = MAX(MIN_PRIO, (orig_nice + inc));
>
>  	if (TST_RET != exp_nice) {
>  		tst_res(TFAIL | TTERRNO, "nice(%d) returned %li, expected %i",
> -			NICEINC, TST_RET, exp_nice);
> +				inc, TST_RET, exp_nice);
>  		return;
>  	}
>
>  	if (TST_ERR) {
> -		tst_res(TFAIL | TTERRNO, "nice(%d) failed", NICEINC);
> +		tst_res(TFAIL | TTERRNO, "nice(%d) failed", inc);
>  		return;
>  	}
>
> @@ -47,18 +49,19 @@ static void verify_nice(void)
>
>  	if (new_nice != exp_nice) {
>  		tst_res(TFAIL, "Process priority %i, expected %i",
> -				new_nice, orig_nice + NICEINC);
> +				new_nice, exp_nice);
>  		return;
>  	}
>
> -	tst_res(TPASS, "nice(%d) passed", NICEINC);
> +	tst_res(TPASS, "nice(%d) passed", inc);
>
> -	TEST(nice(-NICEINC));
> +	TEST(setpriority(PRIO_PROCESS, 0, orig_nice));

This is the nice test not the setpriority test (which also has a SAFE_ variant).

>  	if (TST_ERR)
> -		tst_brk(TBROK | TTERRNO, "nice(%d) failed", -NICEINC);
> +		tst_brk(TBROK | TTERRNO, "setpriority(%d) failed", orig_nice);
>  }
>
>  static struct tst_test test = {
> -	.test_all = verify_nice,
>  	.needs_root = 1,
> +	.test = verify_nice,
> +	.tcnt = ARRAY_SIZE(nice_inc),
>  };
> --
> 2.17.1
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/nice/nice01.c b/testcases/kernel/syscalls/nice/nice01.c
index 876246180..bc022a265 100644
--- a/testcases/kernel/syscalls/nice/nice01.c
+++ b/testcases/kernel/syscalls/nice/nice01.c
@@ -17,29 +17,31 @@ 
 #include <sys/resource.h>
 #include "tst_test.h"

-#define	NICEINC		-12
-#define MIN_PRIO	-20
+#define MIN_PRIO        -20

-static void verify_nice(void)
+static int nice_inc[] = {-1, -12, -50};
+
+static void verify_nice(unsigned int i)
 {
 	int new_nice;
 	int orig_nice;
 	int exp_nice;
+	int inc = nice_inc[i];

 	orig_nice = SAFE_GETPRIORITY(PRIO_PROCESS, 0);

-	TEST(nice(NICEINC));
+	TEST(nice(inc));

-	exp_nice = MAX(MIN_PRIO, (orig_nice + NICEINC));
+	exp_nice = MAX(MIN_PRIO, (orig_nice + inc));

 	if (TST_RET != exp_nice) {
 		tst_res(TFAIL | TTERRNO, "nice(%d) returned %li, expected %i",
-			NICEINC, TST_RET, exp_nice);
+				inc, TST_RET, exp_nice);
 		return;
 	}

 	if (TST_ERR) {
-		tst_res(TFAIL | TTERRNO, "nice(%d) failed", NICEINC);
+		tst_res(TFAIL | TTERRNO, "nice(%d) failed", inc);
 		return;
 	}

@@ -47,18 +49,19 @@  static void verify_nice(void)

 	if (new_nice != exp_nice) {
 		tst_res(TFAIL, "Process priority %i, expected %i",
-				new_nice, orig_nice + NICEINC);
+				new_nice, exp_nice);
 		return;
 	}

-	tst_res(TPASS, "nice(%d) passed", NICEINC);
+	tst_res(TPASS, "nice(%d) passed", inc);

-	TEST(nice(-NICEINC));
+	TEST(setpriority(PRIO_PROCESS, 0, orig_nice));
 	if (TST_ERR)
-		tst_brk(TBROK | TTERRNO, "nice(%d) failed", -NICEINC);
+		tst_brk(TBROK | TTERRNO, "setpriority(%d) failed", orig_nice);
 }

 static struct tst_test test = {
-	.test_all = verify_nice,
 	.needs_root = 1,
+	.test = verify_nice,
+	.tcnt = ARRAY_SIZE(nice_inc),
 };