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
Suzuki
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