public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [FIX PATCHE] rt_sigaction
@ 2009-07-03 15:46 naresh kamboju
  2009-07-06 15:50 ` Subrata Modak
  0 siblings, 1 reply; 10+ messages in thread
From: naresh kamboju @ 2009-07-03 15:46 UTC (permalink / raw)
  To: ltp-list; +Cc: Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

[-- Attachment #1: Type: text/plain, Size: 22148 bytes --]

Hi,

I have divided rt_sigaction01.c test case in to three test cases

1. rt_sigaction01.c (Functionality)
2. rt_sigaction02.c (EFAULT)
3. rt_sigaction03.c (EINVAL)

In these test cases rt_sigaction use signal number from SIGRTMIN (34)
to  SIGRTMAX (64).The Real Time (RT) signals will start from 34 to 64
as per signal.h because sigaction is testing from 1 to 30 signals I
hope.

If you want to test 1 to 64 signals by rt_sigaction signal number 9
and 19 i.e SIGKILL and SIGTERM will FAIL, because as per
Specifications we should not use SIGKILL and SIGTERM signals with
rt_sigaction/sigaction.

long sys_rt_sigaction (int sig, const struct sigaction *act, struct
sigaction *oact, size_t sigsetsize)

SIGSETSIZE is different for different architectures that is taken care
 for ARM, PowerPC, X86 and MIPS in this patch.

Subrata,

Coding style is not as LTP, I did not get much time to fix this.
If you are using any indent for LTP, please share I will use those
script to fix coding style.

If any body is interested to fix coding style issue please welcome... :-)


I have attached fix patch and below.
Please review the same.

Best regards
Naresh Kamboju

/*******************************************************/
Test Start Time: Fri Jul  3 07:52:04 2009
-----------------------------------------
Testcase                       Result     Exit Value
--------                       ------     ----------
rt_sigaction01                 PASS       0
rt_sigaction02                 PASS       0
rt_sigaction03                 PASS       0

-----------------------------------------------
Total Tests: 3
Total Failures: 0
Kernel Version: 2.6.23.17-alp_nl-pc-g56b4520c-dirty
Machine Architecture: i686
Hostname: 43.88.101.228
************************************************************/

Signed-off-by: Naresh Kamboju < naresh.kernel@gmail.com >

diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-05-21
23:50:58.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-07-03
19:38:41.000000000 +0530
@@ -55,6 +55,15 @@
 #include "usctest.h"
 #include "linux_syscall_numbers.h"

+#if defined __mips__
+#define SIGSETSIZE 16
+#endif
+
+#if defined __arm__ || __i386__ || __powerpc__
+#define SIGSETSIZE 8
+#endif
+
+
 /* Extern Global Variables */
 extern int Tst_count;           /* counter for tst_xxx routines.         */
 extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
@@ -117,58 +126,35 @@
 }

 int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
+char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};

 void
 handler(int sig)
 {
-        tst_resm(TINFO,"Here is signal handler. Got signal: %d, do
nothing here\n", sig);
+        tst_resm(TINFO,"Signal Handler Called with signal number %d\n",sig);
         return;
 }

 int
-set_handler(int sig, int sig_to_mask, int flag, int mask_flags)
+set_handler(int sig, int sig_to_mask, int mask_flags)
 {
         struct sigaction sa, oldaction;
-        int err = 0;

-        if (flag == 0) {
-                tst_resm(TINFO,"flag0 - ");
-                sa.sa_sigaction = (void *)handler;
-                sa.sa_flags = mask_flags;
-                TEST(sigemptyset(&sa.sa_mask));
-                TEST(sigaddset(&sa.sa_mask, sig_to_mask));
-                TEST(err = syscall(__NR_rt_sigaction,sig, &sa, NULL,8));
-        } else if (flag == 1) {
-                tst_resm(TINFO,"flag1 - ");
-                TEST(err = syscall(__NR_rt_sigaction,sig, (void *)-1, NULL,8));
-        } else if (flag == 2) {
-               	tst_resm(TINFO,"flag2 - ");
-                TEST(err = syscall(__NR_rt_sigaction,sig, NULL, (void *)-1,8));
-	} else if (flag == 3) {
-                tst_resm(TINFO,"flag3 - ");
                 sa.sa_sigaction = (void *)handler;
                 sa.sa_flags = mask_flags;
-                TEST(sigemptyset(&sa.sa_mask));
-                TEST(sigaddset(&sa.sa_mask, sig_to_mask));
-                TEST(err = syscall(__NR_rt_sigaction,sig, &sa, &oldaction, 8));
-                if (TEST_RETURN == 0) {
-                        return 0;
-                } else {
-                        return TEST_ERRNO;
-                }
-        } else if (flag == 4){
-                        TEST(err = syscall(__NR_rt_sigaction,sig,
&sa, NULL,9));
-        }
+                sigemptyset(&sa.sa_mask);
+                sigaddset(&sa.sa_mask, sig_to_mask);
+                TEST(syscall(__NR_rt_sigaction,sig, &sa,
&oldaction,SIGSETSIZE));
         if (TEST_RETURN == 0) {
                 return 0;
         } else {
-                return TEST_ERRNO;
+                        return TEST_RETURN;
         }
 }


 int main(int ac, char **av) {
-	int retnval, i, j;
+	int signal, flag;
         int lc;                 /* loop counter */
         char *msg;              /* message returned from parse_opts */
 	
@@ -185,24 +171,26 @@
                 Tst_count = 0;
                 for (testno = 0; testno < TST_TOTAL; ++testno) {

-			for (i = 0; i <= (SIGRTMAX + 1); i++){//signal for 0 to 65
-	    			tst_resm(TINFO,"Signal : %d",i);
-			                for (j = 0; j < 4; j++){
-			                       	 TEST(retnval = set_handler(i, 0, j,
test_flags[j]));
+			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
for 34 to 65
+			 	for(flag=0; flag<5;flag++) {
+	                        	 TEST(set_handler(signal, 0, test_flags[flag]));
 						 if (TEST_RETURN == 0) {
-        						tst_resm(TPASS, "rt_sigaction call succeeded: result =
%d",TEST_RETURN);
+        					tst_resm(TINFO,"signal: %d ", signal);
+        					tst_resm(TPASS, "rt_sigaction call succeeded: result =
%d ",TEST_RETURN );
+        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+						kill(getpid(),signal);
 			                         } else {
                  	   				tst_resm(TFAIL, "%s failed - errno = %d :
%s", TCID, TEST_ERRNO, strerror(TEST_ERRNO));
-							cleanup();
-							tst_exit();
                        				}
                 			}
+		 	printf("\n");	
         		}



                 }
         }	
+	cleanup();
         tst_exit();
 }

diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	1970-01-01
05:30:00.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	2009-07-03
19:24:26.000000000 +0530
@@ -0,0 +1,183 @@
+/******************************************************************************/
+/* Copyright (c) Crackerjack Project., 2007
        */
+/*
        */
+/* This program is free software;  you can redistribute it and/or
modify      */
+/* it under the terms of the GNU General Public License as published
by       */
+/* the Free Software Foundation; either version 2 of the License, or
        */
+/* (at your option) any later version.
        */
+/*
        */
+/* This program is distributed in the hope that it will be useful,
        */
+/* but WITHOUT ANY WARRANTY;  without even the implied warranty of
        */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
        */
+/* the GNU General Public License for more details.
        */
+/*
        */
+/* You should have received a copy of the GNU General Public License
        */
+/* along with this program;  if not, write to the Free Software
        */
+/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA    */
+/*
        */
+/******************************************************************************/
+/******************************************************************************/
+/*
        */
+/* File:        rt_sigaction02.c
        */
+/*
        */
+/* Description: This tests the rt_sigaction() syscall
        */
+/*		rt_sigaction Expected EFAULT error check                      */
+/*
        */
+/* Usage:  <for command-line>
        */
+/* rt_sigaction02 [-c n] [-e][-i n] [-I x] [-p x] [-t]
        */
+/*      where,  -c n : Run n copies concurrently.
        */
+/*              -e   : Turn on errno logging.
        */
+/*              -i n : Execute test n times.
        */
+/*              -I x : Execute test for x seconds.
        */
+/*              -P x : Pause for x seconds between iterations.
        */
+/*              -t   : Turn on syscall timing.
        */
+/*
        */
+/* Total Tests: 1
        */
+/*
        */
+/* Test Name:   rt_sigaction02                                             */
+/* History:     Porting from Crackerjack to LTP is done by
        */
+/*              Manas Kumar Nayak maknayak@in.ibm.com>
        */
+/******************************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+#include <errno.h>
+#include <sys/syscall.h>
+#include <string.h>
+
+/* Harness Specific Include Files. */
+#include "test.h"
+#include "usctest.h"
+#include "linux_syscall_numbers.h"
+
+#if defined __mips__
+#define SIGSETSIZE 16
+#endif
+
+#if defined __arm__ || __i386__ || __powerpc__
+#define SIGSETSIZE 8
+#endif
+
+#define INVAL_STRUCT -1
+
+/* Extern Global Variables */
+extern int Tst_count;           /* counter for tst_xxx routines.         */
+extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
+
+/* Global Variables */
+char *TCID = "rt_sigaction02";  /* Test program identifier.*/
+int  testno;
+int  TST_TOTAL = 1;                   /* total number of tests in
this file.   */
+
+/* Extern Global Functions */
+/******************************************************************************/
+/*
        */
+/* Function:    cleanup
        */
+/*
        */
+/* Description: Performs all one time clean up for this test on
successful    */
+/*              completion,  premature exit or  failure. Closes all
temporary */
+/*              files, removes all temporary directories exits the
test with  */
+/*              appropriate return code by calling tst_exit()
function.       */
+/*
        */
+/* Input:       None.
        */
+/*
        */
+/* Output:      None.
        */
+/*
        */
+/* Return:      On failure - Exits calling tst_exit(). Non '0' return
code.   */
+/*              On success - Exits calling tst_exit(). With '0'
return code.  */
+/*
        */
+/******************************************************************************/
+extern void cleanup() {
+        /* Remove tmp dir and all files in it */
+        TEST_CLEANUP;
+        tst_rmdir();
+
+        /* Exit with appropriate return code. */
+        tst_exit();
+}
+
+/* Local  Functions */
+/******************************************************************************/
+/*
        */
+/* Function:    setup
        */
+/*
        */
+/* Description: Performs all one time setup for this test. This
function is   */
+/*              typically used to capture signals, create temporary
dirs      */
+/*              and temporary files that may be used in the course of
this    */
+/*              test.
        */
+/*
        */
+/* Input:       None.
        */
+/*
        */
+/* Output:      None.
        */
+/*
        */
+/* Return:      On failure - Exits by calling cleanup().
        */
+/*              On success - returns 0.
        */
+/*
        */
+/******************************************************************************/
+void setup() {
+        /* Capture signals if any */
+        /* Create temporary directories */
+        TEST_PAUSE;
+        tst_tmpdir();
+}
+
+int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
+char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
+
+struct test_case_t {
+        int exp_errno;
+        char *errdesc;
+} test_cases[] = {
+	{ EFAULT, "EFAULT" }
+};
+
+
+int main(int ac, char **av) {
+	int signal, flag;
+        int lc;                 /* loop counter */
+        char *msg;              /* message returned from parse_opts */
+	
+        /* parse standard options */
+        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) !=
(char *)NULL){
+             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
+             tst_exit();
+           }
+
+        setup();
+
+        /* Check looping state if -i option given */
+        for (lc = 0; TEST_LOOPING(lc); ++lc) {
+                Tst_count = 0;
+                for (testno = 0; testno < TST_TOTAL; ++testno) {
+
+			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
for 34 to 65
+			 	for(flag=0; flag<5;flag++) {
+
+				/*   							        *
+				 * long sys_rt_sigaction (int sig, const struct sigaction *act, *
+				 * truct sigaction *oact, size_t sigsetsize);			*
+				 * EFAULT:							*
+		        	 * An invalid act or oact value was specified 			*
+				 */
+
+					 TEST(syscall(__NR_rt_sigaction,signal, INVAL_STRUCT, NULL,SIGSETSIZE));
+					if((TEST_RETURN == -1) && (TEST_ERRNO == test_cases[0].exp_errno)) {
+        						tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+                 	   				tst_resm(TPASS, "%s failure with sig: %d as
expected errno  = %s : %s", TCID, signal,test_cases[0].errdesc,
strerror(TEST_ERRNO));
+			                         } else {
+        					tst_resm(TFAIL, "rt_sigaction call succeeded: result =
%d got error %d:but expected  %d", TEST_RETURN, TEST_ERRNO,
test_cases[0].exp_errno);
+        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+						}
+                			}
+		 	printf("\n");	
+        		}
+
+
+
+                }
+        }	
+	cleanup();
+        tst_exit();
+}
+
diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c	1970-01-01
05:30:00.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c	2009-07-03
19:24:12.000000000 +0530
@@ -0,0 +1,200 @@
+/******************************************************************************/
+/* Copyright (c) Crackerjack Project., 2007
        */
+/*
        */
+/* This program is free software;  you can redistribute it and/or
modify      */
+/* it under the terms of the GNU General Public License as published
by       */
+/* the Free Software Foundation; either version 2 of the License, or
        */
+/* (at your option) any later version.
        */
+/*
        */
+/* This program is distributed in the hope that it will be useful,
        */
+/* but WITHOUT ANY WARRANTY;  without even the implied warranty of
        */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
        */
+/* the GNU General Public License for more details.
        */
+/*
        */
+/* You should have received a copy of the GNU General Public License
        */
+/* along with this program;  if not, write to the Free Software
        */
+/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA    */
+/*
        */
+/******************************************************************************/
+/******************************************************************************/
+/*
        */
+/* File:        rt_sigaction03.c
        */
+/*
        */
+/* Description: This tests the rt_sigaction() syscall
        */
+/*		rt_sigaction Expected EINVAL error check                      */
+/*
        */
+/* Usage:  <for command-line>
        */
+/* rt_sigaction03 [-c n] [-e][-i n] [-I x] [-p x] [-t]
        */
+/*      where,  -c n : Run n copies concurrently.
        */
+/*              -e   : Turn on errno logging.
        */
+/*              -i n : Execute test n times.
        */
+/*              -I x : Execute test for x seconds.
        */
+/*              -P x : Pause for x seconds between iterations.
        */
+/*              -t   : Turn on syscall timing.
        */
+/*
        */
+/* Total Tests: 1
        */
+/*
        */
+/* Test Name:   rt_sigaction03                                             */
+/* History:     Porting from Crackerjack to LTP is done by
        */
+/*              Manas Kumar Nayak maknayak@in.ibm.com>
        */
+/******************************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+#include <errno.h>
+#include <sys/syscall.h>
+#include <string.h>
+
+/* Harness Specific Include Files. */
+#include "test.h"
+#include "usctest.h"
+#include "linux_syscall_numbers.h"
+
+#define INVAL_SIGSETSIZE -1
+
+/* Extern Global Variables */
+extern int Tst_count;           /* counter for tst_xxx routines.         */
+extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
+
+/* Global Variables */
+char *TCID = "rt_sigaction03";  /* Test program identifier.*/
+int  testno;
+int  TST_TOTAL = 1;                   /* total number of tests in
this file.   */
+
+/* Extern Global Functions */
+/******************************************************************************/
+/*
        */
+/* Function:    cleanup
        */
+/*
        */
+/* Description: Performs all one time clean up for this test on
successful    */
+/*              completion,  premature exit or  failure. Closes all
temporary */
+/*              files, removes all temporary directories exits the
test with  */
+/*              appropriate return code by calling tst_exit()
function.       */
+/*
        */
+/* Input:       None.
        */
+/*
        */
+/* Output:      None.
        */
+/*
        */
+/* Return:      On failure - Exits calling tst_exit(). Non '0' return
code.   */
+/*              On success - Exits calling tst_exit(). With '0'
return code.  */
+/*
        */
+/******************************************************************************/
+extern void cleanup() {
+        /* Remove tmp dir and all files in it */
+        TEST_CLEANUP;
+        tst_rmdir();
+
+        /* Exit with appropriate return code. */
+        tst_exit();
+}
+
+/* Local  Functions */
+/******************************************************************************/
+/*
        */
+/* Function:    setup
        */
+/*
        */
+/* Description: Performs all one time setup for this test. This
function is   */
+/*              typically used to capture signals, create temporary
dirs      */
+/*              and temporary files that may be used in the course of
this    */
+/*              test.
        */
+/*
        */
+/* Input:       None.
        */
+/*
        */
+/* Output:      None.
        */
+/*
        */
+/* Return:      On failure - Exits by calling cleanup().
        */
+/*              On success - returns 0.
        */
+/*
        */
+/******************************************************************************/
+void setup() {
+        /* Capture signals if any */
+        /* Create temporary directories */
+        TEST_PAUSE;
+        tst_tmpdir();
+}
+
+int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
+char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
+
+
+struct test_case_t {
+        int exp_errno;
+        char *errdesc;
+} test_cases[] = {
+	{ EINVAL, "EINVAL" }
+};
+
+void
+handler(int sig)
+{
+        tst_resm(TINFO,"Signal Handler Called with signal number %d\n",sig);
+        return;
+}
+
+int
+set_handler(int sig, int sig_to_mask, int mask_flags)
+{
+        struct sigaction sa, oldaction;
+
+                sa.sa_sigaction = (void *)handler;
+                sa.sa_flags = mask_flags;
+                sigemptyset(&sa.sa_mask);
+                sigaddset(&sa.sa_mask, sig_to_mask);
+
+		/*   							        *
+		 * long sys_rt_sigaction (int sig, const struct sigaction *act, *
+		 * truct sigaction *oact, size_t sigsetsize);			*
+		 * EINVAL:							*
+        	 * sigsetsize was not equivalent to the size of a sigset_t type *
+		 */
+
+                TEST(syscall(__NR_rt_sigaction,sig, &sa ,
&oldaction,INVAL_SIGSETSIZE));
+                if (TEST_RETURN == 0) {
+                        return 0;
+                } else {
+                        return TEST_RETURN;
+                }
+}
+
+
+int main(int ac, char **av) {
+	int signal, flag;
+        int lc;                 /* loop counter */
+        char *msg;              /* message returned from parse_opts */
+	
+        /* parse standard options */
+        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) !=
(char *)NULL){
+             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
+             tst_exit();
+           }
+
+        setup();
+
+        /* Check looping state if -i option given */
+        for (lc = 0; TEST_LOOPING(lc); ++lc) {
+                Tst_count = 0;
+                for (testno = 0; testno < TST_TOTAL; ++testno) {
+
+			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
for 34 to 65
+			 	for(flag=0; flag<5;flag++) {
+	                        	 TEST(set_handler(signal, 0, test_flags[flag]));
+					if((TEST_RETURN == -1) && (TEST_ERRNO == test_cases[0].exp_errno)) {
+        						tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+                 	   				tst_resm(TPASS, "%s failure with sig: %d as
expected errno  = %s : %s", TCID, signal,test_cases[0].errdesc,
strerror(TEST_ERRNO));
+			                         } else {
+        					tst_resm(TFAIL, "rt_sigaction call succeeded: result =
%d got error %d:but expected  %d", TEST_RETURN, TEST_ERRNO,
test_cases[0].exp_errno);
+        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+						}
+                			}
+		 	printf("\n");	
+        		}
+
+
+
+                }
+        }	
+	cleanup();
+        tst_exit();
+}
+

[-- Attachment #2: ltp-rt_sigaction.patch --]
[-- Type: application/octet-stream, Size: 24739 bytes --]

diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-05-21 23:50:58.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-07-03 19:38:41.000000000 +0530
@@ -55,6 +55,15 @@
 #include "usctest.h"
 #include "linux_syscall_numbers.h"
 
+#if defined __mips__
+#define SIGSETSIZE 16
+#endif
+
+#if defined __arm__ || __i386__ || __powerpc__
+#define SIGSETSIZE 8
+#endif
+
+
 /* Extern Global Variables */
 extern int Tst_count;           /* counter for tst_xxx routines.         */
 extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
@@ -117,58 +126,35 @@
 }
 
 int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND, SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
+char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND", "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
 
 void
 handler(int sig)
 {
-        tst_resm(TINFO,"Here is signal handler. Got signal: %d, do nothing here\n", sig);
+        tst_resm(TINFO,"Signal Handler Called with signal number %d\n",sig);
         return;
 }
 
 int
-set_handler(int sig, int sig_to_mask, int flag, int mask_flags)
+set_handler(int sig, int sig_to_mask, int mask_flags)
 {
         struct sigaction sa, oldaction;
-        int err = 0;
 
-        if (flag == 0) {
-                tst_resm(TINFO,"flag0 - ");
-                sa.sa_sigaction = (void *)handler;
-                sa.sa_flags = mask_flags;
-                TEST(sigemptyset(&sa.sa_mask));
-                TEST(sigaddset(&sa.sa_mask, sig_to_mask));
-                TEST(err = syscall(__NR_rt_sigaction,sig, &sa, NULL,8));
-        } else if (flag == 1) {
-                tst_resm(TINFO,"flag1 - ");
-                TEST(err = syscall(__NR_rt_sigaction,sig, (void *)-1, NULL,8));
-        } else if (flag == 2) {
-               	tst_resm(TINFO,"flag2 - ");
-                TEST(err = syscall(__NR_rt_sigaction,sig, NULL, (void *)-1,8));
-	} else if (flag == 3) {
-                tst_resm(TINFO,"flag3 - ");
                 sa.sa_sigaction = (void *)handler;
                 sa.sa_flags = mask_flags;
-                TEST(sigemptyset(&sa.sa_mask));
-                TEST(sigaddset(&sa.sa_mask, sig_to_mask));
-                TEST(err = syscall(__NR_rt_sigaction,sig, &sa, &oldaction, 8));
-                if (TEST_RETURN == 0) {
-                        return 0;
-                } else {
-                        return TEST_ERRNO;
-                }
-        } else if (flag == 4){
-                        TEST(err = syscall(__NR_rt_sigaction,sig, &sa, NULL,9));
-        }
+                sigemptyset(&sa.sa_mask);
+                sigaddset(&sa.sa_mask, sig_to_mask);
+                TEST(syscall(__NR_rt_sigaction,sig, &sa, &oldaction,SIGSETSIZE));
         if (TEST_RETURN == 0) {
                 return 0;
         } else {
-                return TEST_ERRNO;
+                        return TEST_RETURN;
         }
 }
 
 
 int main(int ac, char **av) {
-	int retnval, i, j;
+	int signal, flag;
         int lc;                 /* loop counter */
         char *msg;              /* message returned from parse_opts */
 	
@@ -185,24 +171,26 @@
                 Tst_count = 0;
                 for (testno = 0; testno < TST_TOTAL; ++testno) {
                 
-			for (i = 0; i <= (SIGRTMAX + 1); i++){//signal for 0 to 65 
-	    			tst_resm(TINFO,"Signal : %d",i);
-			                for (j = 0; j < 4; j++){
-			                       	 TEST(retnval = set_handler(i, 0, j, test_flags[j]));
+			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal for 34 to 65 
+			 	for(flag=0; flag<5;flag++) {
+	                        	 TEST(set_handler(signal, 0, test_flags[flag]));
 						 if (TEST_RETURN == 0) {
-        						tst_resm(TPASS, "rt_sigaction call succeeded: result = %d",TEST_RETURN);
+        					tst_resm(TINFO,"signal: %d ", signal);
+        					tst_resm(TPASS, "rt_sigaction call succeeded: result = %d ",TEST_RETURN );
+        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+						kill(getpid(),signal);
 			                         } else {
                  	   				tst_resm(TFAIL, "%s failed - errno = %d : %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO));
-							cleanup();
-							tst_exit();
                        				}
                 			}
+		 	printf("\n");	
         		}
 
 
 
                 }
         }	
+	cleanup();
         tst_exit();
 }
 
diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	1970-01-01 05:30:00.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	2009-07-03 19:24:26.000000000 +0530
@@ -0,0 +1,183 @@
+/******************************************************************************/
+/* Copyright (c) Crackerjack Project., 2007                                   */
+/*                                                                            */
+/* This program is free software;  you can redistribute it and/or modify      */
+/* it under the terms of the GNU General Public License as published by       */
+/* the Free Software Foundation; either version 2 of the License, or          */
+/* (at your option) any later version.                                        */
+/*                                                                            */
+/* This program is distributed in the hope that it will be useful,            */
+/* but WITHOUT ANY WARRANTY;  without even the implied warranty of            */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                  */
+/* the GNU General Public License for more details.                           */
+/*                                                                            */
+/* You should have received a copy of the GNU General Public License          */
+/* along with this program;  if not, write to the Free Software               */
+/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    */
+/*                                                                            */
+/******************************************************************************/
+/******************************************************************************/
+/*                                                                            */
+/* File:        rt_sigaction02.c                                              */
+/*                                                                            */
+/* Description: This tests the rt_sigaction() syscall                         */
+/*		rt_sigaction Expected EFAULT error check                      */
+/*                                                                            */
+/* Usage:  <for command-line>                                                 */
+/* rt_sigaction02 [-c n] [-e][-i n] [-I x] [-p x] [-t]                        */
+/*      where,  -c n : Run n copies concurrently.                             */
+/*              -e   : Turn on errno logging.                                 */
+/*              -i n : Execute test n times.                                  */
+/*              -I x : Execute test for x seconds.                            */
+/*              -P x : Pause for x seconds between iterations.                */
+/*              -t   : Turn on syscall timing.                                */
+/*                                                                            */
+/* Total Tests: 1                                                             */
+/*                                                                            */
+/* Test Name:   rt_sigaction02                                             */
+/* History:     Porting from Crackerjack to LTP is done by                    */
+/*              Manas Kumar Nayak maknayak@in.ibm.com>                        */
+/******************************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+#include <errno.h>
+#include <sys/syscall.h>
+#include <string.h>
+
+/* Harness Specific Include Files. */
+#include "test.h"
+#include "usctest.h"
+#include "linux_syscall_numbers.h"
+
+#if defined __mips__
+#define SIGSETSIZE 16
+#endif
+
+#if defined __arm__ || __i386__ || __powerpc__
+#define SIGSETSIZE 8
+#endif
+
+#define INVAL_STRUCT -1
+
+/* Extern Global Variables */
+extern int Tst_count;           /* counter for tst_xxx routines.         */
+extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
+
+/* Global Variables */
+char *TCID = "rt_sigaction02";  /* Test program identifier.*/
+int  testno;
+int  TST_TOTAL = 1;                   /* total number of tests in this file.   */
+
+/* Extern Global Functions */
+/******************************************************************************/
+/*                                                                            */
+/* Function:    cleanup                                                       */
+/*                                                                            */
+/* Description: Performs all one time clean up for this test on successful    */
+/*              completion,  premature exit or  failure. Closes all temporary */
+/*              files, removes all temporary directories exits the test with  */
+/*              appropriate return code by calling tst_exit() function.       */
+/*                                                                            */
+/* Input:       None.                                                         */
+/*                                                                            */
+/* Output:      None.                                                         */
+/*                                                                            */
+/* Return:      On failure - Exits calling tst_exit(). Non '0' return code.   */
+/*              On success - Exits calling tst_exit(). With '0' return code.  */
+/*                                                                            */
+/******************************************************************************/
+extern void cleanup() {
+        /* Remove tmp dir and all files in it */
+        TEST_CLEANUP;
+        tst_rmdir();
+
+        /* Exit with appropriate return code. */
+        tst_exit();
+}
+
+/* Local  Functions */
+/******************************************************************************/
+/*                                                                            */
+/* Function:    setup                                                         */
+/*                                                                            */
+/* Description: Performs all one time setup for this test. This function is   */
+/*              typically used to capture signals, create temporary dirs      */
+/*              and temporary files that may be used in the course of this    */
+/*              test.                                                         */
+/*                                                                            */
+/* Input:       None.                                                         */
+/*                                                                            */
+/* Output:      None.                                                         */
+/*                                                                            */
+/* Return:      On failure - Exits by calling cleanup().                      */
+/*              On success - returns 0.                                       */
+/*                                                                            */
+/******************************************************************************/
+void setup() {
+        /* Capture signals if any */
+        /* Create temporary directories */
+        TEST_PAUSE;
+        tst_tmpdir();
+}
+
+int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND, SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
+char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND", "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
+
+struct test_case_t {
+        int exp_errno;
+        char *errdesc;
+} test_cases[] = {
+	{ EFAULT, "EFAULT" }
+};
+
+
+int main(int ac, char **av) {
+	int signal, flag;
+        int lc;                 /* loop counter */
+        char *msg;              /* message returned from parse_opts */
+	
+        /* parse standard options */
+        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){
+             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
+             tst_exit();
+           }
+
+        setup();
+
+        /* Check looping state if -i option given */
+        for (lc = 0; TEST_LOOPING(lc); ++lc) {
+                Tst_count = 0;
+                for (testno = 0; testno < TST_TOTAL; ++testno) {
+                
+			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal for 34 to 65 
+			 	for(flag=0; flag<5;flag++) {
+
+				/*   							        *
+				 * long sys_rt_sigaction (int sig, const struct sigaction *act, *
+				 * truct sigaction *oact, size_t sigsetsize);			*
+				 * EFAULT:							*
+		        	 * An invalid act or oact value was specified 			*
+				 */
+
+					 TEST(syscall(__NR_rt_sigaction,signal, INVAL_STRUCT, NULL,SIGSETSIZE));
+					if((TEST_RETURN == -1) && (TEST_ERRNO == test_cases[0].exp_errno)) {
+        						tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+                 	   				tst_resm(TPASS, "%s failure with sig: %d as expected errno  = %s : %s", TCID, signal,test_cases[0].errdesc, strerror(TEST_ERRNO));
+			                         } else {
+        					tst_resm(TFAIL, "rt_sigaction call succeeded: result = %d got error %d:but expected  %d", TEST_RETURN, TEST_ERRNO, test_cases[0].exp_errno);
+        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+						}
+                			}
+		 	printf("\n");	
+        		}
+
+
+
+                }
+        }	
+	cleanup();
+        tst_exit();
+}
+
diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c	1970-01-01 05:30:00.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c	2009-07-03 19:24:12.000000000 +0530
@@ -0,0 +1,200 @@
+/******************************************************************************/
+/* Copyright (c) Crackerjack Project., 2007                                   */
+/*                                                                            */
+/* This program is free software;  you can redistribute it and/or modify      */
+/* it under the terms of the GNU General Public License as published by       */
+/* the Free Software Foundation; either version 2 of the License, or          */
+/* (at your option) any later version.                                        */
+/*                                                                            */
+/* This program is distributed in the hope that it will be useful,            */
+/* but WITHOUT ANY WARRANTY;  without even the implied warranty of            */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See                  */
+/* the GNU General Public License for more details.                           */
+/*                                                                            */
+/* You should have received a copy of the GNU General Public License          */
+/* along with this program;  if not, write to the Free Software               */
+/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    */
+/*                                                                            */
+/******************************************************************************/
+/******************************************************************************/
+/*                                                                            */
+/* File:        rt_sigaction03.c                                              */
+/*                                                                            */
+/* Description: This tests the rt_sigaction() syscall                         */
+/*		rt_sigaction Expected EINVAL error check                      */
+/*                                                                            */
+/* Usage:  <for command-line>                                                 */
+/* rt_sigaction03 [-c n] [-e][-i n] [-I x] [-p x] [-t]                        */
+/*      where,  -c n : Run n copies concurrently.                             */
+/*              -e   : Turn on errno logging.                                 */
+/*              -i n : Execute test n times.                                  */
+/*              -I x : Execute test for x seconds.                            */
+/*              -P x : Pause for x seconds between iterations.                */
+/*              -t   : Turn on syscall timing.                                */
+/*                                                                            */
+/* Total Tests: 1                                                             */
+/*                                                                            */
+/* Test Name:   rt_sigaction03                                             */
+/* History:     Porting from Crackerjack to LTP is done by                    */
+/*              Manas Kumar Nayak maknayak@in.ibm.com>                        */
+/******************************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+#include <errno.h>
+#include <sys/syscall.h>
+#include <string.h>
+
+/* Harness Specific Include Files. */
+#include "test.h"
+#include "usctest.h"
+#include "linux_syscall_numbers.h"
+
+#define INVAL_SIGSETSIZE -1
+
+/* Extern Global Variables */
+extern int Tst_count;           /* counter for tst_xxx routines.         */
+extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
+
+/* Global Variables */
+char *TCID = "rt_sigaction03";  /* Test program identifier.*/
+int  testno;
+int  TST_TOTAL = 1;                   /* total number of tests in this file.   */
+
+/* Extern Global Functions */
+/******************************************************************************/
+/*                                                                            */
+/* Function:    cleanup                                                       */
+/*                                                                            */
+/* Description: Performs all one time clean up for this test on successful    */
+/*              completion,  premature exit or  failure. Closes all temporary */
+/*              files, removes all temporary directories exits the test with  */
+/*              appropriate return code by calling tst_exit() function.       */
+/*                                                                            */
+/* Input:       None.                                                         */
+/*                                                                            */
+/* Output:      None.                                                         */
+/*                                                                            */
+/* Return:      On failure - Exits calling tst_exit(). Non '0' return code.   */
+/*              On success - Exits calling tst_exit(). With '0' return code.  */
+/*                                                                            */
+/******************************************************************************/
+extern void cleanup() {
+        /* Remove tmp dir and all files in it */
+        TEST_CLEANUP;
+        tst_rmdir();
+
+        /* Exit with appropriate return code. */
+        tst_exit();
+}
+
+/* Local  Functions */
+/******************************************************************************/
+/*                                                                            */
+/* Function:    setup                                                         */
+/*                                                                            */
+/* Description: Performs all one time setup for this test. This function is   */
+/*              typically used to capture signals, create temporary dirs      */
+/*              and temporary files that may be used in the course of this    */
+/*              test.                                                         */
+/*                                                                            */
+/* Input:       None.                                                         */
+/*                                                                            */
+/* Output:      None.                                                         */
+/*                                                                            */
+/* Return:      On failure - Exits by calling cleanup().                      */
+/*              On success - returns 0.                                       */
+/*                                                                            */
+/******************************************************************************/
+void setup() {
+        /* Capture signals if any */
+        /* Create temporary directories */
+        TEST_PAUSE;
+        tst_tmpdir();
+}
+
+int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND, SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
+char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND", "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
+
+
+struct test_case_t {
+        int exp_errno;
+        char *errdesc;
+} test_cases[] = {
+	{ EINVAL, "EINVAL" }
+};
+
+void
+handler(int sig)
+{
+        tst_resm(TINFO,"Signal Handler Called with signal number %d\n",sig);
+        return;
+}
+
+int
+set_handler(int sig, int sig_to_mask, int mask_flags)
+{
+        struct sigaction sa, oldaction;
+
+                sa.sa_sigaction = (void *)handler;
+                sa.sa_flags = mask_flags;
+                sigemptyset(&sa.sa_mask);
+                sigaddset(&sa.sa_mask, sig_to_mask);
+
+		/*   							        *
+		 * long sys_rt_sigaction (int sig, const struct sigaction *act, *
+		 * truct sigaction *oact, size_t sigsetsize);			* 
+		 * EINVAL:							*
+        	 * sigsetsize was not equivalent to the size of a sigset_t type *
+		 */
+
+                TEST(syscall(__NR_rt_sigaction,sig, &sa , &oldaction,INVAL_SIGSETSIZE));
+                if (TEST_RETURN == 0) {
+                        return 0;
+                } else {
+                        return TEST_RETURN;
+                }
+}
+
+
+int main(int ac, char **av) {
+	int signal, flag;
+        int lc;                 /* loop counter */
+        char *msg;              /* message returned from parse_opts */
+	
+        /* parse standard options */
+        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL){
+             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
+             tst_exit();
+           }
+
+        setup();
+
+        /* Check looping state if -i option given */
+        for (lc = 0; TEST_LOOPING(lc); ++lc) {
+                Tst_count = 0;
+                for (testno = 0; testno < TST_TOTAL; ++testno) {
+                
+			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal for 34 to 65 
+			 	for(flag=0; flag<5;flag++) {
+	                        	 TEST(set_handler(signal, 0, test_flags[flag]));
+					if((TEST_RETURN == -1) && (TEST_ERRNO == test_cases[0].exp_errno)) {
+        						tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+                 	   				tst_resm(TPASS, "%s failure with sig: %d as expected errno  = %s : %s", TCID, signal,test_cases[0].errdesc, strerror(TEST_ERRNO));
+			                         } else {
+        					tst_resm(TFAIL, "rt_sigaction call succeeded: result = %d got error %d:but expected  %d", TEST_RETURN, TEST_ERRNO, test_cases[0].exp_errno);
+        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
+						}
+                			}
+		 	printf("\n");	
+        		}
+
+
+
+                }
+        }	
+	cleanup();
+        tst_exit();
+}
+

[-- Attachment #3: Type: text/plain, Size: 79 bytes --]

------------------------------------------------------------------------------

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]

_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-03 15:46 [LTP] [FIX PATCHE] rt_sigaction naresh kamboju
@ 2009-07-06 15:50 ` Subrata Modak
  2009-07-07 11:52   ` naresh kamboju
  0 siblings, 1 reply; 10+ messages in thread
From: Subrata Modak @ 2009-07-06 15:50 UTC (permalink / raw)
  To: naresh kamboju
  Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

On Fri, 2009-07-03 at 21:16 +0530, naresh kamboju wrote: 
> Hi,
> 
> I have divided rt_sigaction01.c test case in to three test cases
> 
> 1. rt_sigaction01.c (Functionality)
> 2. rt_sigaction02.c (EFAULT)
> 3. rt_sigaction03.c (EINVAL)
> 
> In these test cases rt_sigaction use signal number from SIGRTMIN (34)
> to  SIGRTMAX (64).The Real Time (RT) signals will start from 34 to 64
> as per signal.h because sigaction is testing from 1 to 30 signals I
> hope.
> 
> If you want to test 1 to 64 signals by rt_sigaction signal number 9
> and 19 i.e SIGKILL and SIGTERM will FAIL, because as per
> Specifications we should not use SIGKILL and SIGTERM signals with
> rt_sigaction/sigaction.
> 
> long sys_rt_sigaction (int sig, const struct sigaction *act, struct
> sigaction *oact, size_t sigsetsize)
> 
> SIGSETSIZE is different for different architectures that is taken care
>  for ARM, PowerPC, X86 and MIPS in this patch.
> 
> Subrata,
> 
> Coding style is not as LTP, I did not get much time to fix this.
> If you are using any indent for LTP, please share I will use those
> script to fix coding style.
> 
> If any body is interested to fix coding style issue please welcome... :-)
> 
> 
> I have attached fix patch and below.
> Please review the same.
> 
> Best regards
> Naresh Kamboju
> 
> /*******************************************************/
> Test Start Time: Fri Jul  3 07:52:04 2009
> -----------------------------------------
> Testcase                       Result     Exit Value
> --------                       ------     ----------
> rt_sigaction01                 PASS       0
> rt_sigaction02                 PASS       0
> rt_sigaction03                 PASS       0
> 
> -----------------------------------------------
> Total Tests: 3
> Total Failures: 0
> Kernel Version: 2.6.23.17-alp_nl-pc-g56b4520c-dirty
> Machine Architecture: i686
> Hostname: 43.88.101.228
> ************************************************************/
> 
> Signed-off-by: Naresh Kamboju < naresh.kernel@gmail.com >

Thanks Naresh.

Regards--
Subrata

> 
> diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
> b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
> --- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-05-21
> 23:50:58.000000000 +0530
> +++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-07-03
> 19:38:41.000000000 +0530
> @@ -55,6 +55,15 @@
>  #include "usctest.h"
>  #include "linux_syscall_numbers.h"
> 
> +#if defined __mips__
> +#define SIGSETSIZE 16
> +#endif
> +
> +#if defined __arm__ || __i386__ || __powerpc__
> +#define SIGSETSIZE 8
> +#endif
> +
> +
>  /* Extern Global Variables */
>  extern int Tst_count;           /* counter for tst_xxx routines.         */
>  extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
> @@ -117,58 +126,35 @@
>  }
> 
>  int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
> SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
> +char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
> "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
> 
>  void
>  handler(int sig)
>  {
> -        tst_resm(TINFO,"Here is signal handler. Got signal: %d, do
> nothing here\n", sig);
> +        tst_resm(TINFO,"Signal Handler Called with signal number %d\n",sig);
>          return;
>  }
> 
>  int
> -set_handler(int sig, int sig_to_mask, int flag, int mask_flags)
> +set_handler(int sig, int sig_to_mask, int mask_flags)
>  {
>          struct sigaction sa, oldaction;
> -        int err = 0;
> 
> -        if (flag == 0) {
> -                tst_resm(TINFO,"flag0 - ");
> -                sa.sa_sigaction = (void *)handler;
> -                sa.sa_flags = mask_flags;
> -                TEST(sigemptyset(&sa.sa_mask));
> -                TEST(sigaddset(&sa.sa_mask, sig_to_mask));
> -                TEST(err = syscall(__NR_rt_sigaction,sig, &sa, NULL,8));
> -        } else if (flag == 1) {
> -                tst_resm(TINFO,"flag1 - ");
> -                TEST(err = syscall(__NR_rt_sigaction,sig, (void *)-1, NULL,8));
> -        } else if (flag == 2) {
> -               	tst_resm(TINFO,"flag2 - ");
> -                TEST(err = syscall(__NR_rt_sigaction,sig, NULL, (void *)-1,8));
> -	} else if (flag == 3) {
> -                tst_resm(TINFO,"flag3 - ");
>                  sa.sa_sigaction = (void *)handler;
>                  sa.sa_flags = mask_flags;
> -                TEST(sigemptyset(&sa.sa_mask));
> -                TEST(sigaddset(&sa.sa_mask, sig_to_mask));
> -                TEST(err = syscall(__NR_rt_sigaction,sig, &sa, &oldaction, 8));
> -                if (TEST_RETURN == 0) {
> -                        return 0;
> -                } else {
> -                        return TEST_ERRNO;
> -                }
> -        } else if (flag == 4){
> -                        TEST(err = syscall(__NR_rt_sigaction,sig,
> &sa, NULL,9));
> -        }
> +                sigemptyset(&sa.sa_mask);
> +                sigaddset(&sa.sa_mask, sig_to_mask);
> +                TEST(syscall(__NR_rt_sigaction,sig, &sa,
> &oldaction,SIGSETSIZE));
>          if (TEST_RETURN == 0) {
>                  return 0;
>          } else {
> -                return TEST_ERRNO;
> +                        return TEST_RETURN;
>          }
>  }
> 
> 
>  int main(int ac, char **av) {
> -	int retnval, i, j;
> +	int signal, flag;
>          int lc;                 /* loop counter */
>          char *msg;              /* message returned from parse_opts */
>  	
> @@ -185,24 +171,26 @@
>                  Tst_count = 0;
>                  for (testno = 0; testno < TST_TOTAL; ++testno) {
> 
> -			for (i = 0; i <= (SIGRTMAX + 1); i++){//signal for 0 to 65
> -	    			tst_resm(TINFO,"Signal : %d",i);
> -			                for (j = 0; j < 4; j++){
> -			                       	 TEST(retnval = set_handler(i, 0, j,
> test_flags[j]));
> +			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
> for 34 to 65
> +			 	for(flag=0; flag<5;flag++) {
> +	                        	 TEST(set_handler(signal, 0, test_flags[flag]));
>  						 if (TEST_RETURN == 0) {
> -        						tst_resm(TPASS, "rt_sigaction call succeeded: result =
> %d",TEST_RETURN);
> +        					tst_resm(TINFO,"signal: %d ", signal);
> +        					tst_resm(TPASS, "rt_sigaction call succeeded: result =
> %d ",TEST_RETURN );
> +        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
> +						kill(getpid(),signal);
>  			                         } else {
>                   	   				tst_resm(TFAIL, "%s failed - errno = %d :
> %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO));
> -							cleanup();
> -							tst_exit();
>                         				}
>                  			}
> +		 	printf("\n");	
>          		}
> 
> 
> 
>                  }
>          }	
> +	cleanup();
>          tst_exit();
>  }
> 
> diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
> b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
> --- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	1970-01-01
> 05:30:00.000000000 +0530
> +++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	2009-07-03
> 19:24:26.000000000 +0530
> @@ -0,0 +1,183 @@
> +/******************************************************************************/
> +/* Copyright (c) Crackerjack Project., 2007
>         */
> +/*
>         */
> +/* This program is free software;  you can redistribute it and/or
> modify      */
> +/* it under the terms of the GNU General Public License as published
> by       */
> +/* the Free Software Foundation; either version 2 of the License, or
>         */
> +/* (at your option) any later version.
>         */
> +/*
>         */
> +/* This program is distributed in the hope that it will be useful,
>         */
> +/* but WITHOUT ANY WARRANTY;  without even the implied warranty of
>         */
> +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
>         */
> +/* the GNU General Public License for more details.
>         */
> +/*
>         */
> +/* You should have received a copy of the GNU General Public License
>         */
> +/* along with this program;  if not, write to the Free Software
>         */
> +/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> 02111-1307 USA    */
> +/*
>         */
> +/******************************************************************************/
> +/******************************************************************************/
> +/*
>         */
> +/* File:        rt_sigaction02.c
>         */
> +/*
>         */
> +/* Description: This tests the rt_sigaction() syscall
>         */
> +/*		rt_sigaction Expected EFAULT error check                      */
> +/*
>         */
> +/* Usage:  <for command-line>
>         */
> +/* rt_sigaction02 [-c n] [-e][-i n] [-I x] [-p x] [-t]
>         */
> +/*      where,  -c n : Run n copies concurrently.
>         */
> +/*              -e   : Turn on errno logging.
>         */
> +/*              -i n : Execute test n times.
>         */
> +/*              -I x : Execute test for x seconds.
>         */
> +/*              -P x : Pause for x seconds between iterations.
>         */
> +/*              -t   : Turn on syscall timing.
>         */
> +/*
>         */
> +/* Total Tests: 1
>         */
> +/*
>         */
> +/* Test Name:   rt_sigaction02                                             */
> +/* History:     Porting from Crackerjack to LTP is done by
>         */
> +/*              Manas Kumar Nayak maknayak@in.ibm.com>
>         */
> +/******************************************************************************/
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <unistd.h>
> +#include <signal.h>
> +#include <errno.h>
> +#include <sys/syscall.h>
> +#include <string.h>
> +
> +/* Harness Specific Include Files. */
> +#include "test.h"
> +#include "usctest.h"
> +#include "linux_syscall_numbers.h"
> +
> +#if defined __mips__
> +#define SIGSETSIZE 16
> +#endif
> +
> +#if defined __arm__ || __i386__ || __powerpc__
> +#define SIGSETSIZE 8
> +#endif
> +
> +#define INVAL_STRUCT -1
> +
> +/* Extern Global Variables */
> +extern int Tst_count;           /* counter for tst_xxx routines.         */
> +extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
> +
> +/* Global Variables */
> +char *TCID = "rt_sigaction02";  /* Test program identifier.*/
> +int  testno;
> +int  TST_TOTAL = 1;                   /* total number of tests in
> this file.   */
> +
> +/* Extern Global Functions */
> +/******************************************************************************/
> +/*
>         */
> +/* Function:    cleanup
>         */
> +/*
>         */
> +/* Description: Performs all one time clean up for this test on
> successful    */
> +/*              completion,  premature exit or  failure. Closes all
> temporary */
> +/*              files, removes all temporary directories exits the
> test with  */
> +/*              appropriate return code by calling tst_exit()
> function.       */
> +/*
>         */
> +/* Input:       None.
>         */
> +/*
>         */
> +/* Output:      None.
>         */
> +/*
>         */
> +/* Return:      On failure - Exits calling tst_exit(). Non '0' return
> code.   */
> +/*              On success - Exits calling tst_exit(). With '0'
> return code.  */
> +/*
>         */
> +/******************************************************************************/
> +extern void cleanup() {
> +        /* Remove tmp dir and all files in it */
> +        TEST_CLEANUP;
> +        tst_rmdir();
> +
> +        /* Exit with appropriate return code. */
> +        tst_exit();
> +}
> +
> +/* Local  Functions */
> +/******************************************************************************/
> +/*
>         */
> +/* Function:    setup
>         */
> +/*
>         */
> +/* Description: Performs all one time setup for this test. This
> function is   */
> +/*              typically used to capture signals, create temporary
> dirs      */
> +/*              and temporary files that may be used in the course of
> this    */
> +/*              test.
>         */
> +/*
>         */
> +/* Input:       None.
>         */
> +/*
>         */
> +/* Output:      None.
>         */
> +/*
>         */
> +/* Return:      On failure - Exits by calling cleanup().
>         */
> +/*              On success - returns 0.
>         */
> +/*
>         */
> +/******************************************************************************/
> +void setup() {
> +        /* Capture signals if any */
> +        /* Create temporary directories */
> +        TEST_PAUSE;
> +        tst_tmpdir();
> +}
> +
> +int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
> SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
> +char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
> "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
> +
> +struct test_case_t {
> +        int exp_errno;
> +        char *errdesc;
> +} test_cases[] = {
> +	{ EFAULT, "EFAULT" }
> +};
> +
> +
> +int main(int ac, char **av) {
> +	int signal, flag;
> +        int lc;                 /* loop counter */
> +        char *msg;              /* message returned from parse_opts */
> +	
> +        /* parse standard options */
> +        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) !=
> (char *)NULL){
> +             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
> +             tst_exit();
> +           }
> +
> +        setup();
> +
> +        /* Check looping state if -i option given */
> +        for (lc = 0; TEST_LOOPING(lc); ++lc) {
> +                Tst_count = 0;
> +                for (testno = 0; testno < TST_TOTAL; ++testno) {
> +
> +			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
> for 34 to 65
> +			 	for(flag=0; flag<5;flag++) {
> +
> +				/*   							        *
> +				 * long sys_rt_sigaction (int sig, const struct sigaction *act, *
> +				 * truct sigaction *oact, size_t sigsetsize);			*
> +				 * EFAULT:							*
> +		        	 * An invalid act or oact value was specified 			*
> +				 */
> +
> +					 TEST(syscall(__NR_rt_sigaction,signal, INVAL_STRUCT, NULL,SIGSETSIZE));
> +					if((TEST_RETURN == -1) && (TEST_ERRNO == test_cases[0].exp_errno)) {
> +        						tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
> +                 	   				tst_resm(TPASS, "%s failure with sig: %d as
> expected errno  = %s : %s", TCID, signal,test_cases[0].errdesc,
> strerror(TEST_ERRNO));
> +			                         } else {
> +        					tst_resm(TFAIL, "rt_sigaction call succeeded: result =
> %d got error %d:but expected  %d", TEST_RETURN, TEST_ERRNO,
> test_cases[0].exp_errno);
> +        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
> +						}
> +                			}
> +		 	printf("\n");	
> +        		}
> +
> +
> +
> +                }
> +        }	
> +	cleanup();
> +        tst_exit();
> +}
> +
> diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
> b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
> --- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c	1970-01-01
> 05:30:00.000000000 +0530
> +++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c	2009-07-03
> 19:24:12.000000000 +0530
> @@ -0,0 +1,200 @@
> +/******************************************************************************/
> +/* Copyright (c) Crackerjack Project., 2007
>         */
> +/*
>         */
> +/* This program is free software;  you can redistribute it and/or
> modify      */
> +/* it under the terms of the GNU General Public License as published
> by       */
> +/* the Free Software Foundation; either version 2 of the License, or
>         */
> +/* (at your option) any later version.
>         */
> +/*
>         */
> +/* This program is distributed in the hope that it will be useful,
>         */
> +/* but WITHOUT ANY WARRANTY;  without even the implied warranty of
>         */
> +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
>         */
> +/* the GNU General Public License for more details.
>         */
> +/*
>         */
> +/* You should have received a copy of the GNU General Public License
>         */
> +/* along with this program;  if not, write to the Free Software
>         */
> +/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
> 02111-1307 USA    */
> +/*
>         */
> +/******************************************************************************/
> +/******************************************************************************/
> +/*
>         */
> +/* File:        rt_sigaction03.c
>         */
> +/*
>         */
> +/* Description: This tests the rt_sigaction() syscall
>         */
> +/*		rt_sigaction Expected EINVAL error check                      */
> +/*
>         */
> +/* Usage:  <for command-line>
>         */
> +/* rt_sigaction03 [-c n] [-e][-i n] [-I x] [-p x] [-t]
>         */
> +/*      where,  -c n : Run n copies concurrently.
>         */
> +/*              -e   : Turn on errno logging.
>         */
> +/*              -i n : Execute test n times.
>         */
> +/*              -I x : Execute test for x seconds.
>         */
> +/*              -P x : Pause for x seconds between iterations.
>         */
> +/*              -t   : Turn on syscall timing.
>         */
> +/*
>         */
> +/* Total Tests: 1
>         */
> +/*
>         */
> +/* Test Name:   rt_sigaction03                                             */
> +/* History:     Porting from Crackerjack to LTP is done by
>         */
> +/*              Manas Kumar Nayak maknayak@in.ibm.com>
>         */
> +/******************************************************************************/
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <unistd.h>
> +#include <signal.h>
> +#include <errno.h>
> +#include <sys/syscall.h>
> +#include <string.h>
> +
> +/* Harness Specific Include Files. */
> +#include "test.h"
> +#include "usctest.h"
> +#include "linux_syscall_numbers.h"
> +
> +#define INVAL_SIGSETSIZE -1
> +
> +/* Extern Global Variables */
> +extern int Tst_count;           /* counter for tst_xxx routines.         */
> +extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
> +
> +/* Global Variables */
> +char *TCID = "rt_sigaction03";  /* Test program identifier.*/
> +int  testno;
> +int  TST_TOTAL = 1;                   /* total number of tests in
> this file.   */
> +
> +/* Extern Global Functions */
> +/******************************************************************************/
> +/*
>         */
> +/* Function:    cleanup
>         */
> +/*
>         */
> +/* Description: Performs all one time clean up for this test on
> successful    */
> +/*              completion,  premature exit or  failure. Closes all
> temporary */
> +/*              files, removes all temporary directories exits the
> test with  */
> +/*              appropriate return code by calling tst_exit()
> function.       */
> +/*
>         */
> +/* Input:       None.
>         */
> +/*
>         */
> +/* Output:      None.
>         */
> +/*
>         */
> +/* Return:      On failure - Exits calling tst_exit(). Non '0' return
> code.   */
> +/*              On success - Exits calling tst_exit(). With '0'
> return code.  */
> +/*
>         */
> +/******************************************************************************/
> +extern void cleanup() {
> +        /* Remove tmp dir and all files in it */
> +        TEST_CLEANUP;
> +        tst_rmdir();
> +
> +        /* Exit with appropriate return code. */
> +        tst_exit();
> +}
> +
> +/* Local  Functions */
> +/******************************************************************************/
> +/*
>         */
> +/* Function:    setup
>         */
> +/*
>         */
> +/* Description: Performs all one time setup for this test. This
> function is   */
> +/*              typically used to capture signals, create temporary
> dirs      */
> +/*              and temporary files that may be used in the course of
> this    */
> +/*              test.
>         */
> +/*
>         */
> +/* Input:       None.
>         */
> +/*
>         */
> +/* Output:      None.
>         */
> +/*
>         */
> +/* Return:      On failure - Exits by calling cleanup().
>         */
> +/*              On success - returns 0.
>         */
> +/*
>         */
> +/******************************************************************************/
> +void setup() {
> +        /* Capture signals if any */
> +        /* Create temporary directories */
> +        TEST_PAUSE;
> +        tst_tmpdir();
> +}
> +
> +int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
> SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
> +char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
> "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
> +
> +
> +struct test_case_t {
> +        int exp_errno;
> +        char *errdesc;
> +} test_cases[] = {
> +	{ EINVAL, "EINVAL" }
> +};
> +
> +void
> +handler(int sig)
> +{
> +        tst_resm(TINFO,"Signal Handler Called with signal number %d\n",sig);
> +        return;
> +}
> +
> +int
> +set_handler(int sig, int sig_to_mask, int mask_flags)
> +{
> +        struct sigaction sa, oldaction;
> +
> +                sa.sa_sigaction = (void *)handler;
> +                sa.sa_flags = mask_flags;
> +                sigemptyset(&sa.sa_mask);
> +                sigaddset(&sa.sa_mask, sig_to_mask);
> +
> +		/*   							        *
> +		 * long sys_rt_sigaction (int sig, const struct sigaction *act, *
> +		 * truct sigaction *oact, size_t sigsetsize);			*
> +		 * EINVAL:							*
> +        	 * sigsetsize was not equivalent to the size of a sigset_t type *
> +		 */
> +
> +                TEST(syscall(__NR_rt_sigaction,sig, &sa ,
> &oldaction,INVAL_SIGSETSIZE));
> +                if (TEST_RETURN == 0) {
> +                        return 0;
> +                } else {
> +                        return TEST_RETURN;
> +                }
> +}
> +
> +
> +int main(int ac, char **av) {
> +	int signal, flag;
> +        int lc;                 /* loop counter */
> +        char *msg;              /* message returned from parse_opts */
> +	
> +        /* parse standard options */
> +        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) !=
> (char *)NULL){
> +             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
> +             tst_exit();
> +           }
> +
> +        setup();
> +
> +        /* Check looping state if -i option given */
> +        for (lc = 0; TEST_LOOPING(lc); ++lc) {
> +                Tst_count = 0;
> +                for (testno = 0; testno < TST_TOTAL; ++testno) {
> +
> +			for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
> for 34 to 65
> +			 	for(flag=0; flag<5;flag++) {
> +	                        	 TEST(set_handler(signal, 0, test_flags[flag]));
> +					if((TEST_RETURN == -1) && (TEST_ERRNO == test_cases[0].exp_errno)) {
> +        						tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
> +                 	   				tst_resm(TPASS, "%s failure with sig: %d as
> expected errno  = %s : %s", TCID, signal,test_cases[0].errdesc,
> strerror(TEST_ERRNO));
> +			                         } else {
> +        					tst_resm(TFAIL, "rt_sigaction call succeeded: result =
> %d got error %d:but expected  %d", TEST_RETURN, TEST_ERRNO,
> test_cases[0].exp_errno);
> +        					tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
> +						}
> +                			}
> +		 	printf("\n");	
> +        		}
> +
> +
> +
> +                }
> +        }	
> +	cleanup();
> +        tst_exit();
> +}
> +


------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-06 15:50 ` Subrata Modak
@ 2009-07-07 11:52   ` naresh kamboju
  2009-07-07 16:44     ` Garrett Cooper
  0 siblings, 1 reply; 10+ messages in thread
