On Wed, 2009-09-09 at 10:48 +0530, Suzuki Poulose wrote: 
> Li Zefan wrote:
> > Suzuki Poulose wrote:
> >> Hi,
> >>
> >> There is a testcase issue in the event_generator code. The gen_fork() is
> >> called to generate the fork event.
> >>
> >> The child process prints the following message:
> >>
> >> static inline void gen_fork(void)
> >> {
> >>         pid_t pid;
> >>         int status;
> >>
> >>         pid = fork();
> >>         if (pid == 0) {
> >>                 printf("fork parent: %d, child: %d\n", getppid(),
> >> getpid());
> >>                 exit(0);
> >>         } else if (pid < 0) {
> >>                 fprintf(stderr, "fork() failed\n");
> >>                 exit(1);
> >>         }
> >> }
> >>
> >> Now the parent process just exits after this call. So, if the child
> >> doesn't get to run before parent exits, the child will see the ppid as
> >> 1, that of INIT and this contradicts the actual data. Hence the test fails.
> >>
> >> Attached patch fixes the issue. I have verified the same. Please apply.
> >>
> > 
> > Thanks for fixing it.
> > 
> > Acked-by: Li Zefan <[email protected]>
> > 
> > But you forgot to add your Signed-off-by in the patch. ;)
> > 
> Ah! Thanks for catching that ! Re-attaching it ;)
> 
> Thanks
> 
> Suzuki
> plain text document attachment
> (connectors-gen_fork-wait-for-child.diff)
> gen_fork() event should wait until the child exits. Otherwise the child would 
> see INIT as the parent and
> end up in collecting wrong information to compare with.
> 
> 
> Signed-off-by: Suzuki K P <[email protected]>

Thanks.

Regards--
Subrata

> Acked-by: Li Zefan <[email protected]>
> 
> Index: ltp/testcases/kernel/connectors/pec/event_generator.c
> ===================================================================
> --- ltp.orig/testcases/kernel/connectors/pec/event_generator.c        
> 2008-10-22 13:40:31.000000000 +0000
> +++ ltp/testcases/kernel/connectors/pec/event_generator.c     2009-09-08 
> 13:52:14.000000000 +0000
> @@ -25,6 +25,9 @@
>  #include <stdlib.h>
>  #include <stdio.h>
>  #include <pwd.h>
> +#include <sys/types.h>
> +#include <sys/wait.h>
> +
>  #include "test.h"
> 
>  #define DEFAULT_EVENT_NUM       1
> @@ -94,6 +97,7 @@
>  static inline void gen_fork(void)
>  {
>       pid_t pid;
> +     int status;
> 
>       pid = fork();
>       if (pid == 0) {
> @@ -102,6 +106,8 @@
>       } else if (pid < 0) {
>               fprintf(stderr, "fork() failed\n");
>               exit(1);
> +     } else {  /* Parent should wait for the child */
> +             wait(&status);
>       }
>  }
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
> trial. Simplify your report design, integration and deployment - and focus on 
> what you do best, core application coding. Discover what's new with 
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________ Ltp-list mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/ltp-list


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to