* [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