From: naresh kamboju @ 2009-07-07 11:52 UTC (permalink / raw)
  To: subrata; +Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

[-- Attachment #1: Type: text/plain, Size: 29960 bytes --]

Hi Garrett Cooper,

Thanks for your info.

>Oops... looks like someone forgot __amd64__ / >__ia64__:

yes.
i forgot to add these ARCH.
Because I am not having this Architecture at my end :-(

>gcc -g -O2 -I../../include -g -Wall -I../../../../include >-Wall -O2 -W
>rt_sigaction01.c -L../../../../lib -lltp -o rt_sigaction01
>rt_sigaction01.c: In function 'set_handler':
>rt_sigaction01.c:147: error: 'SIGSETSIZE' >undeclared .(first use in
>this function)
>rt_sigaction01.c:147: error: (Each undeclared >identifier is reported only once
>rt_sigaction01.c:147: error: for each function it >appears in.)
>make[4]: *** [rt_sigaction01] Error 1

>I tried using sizeof(sigaction_t), but unfortunately the >results for
>the testcase(s) on my system were always EINVAL. >This issue wasn't
>present a few days ago...

>Any ideas?


I have made a patch to fix this issue please review the this temporary fix.

In my previous mail I have stated that sigset size (size_t sigsetsize)
will be different for Different ARCH. It is depending on
_COMPAT_NSIG_WORDS Macro.

We have to conform how its different with respect to ARCH and need to
have a generic solution to fix this issue.

I think its going to be an issue othere than __arm__ || __i386__ ||
__powerpc__ || __amd64__ || __ia64__ and __mips__

There are different ARCH are being used by our LTP developers.

I’ll investigate this issue and come back with generic Solution to
support most of the ARCH.


please refer this  linux-2.6.30/include/linux/compat.h

http://lxr.linux.no/linux+v2.6.30/include/linux/compat.h#L75

#define _COMPAT_NSIG_WORDS      (_COMPAT_NSIG / _COMPAT_NSIG_BPW)

  typedef struct {
          compat_sigset_word      sig[_COMPAT_NSIG_WORDS];
  } compat_sigset_t;

Your suggestions are welcome ... :)


Best regards
Naresh Kamboju

Signed-off-by: Naresh Kamboju < naresh.kernel@gmail.com >

diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-07-07
16:58:11.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-07-07
16:59:38.000000000 +0530
@@ -59,7 +59,7 @@
 #define SIGSETSIZE 16
 #endif

-#if defined __arm__ || __i386__ || __powerpc__
+#if defined __arm__ || __i386__ || __powerpc__ || __amd64__ || __ia64__
 #define SIGSETSIZE 8
 #endif

diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	2009-07-07
16:58:11.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	2009-07-07
16:59:48.000000000 +0530
@@ -55,7 +55,7 @@
 #define SIGSETSIZE 16
 #endif

-#if defined __arm__ || __i386__ || __powerpc__
+#if defined __arm__ || __i386__ || __powerpc__ || __amd64__ || __ia64__
 #define SIGSETSIZE 8
 #endif



On Mon, Jul 6, 2009 at 9:20 PM, Subrata Modak<subrata@linux.vnet.ibm.com> wrote:
> On Fri, 2009-07-03 at 21:16 +0530, naresh kamboju wrote:
>> Hi,
>>
>> I have divided rt_sigaction01.c test case in to three test cases
>>
>> 1. rt_sigaction01.c (Functionality)
>> 2. rt_sigaction02.c (EFAULT)
>> 3. rt_sigaction03.c (EINVAL)
>>
>> In these test cases rt_sigaction use signal number from SIGRTMIN (34)
>> to  SIGRTMAX (64).The Real Time (RT) signals will start from 34 to 64
>> as per signal.h because sigaction is testing from 1 to 30 signals I
>> hope.
>>
>> If you want to test 1 to 64 signals by rt_sigaction signal number 9
>> and 19 i.e SIGKILL and SIGTERM will FAIL, because as per
>> Specifications we should not use SIGKILL and SIGTERM signals with
>> rt_sigaction/sigaction.
>>
>> long sys_rt_sigaction (int sig, const struct sigaction *act, struct
>> sigaction *oact, size_t sigsetsize)
>>
>> SIGSETSIZE is different for different architectures that is taken care
>>  for ARM, PowerPC, X86 and MIPS in this patch.
>>
>> Subrata,
>>
>> Coding style is not as LTP, I did not get much time to fix this.
>> If you are using any indent for LTP, please share I will use those
>> script to fix coding style.
>>
>> If any body is interested to fix coding style issue please welcome... :-)
>>
>>
>> I have attached fix patch and below.
>> Please review the same.
>>
>> Best regards
>> Naresh Kamboju
>>
>> /*******************************************************/
>> Test Start Time: Fri Jul  3 07:52:04 2009
>> -----------------------------------------
>> Testcase                       Result     Exit Value
>> --------                       ------     ----------
>> rt_sigaction01                 PASS       0
>> rt_sigaction02                 PASS       0
>> rt_sigaction03                 PASS       0
>>
>> -----------------------------------------------
>> Total Tests: 3
>> Total Failures: 0
>> Kernel Version: 2.6.23.17-alp_nl-pc-g56b4520c-dirty
>> Machine Architecture: i686
>> Hostname: 43.88.101.228
>> ************************************************************/
>>
>> Signed-off-by: Naresh Kamboju < naresh.kernel@gmail.com >
>
> Thanks Naresh.
>
> Regards--
> Subrata
>
>>
>> diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
>> b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
>> --- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c 2009-05-21
>> 23:50:58.000000000 +0530
>> +++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c 2009-07-03
>> 19:38:41.000000000 +0530
>> @@ -55,6 +55,15 @@
>>  #include "usctest.h"
>>  #include "linux_syscall_numbers.h"
>>
>> +#if defined __mips__
>> +#define SIGSETSIZE 16
>> +#endif
>> +
>> +#if defined __arm__ || __i386__ || __powerpc__
>> +#define SIGSETSIZE 8
>> +#endif
>> +
>> +
>>  /* Extern Global Variables */
>>  extern int Tst_count;           /* counter for tst_xxx routines.         */
>>  extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
>> @@ -117,58 +126,35 @@
>>  }
>>
>>  int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
>> SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
>> +char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
>> "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
>>
>>  void
>>  handler(int sig)
>>  {
>> -        tst_resm(TINFO,"Here is signal handler. Got signal: %d, do
>> nothing here\n", sig);
>> +        tst_resm(TINFO,"Signal Handler Called with signal number %d\n",sig);
>>          return;
>>  }
>>
>>  int
>> -set_handler(int sig, int sig_to_mask, int flag, int mask_flags)
>> +set_handler(int sig, int sig_to_mask, int mask_flags)
>>  {
>>          struct sigaction sa, oldaction;
>> -        int err = 0;
>>
>> -        if (flag == 0) {
>> -                tst_resm(TINFO,"flag0 - ");
>> -                sa.sa_sigaction = (void *)handler;
>> -                sa.sa_flags = mask_flags;
>> -                TEST(sigemptyset(&sa.sa_mask));
>> -                TEST(sigaddset(&sa.sa_mask, sig_to_mask));
>> -                TEST(err = syscall(__NR_rt_sigaction,sig, &sa, NULL,8));
>> -        } else if (flag == 1) {
>> -                tst_resm(TINFO,"flag1 - ");
>> -                TEST(err = syscall(__NR_rt_sigaction,sig, (void *)-1, NULL,8));
>> -        } else if (flag == 2) {
>> -                     tst_resm(TINFO,"flag2 - ");
>> -                TEST(err = syscall(__NR_rt_sigaction,sig, NULL, (void *)-1,8));
>> -     } else if (flag == 3) {
>> -                tst_resm(TINFO,"flag3 - ");
>>                  sa.sa_sigaction = (void *)handler;
>>                  sa.sa_flags = mask_flags;
>> -                TEST(sigemptyset(&sa.sa_mask));
>> -                TEST(sigaddset(&sa.sa_mask, sig_to_mask));
>> -                TEST(err = syscall(__NR_rt_sigaction,sig, &sa, &oldaction, 8));
>> -                if (TEST_RETURN == 0) {
>> -                        return 0;
>> -                } else {
>> -                        return TEST_ERRNO;
>> -                }
>> -        } else if (flag == 4){
>> -                        TEST(err = syscall(__NR_rt_sigaction,sig,
>> &sa, NULL,9));
>> -        }
>> +                sigemptyset(&sa.sa_mask);
>> +                sigaddset(&sa.sa_mask, sig_to_mask);
>> +                TEST(syscall(__NR_rt_sigaction,sig, &sa,
>> &oldaction,SIGSETSIZE));
>>          if (TEST_RETURN == 0) {
>>                  return 0;
>>          } else {
>> -                return TEST_ERRNO;
>> +                        return TEST_RETURN;
>>          }
>>  }
>>
>>
>>  int main(int ac, char **av) {
>> -     int retnval, i, j;
>> +     int signal, flag;
>>          int lc;                 /* loop counter */
>>          char *msg;              /* message returned from parse_opts */
>>
>> @@ -185,24 +171,26 @@
>>                  Tst_count = 0;
>>                  for (testno = 0; testno < TST_TOTAL; ++testno) {
>>
>> -                     for (i = 0; i <= (SIGRTMAX + 1); i++){//signal for 0 to 65
>> -                             tst_resm(TINFO,"Signal : %d",i);
>> -                                     for (j = 0; j < 4; j++){
>> -                                              TEST(retnval = set_handler(i, 0, j,
>> test_flags[j]));
>> +                     for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
>> for 34 to 65
>> +                             for(flag=0; flag<5;flag++) {
>> +                                      TEST(set_handler(signal, 0, test_flags[flag]));
>>                                                if (TEST_RETURN == 0) {
>> -                                                     tst_resm(TPASS, "rt_sigaction call succeeded: result =
>> %d",TEST_RETURN);
>> +                                             tst_resm(TINFO,"signal: %d ", signal);
>> +                                             tst_resm(TPASS, "rt_sigaction call succeeded: result =
>> %d ",TEST_RETURN );
>> +                                             tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
>> +                                             kill(getpid(),signal);
>>                                                } else {
>>                                                       tst_resm(TFAIL, "%s failed - errno = %d :
>> %s", TCID, TEST_ERRNO, strerror(TEST_ERRNO));
>> -                                                     cleanup();
>> -                                                     tst_exit();
>>                                                       }
>>                                       }
>> +                     printf("\n");
>>                       }
>>
>>
>>
>>                  }
>>          }
>> +     cleanup();
>>          tst_exit();
>>  }
>>
>> diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
>> b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
>> --- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c 1970-01-01
>> 05:30:00.000000000 +0530
>> +++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c 2009-07-03
>> 19:24:26.000000000 +0530
>> @@ -0,0 +1,183 @@
>> +/******************************************************************************/
>> +/* Copyright (c) Crackerjack Project., 2007
>>         */
>> +/*
>>         */
>> +/* This program is free software;  you can redistribute it and/or
>> modify      */
>> +/* it under the terms of the GNU General Public License as published
>> by       */
>> +/* the Free Software Foundation; either version 2 of the License, or
>>         */
>> +/* (at your option) any later version.
>>         */
>> +/*
>>         */
>> +/* This program is distributed in the hope that it will be useful,
>>         */
>> +/* but WITHOUT ANY WARRANTY;  without even the implied warranty of
>>         */
>> +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
>>         */
>> +/* the GNU General Public License for more details.
>>         */
>> +/*
>>         */
>> +/* You should have received a copy of the GNU General Public License
>>         */
>> +/* along with this program;  if not, write to the Free Software
>>         */
>> +/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
>> 02111-1307 USA    */
>> +/*
>>         */
>> +/******************************************************************************/
>> +/******************************************************************************/
>> +/*
>>         */
>> +/* File:        rt_sigaction02.c
>>         */
>> +/*
>>         */
>> +/* Description: This tests the rt_sigaction() syscall
>>         */
>> +/*           rt_sigaction Expected EFAULT error check                      */
>> +/*
>>         */
>> +/* Usage:  <for command-line>
>>         */
>> +/* rt_sigaction02 [-c n] [-e][-i n] [-I x] [-p x] [-t]
>>         */
>> +/*      where,  -c n : Run n copies concurrently.
>>         */
>> +/*              -e   : Turn on errno logging.
>>         */
>> +/*              -i n : Execute test n times.
>>         */
>> +/*              -I x : Execute test for x seconds.
>>         */
>> +/*              -P x : Pause for x seconds between iterations.
>>         */
>> +/*              -t   : Turn on syscall timing.
>>         */
>> +/*
>>         */
>> +/* Total Tests: 1
>>         */
>> +/*
>>         */
>> +/* Test Name:   rt_sigaction02                                             */
>> +/* History:     Porting from Crackerjack to LTP is done by
>>         */
>> +/*              Manas Kumar Nayak maknayak@in.ibm.com>
>>         */
>> +/******************************************************************************/
>> +#include <stdio.h>
>> +#include <stdlib.h>
>> +#include <unistd.h>
>> +#include <signal.h>
>> +#include <errno.h>
>> +#include <sys/syscall.h>
>> +#include <string.h>
>> +
>> +/* Harness Specific Include Files. */
>> +#include "test.h"
>> +#include "usctest.h"
>> +#include "linux_syscall_numbers.h"
>> +
>> +#if defined __mips__
>> +#define SIGSETSIZE 16
>> +#endif
>> +
>> +#if defined __arm__ || __i386__ || __powerpc__
>> +#define SIGSETSIZE 8
>> +#endif
>> +
>> +#define INVAL_STRUCT -1
>> +
>> +/* Extern Global Variables */
>> +extern int Tst_count;           /* counter for tst_xxx routines.         */
>> +extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
>> +
>> +/* Global Variables */
>> +char *TCID = "rt_sigaction02";  /* Test program identifier.*/
>> +int  testno;
>> +int  TST_TOTAL = 1;                   /* total number of tests in
>> this file.   */
>> +
>> +/* Extern Global Functions */
>> +/******************************************************************************/
>> +/*
>>         */
>> +/* Function:    cleanup
>>         */
>> +/*
>>         */
>> +/* Description: Performs all one time clean up for this test on
>> successful    */
>> +/*              completion,  premature exit or  failure. Closes all
>> temporary */
>> +/*              files, removes all temporary directories exits the
>> test with  */
>> +/*              appropriate return code by calling tst_exit()
>> function.       */
>> +/*
>>         */
>> +/* Input:       None.
>>         */
>> +/*
>>         */
>> +/* Output:      None.
>>         */
>> +/*
>>         */
>> +/* Return:      On failure - Exits calling tst_exit(). Non '0' return
>> code.   */
>> +/*              On success - Exits calling tst_exit(). With '0'
>> return code.  */
>> +/*
>>         */
>> +/******************************************************************************/
>> +extern void cleanup() {
>> +        /* Remove tmp dir and all files in it */
>> +        TEST_CLEANUP;
>> +        tst_rmdir();
>> +
>> +        /* Exit with appropriate return code. */
>> +        tst_exit();
>> +}
>> +
>> +/* Local  Functions */
>> +/******************************************************************************/
>> +/*
>>         */
>> +/* Function:    setup
>>         */
>> +/*
>>         */
>> +/* Description: Performs all one time setup for this test. This
>> function is   */
>> +/*              typically used to capture signals, create temporary
>> dirs      */
>> +/*              and temporary files that may be used in the course of
>> this    */
>> +/*              test.
>>         */
>> +/*
>>         */
>> +/* Input:       None.
>>         */
>> +/*
>>         */
>> +/* Output:      None.
>>         */
>> +/*
>>         */
>> +/* Return:      On failure - Exits by calling cleanup().
>>         */
>> +/*              On success - returns 0.
>>         */
>> +/*
>>         */
>> +/******************************************************************************/
>> +void setup() {
>> +        /* Capture signals if any */
>> +        /* Create temporary directories */
>> +        TEST_PAUSE;
>> +        tst_tmpdir();
>> +}
>> +
>> +int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
>> SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
>> +char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
>> "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
>> +
>> +struct test_case_t {
>> +        int exp_errno;
>> +        char *errdesc;
>> +} test_cases[] = {
>> +     { EFAULT, "EFAULT" }
>> +};
>> +
>> +
>> +int main(int ac, char **av) {
>> +     int signal, flag;
>> +        int lc;                 /* loop counter */
>> +        char *msg;              /* message returned from parse_opts */
>> +
>> +        /* parse standard options */
>> +        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) !=
>> (char *)NULL){
>> +             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
>> +             tst_exit();
>> +           }
>> +
>> +        setup();
>> +
>> +        /* Check looping state if -i option given */
>> +        for (lc = 0; TEST_LOOPING(lc); ++lc) {
>> +                Tst_count = 0;
>> +                for (testno = 0; testno < TST_TOTAL; ++testno) {
>> +
>> +                     for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
>> for 34 to 65
>> +                             for(flag=0; flag<5;flag++) {
>> +
>> +                             /*                                                              *
>> +                              * long sys_rt_sigaction (int sig, const struct sigaction *act, *
>> +                              * truct sigaction *oact, size_t sigsetsize);                   *
>> +                              * EFAULT:                                                      *
>> +                              * An invalid act or oact value was specified                   *
>> +                              */
>> +
>> +                                      TEST(syscall(__NR_rt_sigaction,signal, INVAL_STRUCT, NULL,SIGSETSIZE));
>> +                                     if((TEST_RETURN == -1) && (TEST_ERRNO == test_cases[0].exp_errno)) {
>> +                                                     tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
>> +                                                     tst_resm(TPASS, "%s failure with sig: %d as
>> expected errno  = %s : %s", TCID, signal,test_cases[0].errdesc,
>> strerror(TEST_ERRNO));
>> +                                              } else {
>> +                                             tst_resm(TFAIL, "rt_sigaction call succeeded: result =
>> %d got error %d:but expected  %d", TEST_RETURN, TEST_ERRNO,
>> test_cases[0].exp_errno);
>> +                                             tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
>> +                                             }
>> +                                     }
>> +                     printf("\n");
>> +                     }
>> +
>> +
>> +
>> +                }
>> +        }
>> +     cleanup();
>> +        tst_exit();
>> +}
>> +
>> diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
>> b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c
>> --- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c 1970-01-01
>> 05:30:00.000000000 +0530
>> +++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c 2009-07-03
>> 19:24:12.000000000 +0530
>> @@ -0,0 +1,200 @@
>> +/******************************************************************************/
>> +/* Copyright (c) Crackerjack Project., 2007
>>         */
>> +/*
>>         */
>> +/* This program is free software;  you can redistribute it and/or
>> modify      */
>> +/* it under the terms of the GNU General Public License as published
>> by       */
>> +/* the Free Software Foundation; either version 2 of the License, or
>>         */
>> +/* (at your option) any later version.
>>         */
>> +/*
>>         */
>> +/* This program is distributed in the hope that it will be useful,
>>         */
>> +/* but WITHOUT ANY WARRANTY;  without even the implied warranty of
>>         */
>> +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
>>         */
>> +/* the GNU General Public License for more details.
>>         */
>> +/*
>>         */
>> +/* You should have received a copy of the GNU General Public License
>>         */
>> +/* along with this program;  if not, write to the Free Software
>>         */
>> +/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
>> 02111-1307 USA    */
>> +/*
>>         */
>> +/******************************************************************************/
>> +/******************************************************************************/
>> +/*
>>         */
>> +/* File:        rt_sigaction03.c
>>         */
>> +/*
>>         */
>> +/* Description: This tests the rt_sigaction() syscall
>>         */
>> +/*           rt_sigaction Expected EINVAL error check                      */
>> +/*
>>         */
>> +/* Usage:  <for command-line>
>>         */
>> +/* rt_sigaction03 [-c n] [-e][-i n] [-I x] [-p x] [-t]
>>         */
>> +/*      where,  -c n : Run n copies concurrently.
>>         */
>> +/*              -e   : Turn on errno logging.
>>         */
>> +/*              -i n : Execute test n times.
>>         */
>> +/*              -I x : Execute test for x seconds.
>>         */
>> +/*              -P x : Pause for x seconds between iterations.
>>         */
>> +/*              -t   : Turn on syscall timing.
>>         */
>> +/*
>>         */
>> +/* Total Tests: 1
>>         */
>> +/*
>>         */
>> +/* Test Name:   rt_sigaction03                                             */
>> +/* History:     Porting from Crackerjack to LTP is done by
>>         */
>> +/*              Manas Kumar Nayak maknayak@in.ibm.com>
>>         */
>> +/******************************************************************************/
>> +#include <stdio.h>
>> +#include <stdlib.h>
>> +#include <unistd.h>
>> +#include <signal.h>
>> +#include <errno.h>
>> +#include <sys/syscall.h>
>> +#include <string.h>
>> +
>> +/* Harness Specific Include Files. */
>> +#include "test.h"
>> +#include "usctest.h"
>> +#include "linux_syscall_numbers.h"
>> +
>> +#define INVAL_SIGSETSIZE -1
>> +
>> +/* Extern Global Variables */
>> +extern int Tst_count;           /* counter for tst_xxx routines.         */
>> +extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
>> +
>> +/* Global Variables */
>> +char *TCID = "rt_sigaction03";  /* Test program identifier.*/
>> +int  testno;
>> +int  TST_TOTAL = 1;                   /* total number of tests in
>> this file.   */
>> +
>> +/* Extern Global Functions */
>> +/******************************************************************************/
>> +/*
>>         */
>> +/* Function:    cleanup
>>         */
>> +/*
>>         */
>> +/* Description: Performs all one time clean up for this test on
>> successful    */
>> +/*              completion,  premature exit or  failure. Closes all
>> temporary */
>> +/*              files, removes all temporary directories exits the
>> test with  */
>> +/*              appropriate return code by calling tst_exit()
>> function.       */
>> +/*
>>         */
>> +/* Input:       None.
>>         */
>> +/*
>>         */
>> +/* Output:      None.
>>         */
>> +/*
>>         */
>> +/* Return:      On failure - Exits calling tst_exit(). Non '0' return
>> code.   */
>> +/*              On success - Exits calling tst_exit(). With '0'
>> return code.  */
>> +/*
>>         */
>> +/******************************************************************************/
>> +extern void cleanup() {
>> +        /* Remove tmp dir and all files in it */
>> +        TEST_CLEANUP;
>> +        tst_rmdir();
>> +
>> +        /* Exit with appropriate return code. */
>> +        tst_exit();
>> +}
>> +
>> +/* Local  Functions */
>> +/******************************************************************************/
>> +/*
>>         */
>> +/* Function:    setup
>>         */
>> +/*
>>         */
>> +/* Description: Performs all one time setup for this test. This
>> function is   */
>> +/*              typically used to capture signals, create temporary
>> dirs      */
>> +/*              and temporary files that may be used in the course of
>> this    */
>> +/*              test.
>>         */
>> +/*
>>         */
>> +/* Input:       None.
>>         */
>> +/*
>>         */
>> +/* Output:      None.
>>         */
>> +/*
>>         */
>> +/* Return:      On failure - Exits by calling cleanup().
>>         */
>> +/*              On success - returns 0.
>>         */
>> +/*
>>         */
>> +/******************************************************************************/
>> +void setup() {
>> +        /* Capture signals if any */
>> +        /* Create temporary directories */
>> +        TEST_PAUSE;
>> +        tst_tmpdir();
>> +}
>> +
>> +int test_flags[] = {SA_RESETHAND|SA_SIGINFO, SA_RESETHAND,
>> SA_RESETHAND|SA_SIGINFO, SA_RESETHAND|SA_SIGINFO, SA_NOMASK};
>> +char *test_flags_list[] = {"SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND",
>> "SA_RESETHAND|SA_SIGINFO", "SA_RESETHAND|SA_SIGINFO", "SA_NOMASK"};
>> +
>> +
>> +struct test_case_t {
>> +        int exp_errno;
>> +        char *errdesc;
>> +} test_cases[] = {
>> +     { EINVAL, "EINVAL" }
>> +};
>> +
>> +void
>> +handler(int sig)
>> +{
>> +        tst_resm(TINFO,"Signal Handler Called with signal number %d\n",sig);
>> +        return;
>> +}
>> +
>> +int
>> +set_handler(int sig, int sig_to_mask, int mask_flags)
>> +{
>> +        struct sigaction sa, oldaction;
>> +
>> +                sa.sa_sigaction = (void *)handler;
>> +                sa.sa_flags = mask_flags;
>> +                sigemptyset(&sa.sa_mask);
>> +                sigaddset(&sa.sa_mask, sig_to_mask);
>> +
>> +             /*                                                              *
>> +              * long sys_rt_sigaction (int sig, const struct sigaction *act, *
>> +              * truct sigaction *oact, size_t sigsetsize);                   *
>> +              * EINVAL:                                                      *
>> +              * sigsetsize was not equivalent to the size of a sigset_t type *
>> +              */
>> +
>> +                TEST(syscall(__NR_rt_sigaction,sig, &sa ,
>> &oldaction,INVAL_SIGSETSIZE));
>> +                if (TEST_RETURN == 0) {
>> +                        return 0;
>> +                } else {
>> +                        return TEST_RETURN;
>> +                }
>> +}
>> +
>> +
>> +int main(int ac, char **av) {
>> +     int signal, flag;
>> +        int lc;                 /* loop counter */
>> +        char *msg;              /* message returned from parse_opts */
>> +
>> +        /* parse standard options */
>> +        if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) !=
>> (char *)NULL){
>> +             tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
>> +             tst_exit();
>> +           }
>> +
>> +        setup();
>> +
>> +        /* Check looping state if -i option given */
>> +        for (lc = 0; TEST_LOOPING(lc); ++lc) {
>> +                Tst_count = 0;
>> +                for (testno = 0; testno < TST_TOTAL; ++testno) {
>> +
>> +                     for (signal = SIGRTMIN; signal <= (SIGRTMAX ); signal++){//signal
>> for 34 to 65
>> +                             for(flag=0; flag<5;flag++) {
>> +                                      TEST(set_handler(signal, 0, test_flags[flag]));
>> +                                     if((TEST_RETURN == -1) && (TEST_ERRNO == test_cases[0].exp_errno)) {
>> +                                                     tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
>> +                                                     tst_resm(TPASS, "%s failure with sig: %d as
>> expected errno  = %s : %s", TCID, signal,test_cases[0].errdesc,
>> strerror(TEST_ERRNO));
>> +                                              } else {
>> +                                             tst_resm(TFAIL, "rt_sigaction call succeeded: result =
>> %d got error %d:but expected  %d", TEST_RETURN, TEST_ERRNO,
>> test_cases[0].exp_errno);
>> +                                             tst_resm(TINFO, "sa.sa_flags = %s ",test_flags_list[flag]);
>> +                                             }
>> +                                     }
>> +                     printf("\n");
>> +                     }
>> +
>> +
>> +
>> +                }
>> +        }
>> +     cleanup();
>> +        tst_exit();
>> +}
>> +
>
>

