[LTP] [PATCH] open04: add EMFILE check

Li Wang liwang@redhat.com
Thu Sep 15 05:10:20 CEST 2022


[pre-release testing fix]

Test in automation easily get EMFILE error before reaching the fds_limit,
but hard to reproduce it again manually. The possible reason is that some
shared fd being opened in the parent shell and occupying the fd numbers
which inherited by test then results in open failed with EMFILE early.

This patch adds back of the EMFILE check in the open() loops, to flexible
test fd limitation.

  open04.c:36: TBROK: open(open04.1020,66,0777) failed: EMFILE (24)
  open04.c:53: TWARN: close(0) failed: EBADF (9)

Signed-off-by: Li Wang <liwang@redhat.com>
---
 testcases/kernel/syscalls/open/open04.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/testcases/kernel/syscalls/open/open04.c b/testcases/kernel/syscalls/open/open04.c
index d452405d4..01a8b12d6 100644
--- a/testcases/kernel/syscalls/open/open04.c
+++ b/testcases/kernel/syscalls/open/open04.c
@@ -33,7 +33,12 @@ static void setup(void)
 
 	for (i = first + 1; i < fds_limit; i++) {
 		sprintf(fname, FNAME ".%d", i);
-		fd = SAFE_OPEN(fname, O_RDWR | O_CREAT, 0777);
+		fd = open(fname, O_RDWR | O_CREAT, 0777);
+		if (fd == -1) {
+			if (errno != EMFILE)
+				tst_brk(TBROK, "Expected EMFILE but got %d", errno);
+			break;
+		}
 		fds[i - first] = fd;
 	}
 }
-- 
2.35.3



More information about the ltp mailing list