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