From: Amir Goldstein <amir73il@gmail.com>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH 1/5] syscalls/fanotify01: check events also on mountpoint mark
Date: Fri, 16 Nov 2018 08:51:15 +0200 [thread overview]
Message-ID: <20181116065119.6912-2-amir73il@gmail.com> (raw)
In-Reply-To: <20181116065119.6912-1-amir73il@gmail.com>
Add index to test and repeat it for mark types inode and mountpoint.
Move fanotify_init() into the test to simplify setup/cleanup.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
.../kernel/syscalls/fanotify/fanotify01.c | 83 ++++++++++++-------
1 file changed, 51 insertions(+), 32 deletions(-)
diff --git a/testcases/kernel/syscalls/fanotify/fanotify01.c b/testcases/kernel/syscalls/fanotify/fanotify01.c
index e1210134b..5dfb67b61 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify01.c
+++ b/testcases/kernel/syscalls/fanotify/fanotify01.c
@@ -32,26 +32,46 @@
#define BUF_SIZE 256
#define TST_TOTAL 12
+static struct tcase {
+ const char *tname;
+ struct fanotify_mark_type mark;
+} tcases[] = {
+ {
+ "inode mark events",
+ INIT_FANOTIFY_MARK_TYPE(INODE),
+ },
+ {
+ "mount mark events",
+ INIT_FANOTIFY_MARK_TYPE(MOUNT),
+ },
+};
+
static char fname[BUF_SIZE];
static char buf[BUF_SIZE];
-static int fd, fd_notify;
+static int fd_notify;
static unsigned long long event_set[EVENT_MAX];
static char event_buf[EVENT_BUF_LEN];
-void test01(void)
+static void test_fanotify(unsigned int n)
{
- int ret, len, i = 0, test_num = 0;
-
+ struct tcase *tc = &tcases[n];
+ struct fanotify_mark_type *mark = &tc->mark;
+ int fd, ret, len, i = 0, test_num = 0;
int tst_count = 0;
- if (fanotify_mark(fd_notify, FAN_MARK_ADD, FAN_ACCESS | FAN_MODIFY |
- FAN_CLOSE | FAN_OPEN, AT_FDCWD, fname) < 0) {
+ tst_res(TINFO, "Test #%d: %s", n, tc->tname);
+
+ fd_notify = SAFE_FANOTIFY_INIT(FAN_CLASS_NOTIF, O_RDONLY);
+
+ if (fanotify_mark(fd_notify, FAN_MARK_ADD | mark->flag,
+ FAN_ACCESS | FAN_MODIFY | FAN_CLOSE | FAN_OPEN,
+ AT_FDCWD, fname) < 0) {
tst_brk(TBROK | TERRNO,
- "fanotify_mark (%d, FAN_MARK_ADD, FAN_ACCESS | "
+ "fanotify_mark (%d, FAN_MARK_ADD, FAN_ACCESS | %s | "
"FAN_MODIFY | FAN_CLOSE | FAN_OPEN, AT_FDCWD, %s) "
- "failed", fd_notify, fname);
+ "failed", fd_notify, mark->name, fname);
}
/*
@@ -101,12 +121,12 @@ void test01(void)
/* Ignore access events */
if (fanotify_mark(fd_notify,
- FAN_MARK_ADD | FAN_MARK_IGNORED_MASK,
+ FAN_MARK_ADD | mark->flag | FAN_MARK_IGNORED_MASK,
FAN_ACCESS, AT_FDCWD, fname) < 0) {
tst_brk(TBROK | TERRNO,
- "fanotify_mark (%d, FAN_MARK_ADD | "
- "FAN_MARK_IGNORED_MASK, FAN_ACCESS, "
- "AT_FDCWD, %s) failed", fd_notify, fname);
+ "fanotify_mark (%d, FAN_MARK_ADD | %s | "
+ "FAN_MARK_IGNORED_MASK, FAN_ACCESS, AT_FDCWD, %s) "
+ "failed", fd_notify, mark->name, fname);
}
fd = SAFE_OPEN(fname, O_RDWR);
@@ -150,15 +170,14 @@ void test01(void)
* Now ignore open & close events regardless of file
* modifications
*/
- if (fanotify_mark(fd_notify,
- FAN_MARK_ADD | FAN_MARK_IGNORED_MASK | FAN_MARK_IGNORED_SURV_MODIFY,
- FAN_OPEN | FAN_CLOSE, AT_FDCWD, fname) < 0) {
+ if (fanotify_mark(fd_notify, FAN_MARK_ADD | mark->flag |
+ FAN_MARK_IGNORED_MASK | FAN_MARK_IGNORED_SURV_MODIFY,
+ FAN_OPEN | FAN_CLOSE, AT_FDCWD, fname) < 0) {
tst_brk(TBROK | TERRNO,
- "fanotify_mark (%d, FAN_MARK_ADD | "
- "FAN_MARK_IGNORED_MASK | "
- "FAN_MARK_IGNORED_SURV_MODIFY, FAN_OPEN | "
- "FAN_CLOSE, AT_FDCWD, %s) failed", fd_notify,
- fname);
+ "fanotify_mark (%d, FAN_MARK_ADD | %s | "
+ "FAN_MARK_IGNORED_MASK | FAN_MARK_IGNORED_SURV_MODIFY, "
+ "FAN_OPEN | FAN_CLOSE, AT_FDCWD, %s) failed",
+ fd_notify, mark->name, fname);
}
/* This event should be ignored */
@@ -181,13 +200,13 @@ void test01(void)
/* Now remove open and close from ignored mask */
if (fanotify_mark(fd_notify,
- FAN_MARK_REMOVE | FAN_MARK_IGNORED_MASK,
+ FAN_MARK_REMOVE | mark->flag | FAN_MARK_IGNORED_MASK,
FAN_OPEN | FAN_CLOSE, AT_FDCWD, fname) < 0) {
tst_brk(TBROK | TERRNO,
- "fanotify_mark (%d, FAN_MARK_REMOVE | "
- "FAN_MARK_IGNORED_MASK, FAN_OPEN | "
- "FAN_CLOSE, AT_FDCWD, %s) failed", fd_notify,
- fname);
+ "fanotify_mark (%d, FAN_MARK_REMOVE | %s | "
+ "FAN_MARK_IGNORED_MASK, FAN_OPEN | FAN_CLOSE, "
+ "AT_FDCWD, %s) failed", fd_notify,
+ mark->name, fname);
}
SAFE_CLOSE(fd);
@@ -283,12 +302,13 @@ pass:
}
/* Remove mark to clear FAN_MARK_IGNORED_SURV_MODIFY */
- if (fanotify_mark(fd_notify, FAN_MARK_REMOVE, FAN_ACCESS | FAN_MODIFY |
- FAN_CLOSE | FAN_OPEN, AT_FDCWD, fname) < 0) {
+ if (fanotify_mark(fd_notify, FAN_MARK_REMOVE | mark->flag,
+ FAN_ACCESS | FAN_MODIFY | FAN_CLOSE | FAN_OPEN,
+ AT_FDCWD, fname) < 0) {
tst_brk(TBROK | TERRNO,
- "fanotify_mark (%d, FAN_MARK_REMOVE, FAN_ACCESS | "
+ "fanotify_mark (%d, FAN_MARK_REMOVE | %s, FAN_ACCESS | "
"FAN_MODIFY | FAN_CLOSE | FAN_OPEN, AT_FDCWD, %s) "
- "failed", fd_notify, fname);
+ "failed", fd_notify, mark->name, fname);
}
}
@@ -296,8 +316,6 @@ static void setup(void)
{
sprintf(fname, "tfile_%d", getpid());
SAFE_FILE_PRINTF(fname, "1");
-
- fd_notify = SAFE_FANOTIFY_INIT(FAN_CLASS_NOTIF, O_RDONLY);
}
static void cleanup(void)
@@ -307,7 +325,8 @@ static void cleanup(void)
}
static struct tst_test test = {
- .test_all = test01,
+ .test = test_fanotify,
+ .tcnt = ARRAY_SIZE(tcases),
.setup = setup,
.cleanup = cleanup,
.needs_tmpdir = 1,
--
2.17.1
next prev parent reply other threads:[~2018-11-16 6:51 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-16 6:51 [LTP] [PATCH 0/5] fanotify filesystem mark tests Amir Goldstein
2018-11-16 6:51 ` Amir Goldstein [this message]
2018-11-21 12:01 ` [LTP] [PATCH 1/5] syscalls/fanotify01: check events also on mountpoint mark Cyril Hrubis
2018-11-21 16:18 ` Amir Goldstein
2018-11-22 16:06 ` Cyril Hrubis
2018-11-22 16:57 ` Amir Goldstein
2018-11-16 6:51 ` [LTP] [PATCH 2/5] syscalls/fanotify03: check permission " Amir Goldstein
2018-11-21 12:26 ` Cyril Hrubis
2018-11-16 6:51 ` [LTP] [PATCH 3/5] syscalls/fanotify01: add test for FAN_MARK_FILESYSTEM events Amir Goldstein
2018-11-21 13:00 ` Cyril Hrubis
2018-11-16 6:51 ` [LTP] [PATCH 4/5] syscalls/fanotify03: add test for FAN_MARK_FILESYSTEM permission events Amir Goldstein
2018-11-21 13:14 ` Cyril Hrubis
2018-11-21 16:36 ` Amir Goldstein
2018-11-21 17:10 ` Amir Goldstein
2018-11-22 16:03 ` Cyril Hrubis
2018-11-16 6:51 ` [LTP] [PATCH 5/5] syscalls/fanotify10: add tests for FAN_MARK_FILESYSTEM and ignore mask Amir Goldstein
2018-11-21 13:27 ` Cyril Hrubis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181116065119.6912-2-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.