From: Chandru <ch...@in...> - 2009-10-01 08:10:54
|
The ppoll01 testcase has a signal handler in it but this signal handler is not registered with the kernel through the signal() syscall. The testcase fails when it sends a SIGINT to itself as part of one of the case of the test run. The following patch 1. Adds a signal() syscall to register the signal handler 2. Corrects the expected 'revents' for the case where ppoll() is called on a file which is only opened in read/write mode, i.e case00. Signed-off-by: Chandru S <ch...@li...> --- testcases/kernel/syscalls/ppoll/ppoll01.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) --- testcases/kernel/syscalls/ppoll/ppoll01.c.orig 2009-09-29 21:28:55.510487735 +0530 +++ testcases/kernel/syscalls/ppoll/ppoll01.c 2009-10-01 18:27:30.452236128 +0530 @@ -79,6 +79,8 @@ char *TCID = "ppoll01"; /* Test program int testno; int TST_TOTAL = 1; /* total number of tests in this file. */ +void sighandler(int sig); /* signals handler function for the test */ + /* Extern Global Functions */ /******************************************************************************/ /* */ @@ -125,7 +127,8 @@ extern void cleanup() { /* */ /******************************************************************************/ void setup() { - /* Capture signals if any */ + /* Capture signals */ + signal(SIGINT, &sighandler); /* Create temporary directories */ TEST_PAUSE; tst_tmpdir(); @@ -191,7 +194,7 @@ struct test_case { static struct test_case tcase[] = { { // case00 .ttype = NORMAL, - .expect_revents = POLLOUT, + .expect_revents = POLLOUT | POLLIN, .ret = 0, .err = 0, }, |