[-- Attachment #2: ltp-fix-rt_sigaction.patch --]
[-- Type: application/octet-stream, Size: 1056 bytes --]

diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-07-07 16:58:11.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c	2009-07-07 16:59:38.000000000 +0530
@@ -59,7 +59,7 @@
 #define SIGSETSIZE 16
 #endif
 
-#if defined __arm__ || __i386__ || __powerpc__
+#if defined __arm__ || __i386__ || __powerpc__ || __amd64__ || __ia64__
 #define SIGSETSIZE 8
 #endif
 
diff -Naurb a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c
--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	2009-07-07 16:58:11.000000000 +0530
+++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c	2009-07-07 16:59:48.000000000 +0530
@@ -55,7 +55,7 @@
 #define SIGSETSIZE 16
 #endif
 
-#if defined __arm__ || __i386__ || __powerpc__
+#if defined __arm__ || __i386__ || __powerpc__ || __amd64__ || __ia64__
 #define SIGSETSIZE 8
 #endif
 

[-- Attachment #3: Type: text/plain, Size: 390 bytes --]

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]

_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-07 11:52   ` naresh kamboju
@ 2009-07-07 16:44     ` Garrett Cooper
  2009-07-07 17:21       ` naresh kamboju
  2009-07-07 17:26       ` naresh kamboju
  0 siblings, 2 replies; 10+ messages in thread
From: Garrett Cooper @ 2009-07-07 16:44 UTC (permalink / raw)
  To: naresh kamboju
  Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

On Tue, Jul 7, 2009 at 4:52 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
> Hi Garrett Cooper,
>
> Thanks for your info.
>
>>Oops... looks like someone forgot __amd64__ / >__ia64__:
>
> yes.
> i forgot to add these ARCH.
> Because I am not having this Architecture at my end :-(
>
>>gcc -g -O2 -I../../include -g -Wall -I../../../../include >-Wall -O2 -W
>>rt_sigaction01.c -L../../../../lib -lltp -o rt_sigaction01
>>rt_sigaction01.c: In function 'set_handler':
>>rt_sigaction01.c:147: error: 'SIGSETSIZE' >undeclared .(first use in
>>this function)
>>rt_sigaction01.c:147: error: (Each undeclared >identifier is reported only once
>>rt_sigaction01.c:147: error: for each function it >appears in.)
>>make[4]: *** [rt_sigaction01] Error 1
>
>>I tried using sizeof(sigaction_t), but unfortunately the >results for
>>the testcase(s) on my system were always EINVAL. >This issue wasn't
>>present a few days ago...
>
>>Any ideas?
>
>
> I have made a patch to fix this issue please review the this temporary fix.
>
> In my previous mail I have stated that sigset size (size_t sigsetsize)
> will be different for Different ARCH. It is depending on
> _COMPAT_NSIG_WORDS Macro.
>
> We have to conform how its different with respect to ARCH and need to
> have a generic solution to fix this issue.
>
> I think its going to be an issue othere than __arm__ || __i386__ ||
> __powerpc__ || __amd64__ || __ia64__ and __mips__
>
> There are different ARCH are being used by our LTP developers.
>
> I’ll investigate this issue and come back with generic Solution to
> support most of the ARCH.
>
>
> please refer this  linux-2.6.30/include/linux/compat.h
>
> http://lxr.linux.no/linux+v2.6.30/include/linux/compat.h#L75
>
> #define _COMPAT_NSIG_WORDS      (_COMPAT_NSIG / _COMPAT_NSIG_BPW)
>
>  typedef struct {
>          compat_sigset_word      sig[_COMPAT_NSIG_WORDS];
>  } compat_sigset_t;
>
> Your suggestions are welcome ... :)

Naresh -- that looks good. Please see the other patch I submitted to
the list for another possible solution for all archs (I did that after
inspecting the headers you sent me :)..). It gets the app to compile
and run properly (minus a mysterious segfault in the first testcase,
associated with the realtime signal, 34).

