[CRIU] [PATCH] test: zdtm -- Fix fanotify00 test

Cyrill Gorcunov gorcunov at openvz.org
Sat Apr 6 09:45:30 EDT 2013


@mnt_id do change on remount so exclude it from
compare.

Reported-by: Andrew Vagin <avagin at parallels.com>
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 test/zdtm/live/static/fanotify00.c | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/test/zdtm/live/static/fanotify00.c b/test/zdtm/live/static/fanotify00.c
index 376287f..42c8af5 100644
--- a/test/zdtm/live/static/fanotify00.c
+++ b/test/zdtm/live/static/fanotify00.c
@@ -109,6 +109,30 @@ static void copy_fhandle(char *tok, struct fanotify_mark_inode *inode)
 	inode->fhandle[off] = '\0';
 }
 
+static int cmp_fanotify_obj(struct fanotify_obj *old, struct fanotify_obj *new)
+{
+	if ((old->glob.faflags != new->glob.faflags)			||
+	    (old->glob.evflags != new->glob.evflags)			||
+	    (old->inode.i_ino != new->inode.i_ino)			||
+	    (old->inode.s_dev != new->inode.s_dev)			||
+	    (old->inode.mflags != new->inode.mflags)			||
+	    (old->inode.mask != new->inode.mask)			||
+	    (old->inode.ignored_mask != new->inode.ignored_mask))
+		return -1;
+
+	if (memcmp(old->inode.fhandle, new->inode.fhandle,
+		   sizeof(new->inode.fhandle)))
+		return -2;
+
+	/* mnt_id may change, exclude it */
+	if ((old->mount.mflags != new->mount.mflags)			||
+	    (old->mount.mask != new->mount.mask)			||
+	    (old->mount.ignored_mask != new->mount.ignored_mask))
+		return -3;
+
+	return 0;
+}
+
 int parse_fanotify_fdinfo(int fd, struct fanotify_obj *obj, unsigned int expected_to_meet)
 {
 	unsigned int met = 0;
@@ -246,7 +270,7 @@ int main (int argc, char *argv[])
 
 	show_fanotify_obj(&new);
 
-	if (memcmp(&old, &new, sizeof(old))) {
+	if (cmp_fanotify_obj(&old, &new)) {
 		fail("fanotify mismatch on fdinfo level\n");
 		exit(1);
 	}
-- 
1.8.1.4



More information about the CRIU mailing list