[LTP] [PATCH 1/1] getrlimit03: Simplify TCONF code

Petr Vorel pvorel@suse.cz
Fri Jul 18 11:05:23 CEST 2025


ENOSYS checks added in fac783b5d6 and d071de02e8 are verbose, use
tst_syscall() to handle ENOSYS.

Also check for __NR_getrlimit caused TCONF message being printed more
times (RLIM_NLIMITS => 16 on x86_64), which is also fixed by using
tst_syscall().

Because it should be safe to not use specific errno variables remove
errno_l and errno_ul.

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Hi all,

@Tiezhu can you please test this patch?
@Li Hope I did not overlook anything.

Kind regards,
Petr

 .../kernel/syscalls/getrlimit/getrlimit03.c   | 23 ++++---------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/testcases/kernel/syscalls/getrlimit/getrlimit03.c b/testcases/kernel/syscalls/getrlimit/getrlimit03.c
index 846ef3ced6..a2dd0ca79c 100644
--- a/testcases/kernel/syscalls/getrlimit/getrlimit03.c
+++ b/testcases/kernel/syscalls/getrlimit/getrlimit03.c
@@ -77,7 +77,7 @@ struct rlimit_ulong {
 
 static int getrlimit_ulong(int resource, struct rlimit_ulong *rlim)
 {
-	return syscall(__NR_getrlimit_ulong, resource, rlim);
+	return tst_syscall(__NR_getrlimit_ulong, resource, rlim);
 }
 
 const long RLIM_INFINITY_L = LONG_MAX;
@@ -90,7 +90,7 @@ struct rlimit_long {
 
 static int getrlimit_long(int resource, struct rlimit_long *rlim)
 {
-	return syscall(__NR_getrlimit, resource, rlim);
+	return tst_syscall(__NR_getrlimit, resource, rlim);
 }
 #endif
 
@@ -147,12 +147,10 @@ static void run(unsigned int resource)
 
 	struct rlimit_ulong rlim_ul;
 	int ret_ul;
-	int errno_ul;
 
 #ifdef SIGNED_GETRLIMIT
 	struct rlimit_long rlim_l;
 	int ret_l;
-	int errno_l;
 #endif
 
 	errno = 0;
@@ -161,15 +159,8 @@ static void run(unsigned int resource)
 
 	errno = 0;
 	ret_ul = getrlimit_ulong(resource, &rlim_ul);
-	errno_ul = errno;
-	if (errno_ul == ENOSYS) {
-		tst_res(TCONF | TERRNO,
-			"%s not implemented", __NR_getrlimit_ulong_str);
-		test.tcnt = 1;
-		return;
-	}
 
-	if (compare_retval(resource, ret_u64, errno_u64, ret_ul, errno_ul,
+	if (compare_retval(resource, ret_u64, errno_u64, ret_ul, errno,
 			   __NR_getrlimit_ulong_str) ||
 	    compare_u64_ulong(resource, rlim_u64.rlim_cur, rlim_ul.rlim_cur,
 			      "rlim_cur") ||
@@ -183,14 +174,8 @@ static void run(unsigned int resource)
 #ifdef SIGNED_GETRLIMIT
 	errno = 0;
 	ret_l = getrlimit_long(resource, &rlim_l);
-	errno_l = errno;
-	if (errno_l == ENOSYS) {
-		tst_res(TCONF | TERRNO,
-			"__NR_getrlimit(%d) not implemented", __NR_getrlimit);
-		return;
-	}
 
-	if (compare_retval(resource, ret_u64, errno_u64, ret_l, errno_l,
+	if (compare_retval(resource, ret_u64, errno_u64, ret_l, errno,
 			   "__NR_getrlimit") ||
 	    compare_u64_long(resource, rlim_u64.rlim_cur, rlim_l.rlim_cur,
 			     "rlim_cur") ||
-- 
2.50.0



More information about the ltp mailing list