Hi,

I run inotify02 test on SH based arch running LTP-2009 release. I'd like to submit a change on the code of inotify02.c file. I propose to replace the following code:

while (i < len) {
           struct inotify_event *event;
           event = (struct inotify_event *) &event_buf[i];
           if (test_num >= TST_TOTAL){
                  ................................

with:

while ((i < len)&&(test_num < TST_TOTAL)) {
           struct inotify_event *event;
           event = (struct inotify_event *) &event_buf[i];
           if ((event_set[test_num].mask == event->mask) &&
               (! strncmp( event_set[test_num].name,
                           event->name, event->len))) {
...............................................

The detailed change is reported in the attached patch.

In that way, we avoid to run the code within the above while loop, if the total amount of the notified events has been reached.

Regards,
FR
This patch avoid to run the istructions within the while loop if no more events 
have been collected.
Signed-off-by: Francesco Rundo <[email protected]>
--- ltp-full-20090131/testcases/kernel/syscalls/inotify/inotify02.c.origin      
2009-03-02 09:16:53.110000000 +0100
+++ ltp-full-20090131/testcases/kernel/syscalls/inotify/inotify02.c     
2009-03-02 09:37:04.470002000 +0100
@@ -54,7 +54,7 @@
 #include "test.h"
 #include "usctest.h"
 
-#if defined(__NR_inotify_init) && defined(HAVE_SYS_INOTIFY)
+#if defined(__NR_inotify_init) && defined(HAVE_SYS_INOTIFY_H)
 #include <sys/inotify.h>
 
 #ifndef IN_MOVE_SELF
@@ -246,24 +246,17 @@
 
         }
 
-        while (i < len) {
+        while ((i < len)&&(test_num < TST_TOTAL)) {
             struct inotify_event *event;
             event = (struct inotify_event *) &event_buf[i];
-            if (test_num >= TST_TOTAL){
-                tst_resm(TFAIL, "get unnecessary event: "
-                    "wd=%d mask=%x cookie=%u len=%u"
-                    "name=\"%s\"",event->wd, event->mask,
-                    event->cookie, event->len, 
-                            event->name);
-
-            } else     if ((event_set[test_num].mask == event->mask) &&
-                    (! strncmp( event_set[test_num].name,
-                        event->name, event->len))) {
+            if ((event_set[test_num].mask == event->mask) &&
+                (! 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);
+                         " 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 "
@@ -375,7 +368,7 @@
     tst_resm(TCONF, "Inotify syscall can be found at kernel 2.6.13 or 
higher.");
     return 0;
 #endif
-#ifndef HAVE_SYS_INOTIFY
+#ifndef HAVE_SYS_INOTIFY_H
     tst_resm(TBROK, "can't find header sys/inotify.h");
     return 1;
 #endif
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to