syscalls/getitimer: cleanup
PATCH 1/2 syscalls/getitimer: cleanup
cleanup syscalls/getitimer01.c getitimer02.c
--- testcases/kernel/syscalls/getitimer/getitimer01.c | 106 ++++++---------------- testcases/kernel/syscalls/getitimer/getitimer02.c | 96 +++++--------------- 2 files changed, 53 insertions(+), 149 deletions(-)
testcases/kernel/syscalls/getitimer/getitimer01.c +28 -78
@@ -1,55 +1,28 @@/* +* Copyright (c) International Business Machines Corp., 2001 * -* Copyright (c) International Business Machines Corp., 2001 +* 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 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. * -* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* -* NAME -* getitimer01.c -* -* DESCRIPTION -* getitimer01 - check that a correct call to getitimer() succeeds -* -* ALGORITHM -* loop if that option was specified -* allocate needed space -* issue the system call -* check the errno value -* issue a PASS message if we get zero -* otherwise, the tests fails -* issue a FAIL message -* break any remaining tests -* call cleanup -* -* USAGE: <for command-line> -* getitimer01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] -* where, -c n : Run n copies concurrently. -* -f : Turn off functionality Testing. -* -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. -* -* HISTORY -* 03/2001 - Written by Wayne Boyer -* -* RESTRICTIONS -* none -*/ +HISTORY +03/2001 - Written by Wayne Boyer + +TEST ITEMS: +Check that a correct call to getitimer() succeeds. +*/ #include "test.h" #include "usctest.h"
@@ -57,8 +30,8 @@#include <errno.h> #include <sys/time.h> -void cleanup (void ); -void setup (void ); +static void cleanup (void ); +static void setup (void );char *TCID ="getitimer01" ;int TST_TOTAL =1 ;
@@ -69,35 +42,25 @@ int main(int ac, char **av)char *msg;struct itimerval *value; -if ((msg =parse_opts (ac, av,NULL ,NULL )) !=NULL ) { +if ((msg =parse_opts (ac, av,NULL ,NULL )) !=NULL )tst_brkm (TBROK ,NULL ,"OPTION PARSING ERROR - %s" , msg); - } - -setup ();/* global setup */ -/* The following loop checks looping state if -i option given */ +setup ();for (lc =0 ;TEST_LOOPING (lc); lc++) { -/* reset tst_count in case we are looping */ tst_count =0 ;/* allocate space for the itimerval structure */ - -if ((value = (struct itimerval *)malloc ((size_t ) -sizeof (struct -itimerval ))) == -NULL ) { + value = (struct itimerval *)malloc ( + (size_t )sizeof (struct itimerval )); +if (value ==NULL )tst_brkm (TBROK , cleanup,"value malloc failed" ); - } - -/* call the system call with the TEST() macro */ TEST (getitimer (ITIMER_REAL , value)); -if (TEST_RETURN !=0 ) { +if (TEST_RETURN !=0 )tst_resm (TFAIL ,"call failed - errno = %d - %s" ,TEST_ERRNO ,strerror (TEST_ERRNO )); - }if (STD_FUNCTIONAL_TEST ) {
@@ -122,27 +85,14 @@ int main(int ac, char **av)tst_exit (); } -/* -* setup() - performs all the ONE TIME setup for this test. -*/ -void setup (void ) +static void setup (void ) { -tst_sig (NOFORK ,DEF_HANDLER , cleanup);TEST_PAUSE ; } -/* -* cleanup() - performs all the ONE TIME cleanup for this test at completion -* or premature exit. -*/ -void cleanup (void ) +static void cleanup (void ) { -/* -* print timing stats if that option was specified. -* print errno log if that option was specified. -*/ TEST_CLEANUP ; - }
testcases/kernel/syscalls/getitimer/getitimer02.c +25 -71
137 lines not on this page · raw message
Signature · 12 lines
1.8.1 ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
PATCH 2/2 syscalls/getitimer01.c: Test for getting ITIMER_VIRTUAL and ITIMER_PROF
Additional tests for getting ITIMER_VIRTUAL and ITIMER_PROF.
--- testcases/kernel/syscalls/getitimer/getitimer01.c | 59 ++++++++++++++--------- 1 file changed, 35 insertions(+), 24 deletions(-)
testcases/kernel/syscalls/getitimer/getitimer01.c +35 -24
@@ -19,6 +19,7 @@/* HISTORY 03/2001 - Written by Wayne Boyer +04/2013 - ITIMER_VIRTUAL and ITIMER_PROF test added by DAN LI TEST ITEMS: Check that a correct call to getitimer() succeeds.
@@ -34,11 +35,17 @@ static void cleanup(void);static void setup (void );char *TCID ="getitimer01" ; -int TST_TOTAL =1 ; +int TST_TOTAL =3 ; + +static int itimer_name[] = { +ITIMER_REAL , +ITIMER_VIRTUAL , +ITIMER_PROF , };int main (int ac,char **av) {int lc; +int idx;char *msg;struct itimerval *value;
@@ -50,33 +57,37 @@ int main(int ac, char **av)for (lc =0 ;TEST_LOOPING (lc); lc++) { tst_count =0 ; -/* allocate space for the itimerval structure */ - value = (struct itimerval *)malloc ( +for (idx =0 ; idx <3 ; idx++) { +/* allocate space for the itimerval structure */ + value = (struct itimerval *)malloc ( (size_t )sizeof (struct itimerval )); -if (value ==NULL ) -tst_brkm (TBROK , cleanup,"value malloc failed" ); - -TEST (getitimer (ITIMER_REAL , value)); - -if (TEST_RETURN !=0 ) -tst_resm (TFAIL ,"call failed - errno = %d - %s" , -TEST_ERRNO ,strerror (TEST_ERRNO )); - -if (STD_FUNCTIONAL_TEST ) { +if (value ==NULL ) { +tst_resm (TBROK ,"value malloc failed" ); +continue ; + } -/* -* Since ITIMER_REAL is effectively disabled (we did -* not set it before the getitimer call), the elements -* in it_value should be zero. -*/ -if ((value->it_value.tv_sec ==0 ) && - (value->it_value.tv_usec ==0 )) { -tst_resm (TPASS ,"functional test passed" ); +TEST (getitimer (itimer_name[idx], value)); + +if (TEST_RETURN !=0 ) +tst_resm (TFAIL ,"call failed - errno = %d - %s" , +TEST_ERRNO ,strerror (TEST_ERRNO )); + +if (STD_FUNCTIONAL_TEST ) { + +/* +* Since ITIMER is effectively disabled (we did +* not set it before the getitimer call), the +* elements in it_value should be zero. +*/ +if ((value->it_value.tv_sec ==0 ) && + (value->it_value.tv_usec ==0 )) { +tst_resm (TPASS ,"functionality is ok" ); + }else { +tst_resm (TFAIL ,"timer are non zero" ); + } }else { -tst_resm (TFAIL ,"timer values are non zero" ); +tst_resm (TPASS ,"call succeeded" ); } - }else { -tst_resm (TPASS ,"call succeeded" ); } }
Signature · 12 lines
1.8.1 ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
Quoted 99 lines · DAN LI
cleanup
syscalls/getitimer01.cgetitimer02.cSigned-off-by DAN LI <[email protected]>--- testcases/kernel/syscalls/getitimer/getitimer01.c | 106 ++++++---------------- testcases/kernel/syscalls/getitimer/getitimer02.c | 96 +++++--------------- 2 files changed, 53 insertions(+), 149 deletions(-)testcases/kernel/syscalls/getitimer/getitimer01.c +20
-47@@ -1,55 +1,28 @@/* +* Copyright (c) International Business Machines Corp., 2001 * -* Copyright (c) International Business Machines Corp., 2001 +* 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 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. * -* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* -* NAME -* getitimer01.c -* -* DESCRIPTION -* getitimer01 - check that a correct call to getitimer() succeeds -* -* ALGORITHM -* loop if that option was specified -* allocate needed space -* issue the system call -* check the errno value -* issue a PASS message if we get zero -* otherwise, the tests fails -* issue a FAIL message -* break any remaining tests -* call cleanup -* -* USAGE: <for command-line> -* getitimer01 [-c n] [-f] [-i n] [-I x] [-P x] [-t] -* where, -c n : Run n copies concurrently. -* -f : Turn off functionality Testing. -* -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. -* -* HISTORY -* 03/2001 - Written by Wayne Boyer -* -* RESTRICTIONS -* none -*/ +HISTORY +03/2001 - Written by Wayne Boyer + +TEST ITEMS: +Check that a correct call to getitimer() succeeds. +*/ #include "test.h" #include "usctest.h" @@ -57,8 +30,8 @@#include <errno.h> #include <sys/time.h> -void cleanup (void ); -void setup (void ); +static void cleanup (void ); +static void setup (void );char *TCID ="getitimer01" ;int TST_TOTAL =1 ;
testcases/kernel/syscalls/getitimer/getitimer01.c int main(int ac, char **av) · line 45
Quoted 5 lines
testcases/kernel/syscalls/getitimer/getitimer01.c +1
-1@@ -69,35 +42,25 @@ int main(int ac, char **av)char *msg;struct itimerval *value; -if ((msg =parse_opts (ac, av,NULL ,NULL )) !=NULL ) { +if ((msg =parse_opts (ac, av,NULL ,NULL )) !=NULL )
ERROR: do not use assignment in if condition
Quoted 10 lines
testcases/kernel/syscalls/getitimer/getitimer01.c +1
-5tst_brkm (TBROK ,NULL ,"OPTION PARSING ERROR - %s" , msg); - } - -setup ();/* global setup */ -/* The following loop checks looping state if -i option given */ +setup ();for (lc =0 ;TEST_LOOPING (lc); lc++) { -/* reset tst_count in case we are looping */
testcases/kernel/syscalls/getitimer/getitimer01.c int main(int ac, char **av) · line 55
Quoted 10 lines
testcases/kernel/syscalls/getitimer/getitimer01.c +2
-5tst_count =0 ;/* allocate space for the itimerval structure */ - -if ((value = (struct itimerval *)malloc ((size_t ) -sizeof (struct -itimerval ))) == -NULL ) { + value = (struct itimerval *)malloc ( + (size_t )sizeof (struct itimerval ));
The type cast here is not necessary, right?
Thanks,
Wanlong Gao
Quoted 183 lines
testcases/kernel/syscalls/getitimer/getitimer01.c +4
-20+if (value ==NULL )tst_brkm (TBROK , cleanup,"value malloc failed" ); - } - -/* call the system call with the TEST() macro */ TEST (getitimer (ITIMER_REAL , value)); -if (TEST_RETURN !=0 ) { +if (TEST_RETURN !=0 )tst_resm (TFAIL ,"call failed - errno = %d - %s" ,TEST_ERRNO ,strerror (TEST_ERRNO )); - }if (STD_FUNCTIONAL_TEST ) {@@ -122,27 +85,14 @@ int main(int ac, char **av)tst_exit (); } -/* -* setup() - performs all the ONE TIME setup for this test. -*/ -void setup (void ) +static void setup (void ) { -tst_sig (NOFORK ,DEF_HANDLER , cleanup);TEST_PAUSE ; } -/* -* cleanup() - performs all the ONE TIME cleanup for this test at completion -* or premature exit. -*/ -void cleanup (void ) +static void cleanup (void ) { -/* -* print timing stats if that option was specified. -* print errno log if that option was specified. -*/ TEST_CLEANUP ; - }testcases/kernel/syscalls/getitimer/getitimer02.c +25
-66@@ -1,55 +1,30 @@/* +* Copyright (c) International Business Machines Corp., 2001 * -* Copyright (c) International Business Machines Corp., 2001 +* 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 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. * -* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ /* -* NAME -* getitimer02.c -* -* DESCRIPTION -* getitimer02 - check that a getitimer() call fails as expected -* with an incorrect second argument. -* -* ALGORITHM -* loop if that option was specified -* call getitimer() with an incorrect second argument. -* check the errno value -* issue a PASS message if we get EFAULT - errno 14 -* otherwise, the tests fails -* issue a FAIL message -* break any remaining tests -* call cleanup -* -* USAGE: <for command-line> -* getitimer02 [-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. -* -* HISTORY -* 03/2001 - Written by Wayne Boyer -* -* RESTRICTIONS -* none -*/ +HISTORY +03/2001 - Written by Wayne Boyer + +TEST ITEMS: +Check that a getitimer() call fails as expected +with an incorrect second argument. +*/ +#include "test.h" #include "usctest.h" @@ -62,8 +37,8 @@ int TST_TOTAL = 1;#if !defined(UCLINUX ) -void cleanup (void ); -void setup (void ); +static void cleanup (void ); +static void setup (void );int exp_enos[] = {EFAULT ,0 };@@ -76,19 +51,11 @@ int main(int ac, char **av)tst_brkm (TBROK ,NULL ,"OPTION PARSING ERROR - %s" , msg); } -setup ();/* global setup */ - -/* The following loop checks looping state if -i option given */ +setup ();for (lc =0 ;TEST_LOOPING (lc); lc++) { -/* reset tst_count in case we are looping */ tst_count =0 ; -/* -* issue the system call with the TEST() macro -* ITIMER_REAL = 0, ITIMER_VIRTUAL = 1 and ITIMER_PROF = 2 -*/ -/* call with a bad address */ TEST (getitimer (ITIMER_REAL , (struct itimerval *)-1 ));@@ -118,12 +85,8 @@ int main(int ac, char **av)tst_exit (); } -/* -* setup() - performs all the ONE TIME setup for this test. -*/ -void setup (void ) +static void setup (void ) { -tst_sig (NOFORK ,DEF_HANDLER , cleanup);TEST_EXP_ENOS (exp_enos);@@ -131,18 +94,9 @@ void setup(void)TEST_PAUSE ; } -/* -* cleanup() - performs all the ONE TIME cleanup for this test at completion -* or premature exit. -*/ -void cleanup (void ) +static void cleanup (void )
testcases/kernel/syscalls/getitimer/getitimer02.c void setup(void) · line 102
Quoted 10 lines
testcases/kernel/syscalls/getitimer/getitimer02.c +0
-5{ -/* -* print timing stats if that option was specified. -* print errno log if that option was specified. -*/ TEST_CLEANUP ; - }#else
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Hi!
Quoted 4 lines
Quoted 4 lines
testcases/kernel/syscalls/getitimer/getitimer01.c +0
-1for (lc =0 ;TEST_LOOPING (lc); lc++) { -/* reset tst_count in case we are looping */ tst_count =0 ;
Quoted 10 lines
testcases/kernel/syscalls/getitimer/getitimer01.c int main(int ac, char **av) · line 55
Quoted 8 lines
testcases/kernel/syscalls/getitimer/getitimer01.c +2
-5/* allocate space for the itimerval structure */ - -if ((value = (struct itimerval *)malloc ((size_t ) -sizeof (struct -itimerval ))) == -NULL ) { + value = (struct itimerval *)malloc ( + (size_t )sizeof (struct itimerval ));The type cast here is not necessary, right?
The itimerval structure is about 32 bytes long. I would just declare it on the stack and pass &value to the call.
Signature · 13 lines
Cyril Hrubis [email protected] ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list