[LTP] [PATCH 2/4] syscalls/fanotify09: Verify if no events are expected

Amir Goldstein amir73il@gmail.com
Mon Jun 20 15:27:35 CEST 2022


Some test cases expect no events for non-first groups and some expect
one event on non-dir child for non-first groups, but it is not verified
that non-first groups get the desired amount of events, so add this
information to the test case definition.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
 .../kernel/syscalls/fanotify/fanotify09.c     | 25 +++++++++----------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/testcases/kernel/syscalls/fanotify/fanotify09.c b/testcases/kernel/syscalls/fanotify/fanotify09.c
index 60ffcb81b..a8d56c10b 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify09.c
+++ b/testcases/kernel/syscalls/fanotify/fanotify09.c
@@ -76,6 +76,7 @@ static struct tcase {
 	unsigned int report_name;
 	const char *close_nowrite;
 	int nevents;
+	unsigned int nonfirst_event;
 } tcases[] = {
 	{
 		"Events on non-dir child with both parent and mount marks",
@@ -83,7 +84,7 @@ static struct tcase {
 		0,
 		0,
 		DIR_NAME,
-		1,
+		1, 0,
 	},
 	{
 		"Events on non-dir child and subdir with both parent and mount marks",
@@ -91,7 +92,7 @@ static struct tcase {
 		FAN_ONDIR,
 		0,
 		DIR_NAME,
-		2,
+		2, 0,
 	},
 	{
 		"Events on non-dir child and parent with both parent and mount marks",
@@ -99,7 +100,7 @@ static struct tcase {
 		FAN_ONDIR,
 		0,
 		".",
-		2,
+		2, 0
 	},
 	{
 		"Events on non-dir child and subdir with both parent and subdir marks",
@@ -107,7 +108,7 @@ static struct tcase {
 		FAN_ONDIR,
 		0,
 		DIR_NAME,
-		2,
+		2, 0,
 	},
 	{
 		"Events on non-dir children with both parent and mount marks",
@@ -115,7 +116,7 @@ static struct tcase {
 		0,
 		0,
 		FILE2_NAME,
-		2,
+		2, FAN_CLOSE_NOWRITE,
 	},
 	{
 		"Events on non-dir child with both parent and mount marks and filename info",
@@ -123,7 +124,7 @@ static struct tcase {
 		0,
 		FAN_REPORT_DFID_NAME,
 		FILE2_NAME,
-		2,
+		2, FAN_CLOSE_NOWRITE,
 	},
 };
 
@@ -315,13 +316,8 @@ static void test_fanotify(unsigned int n)
 	for (i = 1; i < NUM_GROUPS; i++) {
 		ret = read(fd_notify[i], event_buf, EVENT_BUF_LEN);
 		if (ret > 0) {
-			uint32_t expect = 0;
-
-			if (tc->nevents > 1 && !tc->ondir)
-				expect = FAN_CLOSE_NOWRITE;
-
 			event = (struct fanotify_event_metadata *)event_buf;
-			verify_event(i, event, expect, "");
+			verify_event(i, event, tc->nonfirst_event, "");
 			event = FAN_EVENT_NEXT(event, ret);
 
 			close_event_fds(event, ret);
@@ -338,7 +334,10 @@ static void test_fanotify(unsigned int n)
 				"reading fanotify events failed");
 		}
 
-		tst_res(TPASS, "group %d got no event", i);
+		if (tc->nonfirst_event)
+			tst_res(TFAIL, "group %d expected and got no event", i);
+		else
+			tst_res(TPASS, "group %d got no event as expected", i);
 	}
 	cleanup_fanotify_groups();
 }
-- 
2.25.1



More information about the ltp mailing list