I really wish there was a way to determine the value of the constants
without asm/compat.h and linux/compat.h :(...

-Garrett

gcooper@orangebox /scratch/ltp-vanilla/ltp $
/scratch/ltp-vanilla/ltp/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
rt_sigaction01    0  INFO  :  signal: 34
rt_sigaction01    1  PASS  :  rt_sigaction call succeeded: result = 0
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
Segmentation fault
gcooper@orangebox /scratch/ltp-vanilla/ltp $
/scratch/ltp-vanilla/ltp/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02    1  PASS  :  rt_sigaction02 failure with sig: 34 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02    2  PASS  :  rt_sigaction02 failure with sig: 34 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02    3  PASS  :  rt_sigaction02 failure with sig: 34 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02    4  PASS  :  rt_sigaction02 failure with sig: 34 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02    5  PASS  :  rt_sigaction02 failure with sig: 34 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02    6  PASS  :  rt_sigaction02 failure with sig: 35 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02    7  PASS  :  rt_sigaction02 failure with sig: 35 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02    8  PASS  :  rt_sigaction02 failure with sig: 35 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02    9  PASS  :  rt_sigaction02 failure with sig: 35 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   10  PASS  :  rt_sigaction02 failure with sig: 35 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   11  PASS  :  rt_sigaction02 failure with sig: 36 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   12  PASS  :  rt_sigaction02 failure with sig: 36 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   13  PASS  :  rt_sigaction02 failure with sig: 36 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   14  PASS  :  rt_sigaction02 failure with sig: 36 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   15  PASS  :  rt_sigaction02 failure with sig: 36 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   16  PASS  :  rt_sigaction02 failure with sig: 37 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   17  PASS  :  rt_sigaction02 failure with sig: 37 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   18  PASS  :  rt_sigaction02 failure with sig: 37 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   19  PASS  :  rt_sigaction02 failure with sig: 37 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   20  PASS  :  rt_sigaction02 failure with sig: 37 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   21  PASS  :  rt_sigaction02 failure with sig: 38 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   22  PASS  :  rt_sigaction02 failure with sig: 38 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   23  PASS  :  rt_sigaction02 failure with sig: 38 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   24  PASS  :  rt_sigaction02 failure with sig: 38 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   25  PASS  :  rt_sigaction02 failure with sig: 38 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   26  PASS  :  rt_sigaction02 failure with sig: 39 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   27  PASS  :  rt_sigaction02 failure with sig: 39 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   28  PASS  :  rt_sigaction02 failure with sig: 39 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   29  PASS  :  rt_sigaction02 failure with sig: 39 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   30  PASS  :  rt_sigaction02 failure with sig: 39 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   31  PASS  :  rt_sigaction02 failure with sig: 40 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   32  PASS  :  rt_sigaction02 failure with sig: 40 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   33  PASS  :  rt_sigaction02 failure with sig: 40 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   34  PASS  :  rt_sigaction02 failure with sig: 40 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   35  PASS  :  rt_sigaction02 failure with sig: 40 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   36  PASS  :  rt_sigaction02 failure with sig: 41 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   37  PASS  :  rt_sigaction02 failure with sig: 41 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   38  PASS  :  rt_sigaction02 failure with sig: 41 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   39  PASS  :  rt_sigaction02 failure with sig: 41 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   40  PASS  :  rt_sigaction02 failure with sig: 41 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   41  PASS  :  rt_sigaction02 failure with sig: 42 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   42  PASS  :  rt_sigaction02 failure with sig: 42 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   43  PASS  :  rt_sigaction02 failure with sig: 42 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   44  PASS  :  rt_sigaction02 failure with sig: 42 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   45  PASS  :  rt_sigaction02 failure with sig: 42 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   46  PASS  :  rt_sigaction02 failure with sig: 43 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   47  PASS  :  rt_sigaction02 failure with sig: 43 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   48  PASS  :  rt_sigaction02 failure with sig: 43 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   49  PASS  :  rt_sigaction02 failure with sig: 43 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   50  PASS  :  rt_sigaction02 failure with sig: 43 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   51  PASS  :  rt_sigaction02 failure with sig: 44 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   52  PASS  :  rt_sigaction02 failure with sig: 44 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   53  PASS  :  rt_sigaction02 failure with sig: 44 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   54  PASS  :  rt_sigaction02 failure with sig: 44 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   55  PASS  :  rt_sigaction02 failure with sig: 44 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   56  PASS  :  rt_sigaction02 failure with sig: 45 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   57  PASS  :  rt_sigaction02 failure with sig: 45 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   58  PASS  :  rt_sigaction02 failure with sig: 45 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   59  PASS  :  rt_sigaction02 failure with sig: 45 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   60  PASS  :  rt_sigaction02 failure with sig: 45 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   61  PASS  :  rt_sigaction02 failure with sig: 46 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   62  PASS  :  rt_sigaction02 failure with sig: 46 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   63  PASS  :  rt_sigaction02 failure with sig: 46 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   64  PASS  :  rt_sigaction02 failure with sig: 46 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   65  PASS  :  rt_sigaction02 failure with sig: 46 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   66  PASS  :  rt_sigaction02 failure with sig: 47 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   67  PASS  :  rt_sigaction02 failure with sig: 47 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   68  PASS  :  rt_sigaction02 failure with sig: 47 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   69  PASS  :  rt_sigaction02 failure with sig: 47 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   70  PASS  :  rt_sigaction02 failure with sig: 47 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   71  PASS  :  rt_sigaction02 failure with sig: 48 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   72  PASS  :  rt_sigaction02 failure with sig: 48 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   73  PASS  :  rt_sigaction02 failure with sig: 48 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   74  PASS  :  rt_sigaction02 failure with sig: 48 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   75  PASS  :  rt_sigaction02 failure with sig: 48 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   76  PASS  :  rt_sigaction02 failure with sig: 49 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   77  PASS  :  rt_sigaction02 failure with sig: 49 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   78  PASS  :  rt_sigaction02 failure with sig: 49 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   79  PASS  :  rt_sigaction02 failure with sig: 49 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   80  PASS  :  rt_sigaction02 failure with sig: 49 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   81  PASS  :  rt_sigaction02 failure with sig: 50 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   82  PASS  :  rt_sigaction02 failure with sig: 50 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   83  PASS  :  rt_sigaction02 failure with sig: 50 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   84  PASS  :  rt_sigaction02 failure with sig: 50 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   85  PASS  :  rt_sigaction02 failure with sig: 50 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   86  PASS  :  rt_sigaction02 failure with sig: 51 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   87  PASS  :  rt_sigaction02 failure with sig: 51 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   88  PASS  :  rt_sigaction02 failure with sig: 51 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   89  PASS  :  rt_sigaction02 failure with sig: 51 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   90  PASS  :  rt_sigaction02 failure with sig: 51 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   91  PASS  :  rt_sigaction02 failure with sig: 52 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   92  PASS  :  rt_sigaction02 failure with sig: 52 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   93  PASS  :  rt_sigaction02 failure with sig: 52 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   94  PASS  :  rt_sigaction02 failure with sig: 52 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02   95  PASS  :  rt_sigaction02 failure with sig: 52 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   96  PASS  :  rt_sigaction02 failure with sig: 53 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02   97  PASS  :  rt_sigaction02 failure with sig: 53 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   98  PASS  :  rt_sigaction02 failure with sig: 53 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02   99  PASS  :  rt_sigaction02 failure with sig: 53 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  100  PASS  :  rt_sigaction02 failure with sig: 53 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  101  PASS  :  rt_sigaction02 failure with sig: 54 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  102  PASS  :  rt_sigaction02 failure with sig: 54 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  103  PASS  :  rt_sigaction02 failure with sig: 54 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  104  PASS  :  rt_sigaction02 failure with sig: 54 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  105  PASS  :  rt_sigaction02 failure with sig: 54 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  106  PASS  :  rt_sigaction02 failure with sig: 55 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  107  PASS  :  rt_sigaction02 failure with sig: 55 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  108  PASS  :  rt_sigaction02 failure with sig: 55 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  109  PASS  :  rt_sigaction02 failure with sig: 55 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  110  PASS  :  rt_sigaction02 failure with sig: 55 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  111  PASS  :  rt_sigaction02 failure with sig: 56 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  112  PASS  :  rt_sigaction02 failure with sig: 56 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  113  PASS  :  rt_sigaction02 failure with sig: 56 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  114  PASS  :  rt_sigaction02 failure with sig: 56 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  115  PASS  :  rt_sigaction02 failure with sig: 56 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  116  PASS  :  rt_sigaction02 failure with sig: 57 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  117  PASS  :  rt_sigaction02 failure with sig: 57 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  118  PASS  :  rt_sigaction02 failure with sig: 57 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  119  PASS  :  rt_sigaction02 failure with sig: 57 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  120  PASS  :  rt_sigaction02 failure with sig: 57 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  121  PASS  :  rt_sigaction02 failure with sig: 58 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  122  PASS  :  rt_sigaction02 failure with sig: 58 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  123  PASS  :  rt_sigaction02 failure with sig: 58 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  124  PASS  :  rt_sigaction02 failure with sig: 58 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  125  PASS  :  rt_sigaction02 failure with sig: 58 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  126  PASS  :  rt_sigaction02 failure with sig: 59 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  127  PASS  :  rt_sigaction02 failure with sig: 59 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  128  PASS  :  rt_sigaction02 failure with sig: 59 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  129  PASS  :  rt_sigaction02 failure with sig: 59 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  130  PASS  :  rt_sigaction02 failure with sig: 59 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  131  PASS  :  rt_sigaction02 failure with sig: 60 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  132  PASS  :  rt_sigaction02 failure with sig: 60 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  133  PASS  :  rt_sigaction02 failure with sig: 60 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  134  PASS  :  rt_sigaction02 failure with sig: 60 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  135  PASS  :  rt_sigaction02 failure with sig: 60 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  136  PASS  :  rt_sigaction02 failure with sig: 61 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  137  PASS  :  rt_sigaction02 failure with sig: 61 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  138  PASS  :  rt_sigaction02 failure with sig: 61 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  139  PASS  :  rt_sigaction02 failure with sig: 61 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  140  PASS  :  rt_sigaction02 failure with sig: 61 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  141  PASS  :  rt_sigaction02 failure with sig: 62 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  142  PASS  :  rt_sigaction02 failure with sig: 62 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  143  PASS  :  rt_sigaction02 failure with sig: 62 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  144  PASS  :  rt_sigaction02 failure with sig: 62 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
rt_sigaction02  145  PASS  :  rt_sigaction02 failure with sig: 62 as
expected errno  = EFAULT : Bad address

rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
rt_sigaction02  146  PASS  :  rt_sigaction02 failure with sig: 63 as
expected errno  = EFAULT : Bad address
rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
rt_sigaction02  147  PASS  :  rt_sigaction02 failure with sig: 63 as
expected errno  = EFAULT : Bad address
gcooper@orangebox /scratch/ltp-vanilla/ltp $ gdb
testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu"...
(gdb) r
Starting program:
/scratch/ltp-vanilla/ltp/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
rt_sigaction01    0  INFO  :  signal: 34
rt_sigaction01    1  PASS  :  rt_sigaction call succeeded: result = 0
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO

Program received signal SIG34, Real-time event 34.
0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
(gdb) where
#0  0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
#1  0x0000000000401c3e in main ()
(gdb)

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-07 16:44     ` Garrett Cooper
@ 2009-07-07 17:21       ` naresh kamboju
  2009-07-07 17:26       ` naresh kamboju
  1 sibling, 0 replies; 10+ messages in thread
From: naresh kamboju @ 2009-07-07 17:21 UTC (permalink / raw)
  To: Garrett Cooper
  Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

[-- Attachment #1: Type: text/plain, Size: 30825 bytes --]

Thanks for your Investigation Garrett :-)
For your information I am sharing the results logs of rt_sigaction01.c on X86.
I have attached and below.

Best regards,
Naresh Kamboju


On Tue, Jul 7, 2009 at 10:14 PM, Garrett Cooper<yanegomi@gmail.com> wrote:
> On Tue, Jul 7, 2009 at 4:52 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
>> Hi Garrett Cooper,
>>
>> Thanks for your info.
>>
>>>Oops... looks like someone forgot __amd64__ / >__ia64__:
>>
>> yes.
>> i forgot to add these ARCH.
>> Because I am not having this Architecture at my end :-(
>>
>>>gcc -g -O2 -I../../include -g -Wall -I../../../../include >-Wall -O2 -W
>>>rt_sigaction01.c -L../../../../lib -lltp -o rt_sigaction01
>>>rt_sigaction01.c: In function 'set_handler':
>>>rt_sigaction01.c:147: error: 'SIGSETSIZE' >undeclared .(first use in
>>>this function)
>>>rt_sigaction01.c:147: error: (Each undeclared >identifier is reported only once
>>>rt_sigaction01.c:147: error: for each function it >appears in.)
>>>make[4]: *** [rt_sigaction01] Error 1
>>
>>>I tried using sizeof(sigaction_t), but unfortunately the >results for
>>>the testcase(s) on my system were always EINVAL. >This issue wasn't
>>>present a few days ago...
>>
>>>Any ideas?
>>
>>
>> I have made a patch to fix this issue please review the this temporary fix.
>>
>> In my previous mail I have stated that sigset size (size_t sigsetsize)
>> will be different for Different ARCH. It is depending on
>> _COMPAT_NSIG_WORDS Macro.
>>
>> We have to conform how its different with respect to ARCH and need to
>> have a generic solution to fix this issue.
>>
>> I think its going to be an issue othere than __arm__ || __i386__ ||
>> __powerpc__ || __amd64__ || __ia64__ and __mips__
>>
>> There are different ARCH are being used by our LTP developers.
>>
>> I’ll investigate this issue and come back with generic Solution to
>> support most of the ARCH.
>>
>>
>> please refer this  linux-2.6.30/include/linux/compat.h
>>
>> http://lxr.linux.no/linux+v2.6.30/include/linux/compat.h#L75
>>
>> #define _COMPAT_NSIG_WORDS      (_COMPAT_NSIG / _COMPAT_NSIG_BPW)
>>
>>  typedef struct {
>>          compat_sigset_word      sig[_COMPAT_NSIG_WORDS];
>>  } compat_sigset_t;
>>
>> Your suggestions are welcome ... :)
>
> Naresh -- that looks good. Please see the other patch I submitted to
> the list for another possible solution for all archs (I did that after
> inspecting the headers you sent me :)..). It gets the app to compile
> and run properly (minus a mysterious segfault in the first testcase,
> associated with the realtime signal, 34).
>
> I really wish there was a way to determine the value of the constants
> without asm/compat.h and linux/compat.h :(...
>
> -Garrett
>
> gcooper@orangebox /scratch/ltp-vanilla/ltp $
> /scratch/ltp-vanilla/ltp/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
> rt_sigaction01    0  INFO  :  signal: 34
> rt_sigaction01    1  PASS  :  rt_sigaction call succeeded: result = 0
> rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> Segmentation fault
> gcooper@orangebox /scratch/ltp-vanilla/ltp $
> /scratch/ltp-vanilla/ltp/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02    1  PASS  :  rt_sigaction02 failure with sig: 34 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02    2  PASS  :  rt_sigaction02 failure with sig: 34 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02    3  PASS  :  rt_sigaction02 failure with sig: 34 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02    4  PASS  :  rt_sigaction02 failure with sig: 34 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02    5  PASS  :  rt_sigaction02 failure with sig: 34 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02    6  PASS  :  rt_sigaction02 failure with sig: 35 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02    7  PASS  :  rt_sigaction02 failure with sig: 35 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02    8  PASS  :  rt_sigaction02 failure with sig: 35 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02    9  PASS  :  rt_sigaction02 failure with sig: 35 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   10  PASS  :  rt_sigaction02 failure with sig: 35 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   11  PASS  :  rt_sigaction02 failure with sig: 36 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   12  PASS  :  rt_sigaction02 failure with sig: 36 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   13  PASS  :  rt_sigaction02 failure with sig: 36 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   14  PASS  :  rt_sigaction02 failure with sig: 36 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   15  PASS  :  rt_sigaction02 failure with sig: 36 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   16  PASS  :  rt_sigaction02 failure with sig: 37 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   17  PASS  :  rt_sigaction02 failure with sig: 37 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   18  PASS  :  rt_sigaction02 failure with sig: 37 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   19  PASS  :  rt_sigaction02 failure with sig: 37 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   20  PASS  :  rt_sigaction02 failure with sig: 37 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   21  PASS  :  rt_sigaction02 failure with sig: 38 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   22  PASS  :  rt_sigaction02 failure with sig: 38 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   23  PASS  :  rt_sigaction02 failure with sig: 38 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   24  PASS  :  rt_sigaction02 failure with sig: 38 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   25  PASS  :  rt_sigaction02 failure with sig: 38 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   26  PASS  :  rt_sigaction02 failure with sig: 39 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   27  PASS  :  rt_sigaction02 failure with sig: 39 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   28  PASS  :  rt_sigaction02 failure with sig: 39 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   29  PASS  :  rt_sigaction02 failure with sig: 39 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   30  PASS  :  rt_sigaction02 failure with sig: 39 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   31  PASS  :  rt_sigaction02 failure with sig: 40 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   32  PASS  :  rt_sigaction02 failure with sig: 40 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   33  PASS  :  rt_sigaction02 failure with sig: 40 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   34  PASS  :  rt_sigaction02 failure with sig: 40 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   35  PASS  :  rt_sigaction02 failure with sig: 40 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   36  PASS  :  rt_sigaction02 failure with sig: 41 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   37  PASS  :  rt_sigaction02 failure with sig: 41 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   38  PASS  :  rt_sigaction02 failure with sig: 41 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   39  PASS  :  rt_sigaction02 failure with sig: 41 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   40  PASS  :  rt_sigaction02 failure with sig: 41 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   41  PASS  :  rt_sigaction02 failure with sig: 42 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   42  PASS  :  rt_sigaction02 failure with sig: 42 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   43  PASS  :  rt_sigaction02 failure with sig: 42 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   44  PASS  :  rt_sigaction02 failure with sig: 42 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   45  PASS  :  rt_sigaction02 failure with sig: 42 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   46  PASS  :  rt_sigaction02 failure with sig: 43 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   47  PASS  :  rt_sigaction02 failure with sig: 43 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   48  PASS  :  rt_sigaction02 failure with sig: 43 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   49  PASS  :  rt_sigaction02 failure with sig: 43 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   50  PASS  :  rt_sigaction02 failure with sig: 43 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   51  PASS  :  rt_sigaction02 failure with sig: 44 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   52  PASS  :  rt_sigaction02 failure with sig: 44 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   53  PASS  :  rt_sigaction02 failure with sig: 44 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   54  PASS  :  rt_sigaction02 failure with sig: 44 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   55  PASS  :  rt_sigaction02 failure with sig: 44 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   56  PASS  :  rt_sigaction02 failure with sig: 45 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   57  PASS  :  rt_sigaction02 failure with sig: 45 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   58  PASS  :  rt_sigaction02 failure with sig: 45 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   59  PASS  :  rt_sigaction02 failure with sig: 45 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   60  PASS  :  rt_sigaction02 failure with sig: 45 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   61  PASS  :  rt_sigaction02 failure with sig: 46 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   62  PASS  :  rt_sigaction02 failure with sig: 46 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   63  PASS  :  rt_sigaction02 failure with sig: 46 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   64  PASS  :  rt_sigaction02 failure with sig: 46 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   65  PASS  :  rt_sigaction02 failure with sig: 46 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   66  PASS  :  rt_sigaction02 failure with sig: 47 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   67  PASS  :  rt_sigaction02 failure with sig: 47 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   68  PASS  :  rt_sigaction02 failure with sig: 47 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   69  PASS  :  rt_sigaction02 failure with sig: 47 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   70  PASS  :  rt_sigaction02 failure with sig: 47 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   71  PASS  :  rt_sigaction02 failure with sig: 48 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   72  PASS  :  rt_sigaction02 failure with sig: 48 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   73  PASS  :  rt_sigaction02 failure with sig: 48 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   74  PASS  :  rt_sigaction02 failure with sig: 48 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   75  PASS  :  rt_sigaction02 failure with sig: 48 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   76  PASS  :  rt_sigaction02 failure with sig: 49 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   77  PASS  :  rt_sigaction02 failure with sig: 49 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   78  PASS  :  rt_sigaction02 failure with sig: 49 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   79  PASS  :  rt_sigaction02 failure with sig: 49 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   80  PASS  :  rt_sigaction02 failure with sig: 49 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   81  PASS  :  rt_sigaction02 failure with sig: 50 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   82  PASS  :  rt_sigaction02 failure with sig: 50 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   83  PASS  :  rt_sigaction02 failure with sig: 50 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   84  PASS  :  rt_sigaction02 failure with sig: 50 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   85  PASS  :  rt_sigaction02 failure with sig: 50 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   86  PASS  :  rt_sigaction02 failure with sig: 51 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   87  PASS  :  rt_sigaction02 failure with sig: 51 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   88  PASS  :  rt_sigaction02 failure with sig: 51 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   89  PASS  :  rt_sigaction02 failure with sig: 51 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   90  PASS  :  rt_sigaction02 failure with sig: 51 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   91  PASS  :  rt_sigaction02 failure with sig: 52 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   92  PASS  :  rt_sigaction02 failure with sig: 52 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   93  PASS  :  rt_sigaction02 failure with sig: 52 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   94  PASS  :  rt_sigaction02 failure with sig: 52 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   95  PASS  :  rt_sigaction02 failure with sig: 52 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   96  PASS  :  rt_sigaction02 failure with sig: 53 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   97  PASS  :  rt_sigaction02 failure with sig: 53 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   98  PASS  :  rt_sigaction02 failure with sig: 53 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   99  PASS  :  rt_sigaction02 failure with sig: 53 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  100  PASS  :  rt_sigaction02 failure with sig: 53 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  101  PASS  :  rt_sigaction02 failure with sig: 54 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  102  PASS  :  rt_sigaction02 failure with sig: 54 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  103  PASS  :  rt_sigaction02 failure with sig: 54 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  104  PASS  :  rt_sigaction02 failure with sig: 54 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  105  PASS  :  rt_sigaction02 failure with sig: 54 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  106  PASS  :  rt_sigaction02 failure with sig: 55 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  107  PASS  :  rt_sigaction02 failure with sig: 55 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  108  PASS  :  rt_sigaction02 failure with sig: 55 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  109  PASS  :  rt_sigaction02 failure with sig: 55 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  110  PASS  :  rt_sigaction02 failure with sig: 55 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  111  PASS  :  rt_sigaction02 failure with sig: 56 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  112  PASS  :  rt_sigaction02 failure with sig: 56 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  113  PASS  :  rt_sigaction02 failure with sig: 56 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  114  PASS  :  rt_sigaction02 failure with sig: 56 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  115  PASS  :  rt_sigaction02 failure with sig: 56 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  116  PASS  :  rt_sigaction02 failure with sig: 57 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  117  PASS  :  rt_sigaction02 failure with sig: 57 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  118  PASS  :  rt_sigaction02 failure with sig: 57 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  119  PASS  :  rt_sigaction02 failure with sig: 57 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  120  PASS  :  rt_sigaction02 failure with sig: 57 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  121  PASS  :  rt_sigaction02 failure with sig: 58 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  122  PASS  :  rt_sigaction02 failure with sig: 58 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  123  PASS  :  rt_sigaction02 failure with sig: 58 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  124  PASS  :  rt_sigaction02 failure with sig: 58 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  125  PASS  :  rt_sigaction02 failure with sig: 58 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  126  PASS  :  rt_sigaction02 failure with sig: 59 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  127  PASS  :  rt_sigaction02 failure with sig: 59 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  128  PASS  :  rt_sigaction02 failure with sig: 59 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  129  PASS  :  rt_sigaction02 failure with sig: 59 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  130  PASS  :  rt_sigaction02 failure with sig: 59 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  131  PASS  :  rt_sigaction02 failure with sig: 60 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  132  PASS  :  rt_sigaction02 failure with sig: 60 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  133  PASS  :  rt_sigaction02 failure with sig: 60 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  134  PASS  :  rt_sigaction02 failure with sig: 60 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  135  PASS  :  rt_sigaction02 failure with sig: 60 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  136  PASS  :  rt_sigaction02 failure with sig: 61 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  137  PASS  :  rt_sigaction02 failure with sig: 61 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  138  PASS  :  rt_sigaction02 failure with sig: 61 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  139  PASS  :  rt_sigaction02 failure with sig: 61 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  140  PASS  :  rt_sigaction02 failure with sig: 61 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  141  PASS  :  rt_sigaction02 failure with sig: 62 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  142  PASS  :  rt_sigaction02 failure with sig: 62 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  143  PASS  :  rt_sigaction02 failure with sig: 62 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  144  PASS  :  rt_sigaction02 failure with sig: 62 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02  145  PASS  :  rt_sigaction02 failure with sig: 62 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02  146  PASS  :  rt_sigaction02 failure with sig: 63 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02  147  PASS  :  rt_sigaction02 failure with sig: 63 as
> expected errno  = EFAULT : Bad address
> gcooper@orangebox /scratch/ltp-vanilla/ltp $ gdb
> testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
> GNU gdb 6.8
> Copyright (C) 2008 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-pc-linux-gnu"...
> (gdb) r
> Starting program:
> /scratch/ltp-vanilla/ltp/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
> rt_sigaction01    0  INFO  :  signal: 34
> rt_sigaction01    1  PASS  :  rt_sigaction call succeeded: result = 0
> rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
>
> Program received signal SIG34, Real-time event 34.
> 0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
> (gdb) where
> #0  0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
> #1  0x0000000000401c3e in main ()
> (gdb)
>

[-- Attachment #2: rt_sigaction01_results.log --]
[-- Type: application/octet-stream, Size: 39091 bytes --]

rt_sigaction01    0  INFO  :  signal: 34 
rt_sigaction01    1  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 34

rt_sigaction01    0  INFO  :  signal: 34 
rt_sigaction01    2  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 34

rt_sigaction01    0  INFO  :  signal: 34 
rt_sigaction01    3  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 34

rt_sigaction01    0  INFO  :  signal: 34 
rt_sigaction01    4  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 34

rt_sigaction01    0  INFO  :  signal: 34 
rt_sigaction01    5  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 34


rt_sigaction01    0  INFO  :  signal: 35 
rt_sigaction01    6  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 35

rt_sigaction01    0  INFO  :  signal: 35 
rt_sigaction01    7  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 35

rt_sigaction01    0  INFO  :  signal: 35 
rt_sigaction01    8  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 35

rt_sigaction01    0  INFO  :  signal: 35 
rt_sigaction01    9  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 35

rt_sigaction01    0  INFO  :  signal: 35 
rt_sigaction01   10  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 35


rt_sigaction01    0  INFO  :  signal: 36 
rt_sigaction01   11  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 36

rt_sigaction01    0  INFO  :  signal: 36 
rt_sigaction01   12  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 36

rt_sigaction01    0  INFO  :  signal: 36 
rt_sigaction01   13  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 36

rt_sigaction01    0  INFO  :  signal: 36 
rt_sigaction01   14  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 36

rt_sigaction01    0  INFO  :  signal: 36 
rt_sigaction01   15  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 36


rt_sigaction01    0  INFO  :  signal: 37 
rt_sigaction01   16  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 37

rt_sigaction01    0  INFO  :  signal: 37 
rt_sigaction01   17  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 37

rt_sigaction01    0  INFO  :  signal: 37 
rt_sigaction01   18  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 37

rt_sigaction01    0  INFO  :  signal: 37 
rt_sigaction01   19  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 37

rt_sigaction01    0  INFO  :  signal: 37 
rt_sigaction01   20  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 37


rt_sigaction01    0  INFO  :  signal: 38 
rt_sigaction01   21  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 38

rt_sigaction01    0  INFO  :  signal: 38 
rt_sigaction01   22  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 38

rt_sigaction01    0  INFO  :  signal: 38 
rt_sigaction01   23  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 38

rt_sigaction01    0  INFO  :  signal: 38 
rt_sigaction01   24  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 38

rt_sigaction01    0  INFO  :  signal: 38 
rt_sigaction01   25  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 38


rt_sigaction01    0  INFO  :  signal: 39 
rt_sigaction01   26  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 39

rt_sigaction01    0  INFO  :  signal: 39 
rt_sigaction01   27  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 39

rt_sigaction01    0  INFO  :  signal: 39 
rt_sigaction01   28  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 39

rt_sigaction01    0  INFO  :  signal: 39 
rt_sigaction01   29  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 39

rt_sigaction01    0  INFO  :  signal: 39 
rt_sigaction01   30  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 39


rt_sigaction01    0  INFO  :  signal: 40 
rt_sigaction01   31  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 40

rt_sigaction01    0  INFO  :  signal: 40 
rt_sigaction01   32  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 40

rt_sigaction01    0  INFO  :  signal: 40 
rt_sigaction01   33  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 40

rt_sigaction01    0  INFO  :  signal: 40 
rt_sigaction01   34  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 40

rt_sigaction01    0  INFO  :  signal: 40 
rt_sigaction01   35  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 40


rt_sigaction01    0  INFO  :  signal: 41 
rt_sigaction01   36  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 41

rt_sigaction01    0  INFO  :  signal: 41 
rt_sigaction01   37  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 41

rt_sigaction01    0  INFO  :  signal: 41 
rt_sigaction01   38  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 41

rt_sigaction01    0  INFO  :  signal: 41 
rt_sigaction01   39  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 41

rt_sigaction01    0  INFO  :  signal: 41 
rt_sigaction01   40  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 41


rt_sigaction01    0  INFO  :  signal: 42 
rt_sigaction01   41  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 42

rt_sigaction01    0  INFO  :  signal: 42 
rt_sigaction01   42  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 42

rt_sigaction01    0  INFO  :  signal: 42 
rt_sigaction01   43  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 42

rt_sigaction01    0  INFO  :  signal: 42 
rt_sigaction01   44  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 42

rt_sigaction01    0  INFO  :  signal: 42 
rt_sigaction01   45  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 42


rt_sigaction01    0  INFO  :  signal: 43 
rt_sigaction01   46  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 43

rt_sigaction01    0  INFO  :  signal: 43 
rt_sigaction01   47  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 43

rt_sigaction01    0  INFO  :  signal: 43 
rt_sigaction01   48  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 43

rt_sigaction01    0  INFO  :  signal: 43 
rt_sigaction01   49  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 43

rt_sigaction01    0  INFO  :  signal: 43 
rt_sigaction01   50  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 43


rt_sigaction01    0  INFO  :  signal: 44 
rt_sigaction01   51  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 44

rt_sigaction01    0  INFO  :  signal: 44 
rt_sigaction01   52  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 44

rt_sigaction01    0  INFO  :  signal: 44 
rt_sigaction01   53  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 44

rt_sigaction01    0  INFO  :  signal: 44 
rt_sigaction01   54  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 44

rt_sigaction01    0  INFO  :  signal: 44 
rt_sigaction01   55  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 44


rt_sigaction01    0  INFO  :  signal: 45 
rt_sigaction01   56  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 45

rt_sigaction01    0  INFO  :  signal: 45 
rt_sigaction01   57  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 45

rt_sigaction01    0  INFO  :  signal: 45 
rt_sigaction01   58  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 45

rt_sigaction01    0  INFO  :  signal: 45 
rt_sigaction01   59  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 45

rt_sigaction01    0  INFO  :  signal: 45 
rt_sigaction01   60  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 45


rt_sigaction01    0  INFO  :  signal: 46 
rt_sigaction01   61  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 46

rt_sigaction01    0  INFO  :  signal: 46 
rt_sigaction01   62  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 46

rt_sigaction01    0  INFO  :  signal: 46 
rt_sigaction01   63  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 46

rt_sigaction01    0  INFO  :  signal: 46 
rt_sigaction01   64  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 46

rt_sigaction01    0  INFO  :  signal: 46 
rt_sigaction01   65  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 46


rt_sigaction01    0  INFO  :  signal: 47 
rt_sigaction01   66  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 47

rt_sigaction01    0  INFO  :  signal: 47 
rt_sigaction01   67  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 47

rt_sigaction01    0  INFO  :  signal: 47 
rt_sigaction01   68  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 47

rt_sigaction01    0  INFO  :  signal: 47 
rt_sigaction01   69  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 47

rt_sigaction01    0  INFO  :  signal: 47 
rt_sigaction01   70  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 47


rt_sigaction01    0  INFO  :  signal: 48 
rt_sigaction01   71  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 48

rt_sigaction01    0  INFO  :  signal: 48 
rt_sigaction01   72  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 48

rt_sigaction01    0  INFO  :  signal: 48 
rt_sigaction01   73  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 48

rt_sigaction01    0  INFO  :  signal: 48 
rt_sigaction01   74  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 48

rt_sigaction01    0  INFO  :  signal: 48 
rt_sigaction01   75  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 48


rt_sigaction01    0  INFO  :  signal: 49 
rt_sigaction01   76  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 49

rt_sigaction01    0  INFO  :  signal: 49 
rt_sigaction01   77  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 49

rt_sigaction01    0  INFO  :  signal: 49 
rt_sigaction01   78  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 49

rt_sigaction01    0  INFO  :  signal: 49 
rt_sigaction01   79  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 49

rt_sigaction01    0  INFO  :  signal: 49 
rt_sigaction01   80  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 49


rt_sigaction01    0  INFO  :  signal: 50 
rt_sigaction01   81  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 50

rt_sigaction01    0  INFO  :  signal: 50 
rt_sigaction01   82  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 50

rt_sigaction01    0  INFO  :  signal: 50 
rt_sigaction01   83  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 50

rt_sigaction01    0  INFO  :  signal: 50 
rt_sigaction01   84  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 50

rt_sigaction01    0  INFO  :  signal: 50 
rt_sigaction01   85  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 50


rt_sigaction01    0  INFO  :  signal: 51 
rt_sigaction01   86  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 51

rt_sigaction01    0  INFO  :  signal: 51 
rt_sigaction01   87  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 51

rt_sigaction01    0  INFO  :  signal: 51 
rt_sigaction01   88  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 51

rt_sigaction01    0  INFO  :  signal: 51 
rt_sigaction01   89  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 51

rt_sigaction01    0  INFO  :  signal: 51 
rt_sigaction01   90  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 51


rt_sigaction01    0  INFO  :  signal: 52 
rt_sigaction01   91  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 52

rt_sigaction01    0  INFO  :  signal: 52 
rt_sigaction01   92  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 52

rt_sigaction01    0  INFO  :  signal: 52 
rt_sigaction01   93  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 52

rt_sigaction01    0  INFO  :  signal: 52 
rt_sigaction01   94  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 52

rt_sigaction01    0  INFO  :  signal: 52 
rt_sigaction01   95  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 52


rt_sigaction01    0  INFO  :  signal: 53 
rt_sigaction01   96  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 53

rt_sigaction01    0  INFO  :  signal: 53 
rt_sigaction01   97  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 53

rt_sigaction01    0  INFO  :  signal: 53 
rt_sigaction01   98  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 53

rt_sigaction01    0  INFO  :  signal: 53 
rt_sigaction01   99  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 53

rt_sigaction01    0  INFO  :  signal: 53 
rt_sigaction01  100  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 53


rt_sigaction01    0  INFO  :  signal: 54 
rt_sigaction01  101  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 54

rt_sigaction01    0  INFO  :  signal: 54 
rt_sigaction01  102  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 54

rt_sigaction01    0  INFO  :  signal: 54 
rt_sigaction01  103  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 54

rt_sigaction01    0  INFO  :  signal: 54 
rt_sigaction01  104  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 54

rt_sigaction01    0  INFO  :  signal: 54 
rt_sigaction01  105  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 54


rt_sigaction01    0  INFO  :  signal: 55 
rt_sigaction01  106  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 55

rt_sigaction01    0  INFO  :  signal: 55 
rt_sigaction01  107  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 55

rt_sigaction01    0  INFO  :  signal: 55 
rt_sigaction01  108  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 55

rt_sigaction01    0  INFO  :  signal: 55 
rt_sigaction01  109  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 55

rt_sigaction01    0  INFO  :  signal: 55 
rt_sigaction01  110  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 55


rt_sigaction01    0  INFO  :  signal: 56 
rt_sigaction01  111  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 56

rt_sigaction01    0  INFO  :  signal: 56 
rt_sigaction01  112  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 56

rt_sigaction01    0  INFO  :  signal: 56 
rt_sigaction01  113  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 56

rt_sigaction01    0  INFO  :  signal: 56 
rt_sigaction01  114  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 56

rt_sigaction01    0  INFO  :  signal: 56 
rt_sigaction01  115  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 56


rt_sigaction01    0  INFO  :  signal: 57 
rt_sigaction01  116  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 57

rt_sigaction01    0  INFO  :  signal: 57 
rt_sigaction01  117  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 57

rt_sigaction01    0  INFO  :  signal: 57 
rt_sigaction01  118  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 57

rt_sigaction01    0  INFO  :  signal: 57 
rt_sigaction01  119  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 57

rt_sigaction01    0  INFO  :  signal: 57 
rt_sigaction01  120  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 57


rt_sigaction01    0  INFO  :  signal: 58 
rt_sigaction01  121  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 58

rt_sigaction01    0  INFO  :  signal: 58 
rt_sigaction01  122  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 58

rt_sigaction01    0  INFO  :  signal: 58 
rt_sigaction01  123  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 58

rt_sigaction01    0  INFO  :  signal: 58 
rt_sigaction01  124  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 58

rt_sigaction01    0  INFO  :  signal: 58 
rt_sigaction01  125  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 58


rt_sigaction01    0  INFO  :  signal: 59 
rt_sigaction01  126  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 59

rt_sigaction01    0  INFO  :  signal: 59 
rt_sigaction01  127  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 59

rt_sigaction01    0  INFO  :  signal: 59 
rt_sigaction01  128  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 59

rt_sigaction01    0  INFO  :  signal: 59 
rt_sigaction01  129  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 59

rt_sigaction01    0  INFO  :  signal: 59 
rt_sigaction01  130  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 59


rt_sigaction01    0  INFO  :  signal: 60 
rt_sigaction01  131  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 60

rt_sigaction01    0  INFO  :  signal: 60 
rt_sigaction01  132  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 60

rt_sigaction01    0  INFO  :  signal: 60 
rt_sigaction01  133  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 60

rt_sigaction01    0  INFO  :  signal: 60 
rt_sigaction01  134  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 60

rt_sigaction01    0  INFO  :  signal: 60 
rt_sigaction01  135  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 60


rt_sigaction01    0  INFO  :  signal: 61 
rt_sigaction01  136  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 61

rt_sigaction01    0  INFO  :  signal: 61 
rt_sigaction01  137  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 61

rt_sigaction01    0  INFO  :  signal: 61 
rt_sigaction01  138  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 61

rt_sigaction01    0  INFO  :  signal: 61 
rt_sigaction01  139  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 61

rt_sigaction01    0  INFO  :  signal: 61 
rt_sigaction01  140  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 61


rt_sigaction01    0  INFO  :  signal: 62 
rt_sigaction01  141  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 62

rt_sigaction01    0  INFO  :  signal: 62 
rt_sigaction01  142  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 62

rt_sigaction01    0  INFO  :  signal: 62 
rt_sigaction01  143  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 62

rt_sigaction01    0  INFO  :  signal: 62 
rt_sigaction01  144  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 62

rt_sigaction01    0  INFO  :  signal: 62 
rt_sigaction01  145  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 62


rt_sigaction01    0  INFO  :  signal: 63 
rt_sigaction01  146  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 63

rt_sigaction01    0  INFO  :  signal: 63 
rt_sigaction01  147  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 63

rt_sigaction01    0  INFO  :  signal: 63 
rt_sigaction01  148  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 63

rt_sigaction01    0  INFO  :  signal: 63 
rt_sigaction01  149  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 63

rt_sigaction01    0  INFO  :  signal: 63 
rt_sigaction01  150  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 63


rt_sigaction01    0  INFO  :  signal: 64 
rt_sigaction01  151  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 64

rt_sigaction01    0  INFO  :  signal: 64 
rt_sigaction01  152  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 64

rt_sigaction01    0  INFO  :  signal: 64 
rt_sigaction01  153  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 64

rt_sigaction01    0  INFO  :  signal: 64 
rt_sigaction01  154  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 64

rt_sigaction01    0  INFO  :  signal: 64 
rt_sigaction01  155  PASS  :  rt_sigaction call succeeded: result = 0 
rt_sigaction01    0  INFO  :  sa.sa_flags = SA_NOMASK 
rt_sigaction01    0  INFO  :  Signal Handler Called with signal number 64



[-- Attachment #3: Type: text/plain, Size: 390 bytes --]

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]

_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-07 16:44     ` Garrett Cooper
  2009-07-07 17:21       ` naresh kamboju
@ 2009-07-07 17:26       ` naresh kamboju
  2009-07-07 23:59         ` Garrett Cooper
  1 sibling, 1 reply; 10+ messages in thread
From: naresh kamboju @ 2009-07-07 17:26 UTC (permalink / raw)
  To: Garrett Cooper
  Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

Garrett,

On Tue, Jul 7, 2009 at 10:14 PM, Garrett Cooper<yanegomi@gmail.com> wrote:
> On Tue, Jul 7, 2009 at 4:52 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
>> Hi Garrett Cooper,
>>
>> Thanks for your info.

> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
> rt_sigaction02   15  PASS  :  rt_sigaction02 failure with sig: 36 as
> expected errno  = EFAULT : Bad address
>
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
> rt_sigaction02   16  PASS  :  rt_sigaction02 failure with sig: 37 as
> expected errno  = EFAULT : Bad address
> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
> rt_sigaction02   17  PASS  :  rt_sigaction02 failure with sig: 37 3 as
> expected errno  = EFAULT : Bad address
> gcooper@orangebox /scratch/ltp-vanilla/ltp $ gdb
> testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
> GNU gdb 6.8
> Copyright (C) 2008 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-pc-linux-gnu"...
> (gdb) r
> Starting program:
> /scratch/ltp-vanilla/ltp/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
> rt_sigaction01    0  INFO  :  signal: 34
> rt_sigaction01    1  PASS  :  rt_sigaction call succeeded: result = 0
> rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
>
> Program received signal SIG34, Real-time event 34.
> 0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
> (gdb) where
> #0  0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
> #1  0x0000000000401c3e in main ()
> (gdb)
>

 /lib/libc.so.6 :

This could be issue with glibc.
Are you using 2.9 glibc?

please Investigate.

Best regards,
Naresh Kamboju

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have 
the opportunity to enter the BlackBerry Developer Challenge. See full prize 
details at: http://p.sf.net/sfu/blackberry
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-07 17:26       ` naresh kamboju
@ 2009-07-07 23:59         ` Garrett Cooper
  2009-07-09 14:38           ` naresh kamboju
  0 siblings, 1 reply; 10+ messages in thread
From: Garrett Cooper @ 2009-07-07 23:59 UTC (permalink / raw)
  To: naresh kamboju
  Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

On Tue, Jul 7, 2009 at 10:26 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
> Garrett,
>
> On Tue, Jul 7, 2009 at 10:14 PM, Garrett Cooper<yanegomi@gmail.com> wrote:
>> On Tue, Jul 7, 2009 at 4:52 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
>>> Hi Garrett Cooper,
>>>
>>> Thanks for your info.
>
>> expected errno  = EFAULT : Bad address
>> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_NOMASK
>> rt_sigaction02   15  PASS  :  rt_sigaction02 failure with sig: 36 as
>> expected errno  = EFAULT : Bad address
>>
>> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
>> rt_sigaction02   16  PASS  :  rt_sigaction02 failure with sig: 37 as
>> expected errno  = EFAULT : Bad address
>> rt_sigaction02    0  INFO  :  sa.sa_flags = SA_RESETHAND
>> rt_sigaction02   17  PASS  :  rt_sigaction02 failure with sig: 37 3 as
>> expected errno  = EFAULT : Bad address
>> gcooper@orangebox /scratch/ltp-vanilla/ltp $ gdb
>> testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
>> GNU gdb 6.8
>> Copyright (C) 2008 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
>> and "show warranty" for details.
>> This GDB was configured as "x86_64-pc-linux-gnu"...
>> (gdb) r
>> Starting program:
>> /scratch/ltp-vanilla/ltp/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01
>> rt_sigaction01    0  INFO  :  signal: 34
>> rt_sigaction01    1  PASS  :  rt_sigaction call succeeded: result = 0
>> rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
>>
>> Program received signal SIG34, Real-time event 34.
>> 0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
>> (gdb) where
>> #0  0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
>> #1  0x0000000000401c3e in main ()
>> (gdb)
>>
>
>  /lib/libc.so.6 :
>
> This could be issue with glibc.
> Are you using 2.9 glibc?
>
> please Investigate.

    Yes, I am:

gcooper@orangebox /scratch/ltp-vanilla/ltp $ emerge -qpv glibc
[ebuild   R   ] sys-libs/glibc-2.9_p20081201-r2  USE="(multilib) nls
-debug -gd -glibc-omitfp (-hardened) -profile (-selinux) -vanilla"
gcooper@orangebox /scratch/ltp-vanilla/ltp $

    Are you suggesting this might be a glibc bug?
-Garrett

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-07 23:59         ` Garrett Cooper
@ 2009-07-09 14:38           ` naresh kamboju
  2009-07-09 14:41             ` naresh kamboju
  2009-07-09 17:34             ` Garrett Cooper
  0 siblings, 2 replies; 10+ messages in thread
From: naresh kamboju @ 2009-07-09 14:38 UTC (permalink / raw)
  To: Garrett Cooper
  Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

On Wed, Jul 8, 2009 at 5:29 AM, Garrett Cooper<yanegomi@gmail.com> wrote:
> On Tue, Jul 7, 2009 at 10:26 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
>> Garrett,
result = 0
>>> rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
>>>
>>> Program received signal SIG34, Real-time event 34.
>>> 0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
>>> (gdb) where
>>> #0  0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
>>> #1  0x0000000000401c3e in main ()
>>> (gdb)
>>>
>>
>>  /lib/libc.so.6 :
>>
>> This could be issue with glibc.
>> Are you using 2.9 glibc?
>>
>> please Investigate.
>
>    Yes, I am:
>
> gcooper@orangebox /scratch/ltp-vanilla/ltp $ emerge -qpv glibc
> [ebuild   R   ] sys-libs/glibc-2.9_p20081201-r2  USE="(multilib) nls
> -debug -gd -glibc-omitfp (-hardened) -profile (-selinux) -vanilla"
> gcooper@orangebox /scratch/ltp-vanilla/ltp $
>
>    Are you suggesting this might be a glibc bug?

I hope... its not a bug with glibc.

please run following command
#/lib/libc.so.6

Is it generating information about glibc and gcc ??

I have tried it on 2.6.29 kernels and glibc 2.9 on X86-32 bit
These test got passed.

Because of that I could not conclude its glibc bug !!!

These test cases are PASSED on ARM/MIPS/X86
I did not check with x86- 64 bit ARCH, becz HardWare is not available.

Subrata,

Have you tested these test cases at your end.
if not please conform the results.
after applying Garrett date on

Best regards
Naresh Kamboju

> -Garrett
>

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-09 14:38           ` naresh kamboju
@ 2009-07-09 14:41             ` naresh kamboju
  2009-07-09 17:34             ` Garrett Cooper
  1 sibling, 0 replies; 10+ messages in thread
From: naresh kamboju @ 2009-07-09 14:41 UTC (permalink / raw)
  To: Garrett Cooper
  Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

On Thu, Jul 9, 2009 at 8:08 PM, naresh kamboju<naresh.kernel@gmail.com> wrote:
> On Wed, Jul 8, 2009 at 5:29 AM, Garrett Cooper<yanegomi@gmail.com> wrote:
>> On Tue, Jul 7, 2009 at 10:26 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
>>> Garrett,
> result = 0
>>>> rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
>>>>
>>>> Program received signal SIG34, Real-time event 34.
>>>> 0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
>>>> (gdb) where
>>>> #0  0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
>>>> #1  0x0000000000401c3e in main ()
>>>> (gdb)
>>>>
>>>
>>>  /lib/libc.so.6 :
>>>
>>> This could be issue with glibc.
>>> Are you using 2.9 glibc?
>>>
>>> please Investigate.
>>
>>    Yes, I am:
>>
>> gcooper@orangebox /scratch/ltp-vanilla/ltp $ emerge -qpv glibc
>> [ebuild   R   ] sys-libs/glibc-2.9_p20081201-r2  USE="(multilib) nls
>> -debug -gd -glibc-omitfp (-hardened) -profile (-selinux) -vanilla"
>> gcooper@orangebox /scratch/ltp-vanilla/ltp $
>>
>>    Are you suggesting this might be a glibc bug?
>
> I hope... its not a bug with glibc.
>
> please run following command
> #/lib/libc.so.6
>
> Is it generating information about glibc and gcc ??
>
> I have tried it on 2.6.29 kernels and glibc 2.9 on X86-32 bit
> These test got passed.
>
> Because of that I could not conclude its glibc bug !!!
>
> These test cases are PASSED on ARM/MIPS/X86
> I did not check with x86- 64 bit ARCH, becz HardWare is not available.
>
> Subrata,
>
> Have you tested these test cases at your end.
> if not please conform the results.
> after applying Garrett date on

After applying Garrett patch dated on Jul 7th 2009
SUB: RE: [LTP] Compile failure with rt_sigaction on amd64

>
> Best regards
> Naresh Kamboju
>
>> -Garrett
>>
>

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [LTP] [FIX PATCHE] rt_sigaction
  2009-07-09 14:38           ` naresh kamboju
  2009-07-09 14:41             ` naresh kamboju
@ 2009-07-09 17:34             ` Garrett Cooper
  1 sibling, 0 replies; 10+ messages in thread
From: Garrett Cooper @ 2009-07-09 17:34 UTC (permalink / raw)
  To: naresh kamboju
  Cc: ltp-list, Jiri Palecek, maxin john, brinda_mn, Manas Kumar Nayak

On Thu, Jul 9, 2009 at 7:38 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
> On Wed, Jul 8, 2009 at 5:29 AM, Garrett Cooper<yanegomi@gmail.com> wrote:
>> On Tue, Jul 7, 2009 at 10:26 AM, naresh kamboju<naresh.kernel@gmail.com> wrote:
>>> Garrett,
> result = 0
>>>> rt_sigaction01    0  INFO  :  sa.sa_flags = SA_RESETHAND|SA_SIGINFO
>>>>
>>>> Program received signal SIG34, Real-time event 34.
>>>> 0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
>>>> (gdb) where
>>>> #0  0x00007f770ba0b4f7 in kill () from /lib/libc.so.6
>>>> #1  0x0000000000401c3e in main ()
>>>> (gdb)
>>>>
>>>
>>>  /lib/libc.so.6 :
>>>
>>> This could be issue with glibc.
>>> Are you using 2.9 glibc?
>>>
>>> please Investigate.
>>
>>    Yes, I am:
>>
>> gcooper@orangebox /scratch/ltp-vanilla/ltp $ emerge -qpv glibc
>> [ebuild   R   ] sys-libs/glibc-2.9_p20081201-r2  USE="(multilib) nls
>> -debug -gd -glibc-omitfp (-hardened) -profile (-selinux) -vanilla"
>> gcooper@orangebox /scratch/ltp-vanilla/ltp $
>>
>>    Are you suggesting this might be a glibc bug?
>
> I hope... its not a bug with glibc.
>
> please run following command
> #/lib/libc.so.6
>
> Is it generating information about glibc and gcc ??
>
> I have tried it on 2.6.29 kernels and glibc 2.9 on X86-32 bit
> These test got passed.
>
> Because of that I could not conclude its glibc bug !!!
>
> These test cases are PASSED on ARM/MIPS/X86
> I did not check with x86- 64 bit ARCH, becz HardWare is not available.

gcooper@orangebox /scratch/ltp-vanilla/ltp $ /lib/libc.so.6
GNU C Library stable release version 2.9, by Roland McGrath et al.
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.3.2.
Compiled on a Linux >>2.6.29-gentoo-r5<< system on 2009-07-05.
Available extensions:
        C stubs add-on version 2.1.2
        crypt add-on version 2.1 by Michael Glad and others
        Gentoo snapshot 20081201
        Gentoo patchset 5
        GNU Libidn by Simon Josefsson
        Native POSIX Threads Library by Ulrich Drepper et al
        Support for some architectures added on, not maintained in glibc core.
        BIND-8.2.3-T5B
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

I'm confused -- how will that help us?

Also, Gentoo applies some patches to glibc -- maybe one or more of
those patches are invalid from a functional point of view.

Thanks,
-Garrett

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-07-09 17:35 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-03 15:46 [LTP] [FIX PATCHE] rt_sigaction naresh kamboju
2009-07-06 15:50 ` Subrata Modak
2009-07-07 11:52   ` naresh kamboju
2009-07-07 16:44     ` Garrett Cooper
2009-07-07 17:21       ` naresh kamboju
2009-07-07 17:26       ` naresh kamboju
2009-07-07 23:59         ` Garrett Cooper
2009-07-09 14:38           ` naresh kamboju
2009-07-09 14:41             ` naresh kamboju
2009-07-09 17:34             ` Garrett Cooper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox