Extend inotify01 and inotify02 tests to verify cookie value returned by
the kernel is sane (0 for all except rename events and matches for the
two rename events). There has been a kernel bug caused by commit
7053aee26a35 which would be caught by these tests.

Signed-off-by: Jan Kara <[email protected]>
---
 testcases/kernel/syscalls/inotify/inotify01.c |   16 +-
 testcases/kernel/syscalls/inotify/inotify02.c |   39 +-
 utils/ffsb-6.0-rc2/config.h.in                |   49 +-
 utils/ffsb-6.0-rc2/configure                  | 5908 ++++++++++++-------------
 4 files changed, 2829 insertions(+), 3183 deletions(-)

diff --git a/testcases/kernel/syscalls/inotify/inotify01.c 
b/testcases/kernel/syscalls/inotify/inotify01.c
index aa82d596f313..835ca84fa936 100644
--- a/testcases/kernel/syscalls/inotify/inotify01.c
+++ b/testcases/kernel/syscalls/inotify/inotify01.c
@@ -160,10 +160,18 @@ int main(int ac, char **av)
                                         event->wd, event->mask,
                                         event->cookie, event->len);
                        } else if (event_set[test_num] == event->mask) {
-                               tst_resm(TPASS, "get event: wd=%d mask=%x"
-                                        " cookie=%u len=%u",
-                                        event->wd, event->mask,
-                                        event->cookie, event->len);
+                               if (event->cookie != 0) {
+                                       tst_resm(TFAIL,
+                                                "get event: wd=%d mask=%x "
+                                                "cookie=%u (expected 0) 
len=%u",
+                                                event->wd, event->mask,
+                                                event->cookie, event->len);
+                               } else {
+                                       tst_resm(TPASS, "get event: wd=%d "
+                                                "mask=%x cookie=%u len=%u",
+                                                event->wd, event->mask,
+                                                event->cookie, event->len);
+                               }
 
                        } else {
                                tst_resm(TFAIL, "get event: wd=%d mask=%x "
diff --git a/testcases/kernel/syscalls/inotify/inotify02.c 
b/testcases/kernel/syscalls/inotify/inotify02.c
index 5d4cbe06ca98..dd375c5e9e8a 100644
--- a/testcases/kernel/syscalls/inotify/inotify02.c
+++ b/testcases/kernel/syscalls/inotify/inotify02.c
@@ -83,6 +83,7 @@ int main(int ac, char **av)
 {
        int lc;
        char *msg;
+       unsigned int stored_cookie = UINT_MAX;
 
        if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
                tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -224,12 +225,38 @@ int main(int ac, char **av)
                                   (!strncmp
                                    (event_set[test_num].name, event->name,
                                     event->len))) {
-                               tst_resm(TPASS,
-                                        "get event: wd=%d mask=%x"
-                                        " cookie=%u len=%u name=\"%s\"",
-                                        event->wd, event->mask, event->cookie,
-                                        event->len, event->name);
-
+                               int fail = 0;
+
+                               if (event->mask == IN_MOVED_FROM) {
+                                       if (event->cookie == 0)
+                                               fail = 1;
+                                       else
+                                               stored_cookie = event->cookie;
+                               } else if (event->mask == IN_MOVED_TO) {
+                                       if (event->cookie != stored_cookie)
+                                               fail = 1;
+                                       else
+                                               stored_cookie = UINT_MAX;
+                               } else {
+                                       if (event->cookie != 0)
+                                               fail = 1;
+                               }
+                               if (!fail) {
+                                       tst_resm(TPASS,
+                                                "get event: wd=%d mask=%x "
+                                                "cookie=%u len=%u name=\"%s\"",
+                                                event->wd, event->mask,
+                                                event->cookie, event->len,
+                                                event->name);
+                               } else {
+                                       tst_resm(TFAIL,
+                                                "get event: wd=%d mask=%x "
+                                                "cookie=%u (wrong) len=%u "
+                                                "name=\"%s\"",
+                                                event->wd, event->mask,
+                                                event->cookie, event->len,
+                                                event->name);
+                               }
                        } else {
                                tst_resm(TFAIL, "get event: wd=%d mask=%x "
                                         "(expected %x) cookie=%u len=%u "
-- 
1.8.1.4


------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to