syscalls/adjtimex: Test for mode ADJ_OFFSET_SINGLESHOT
PATCH 1/1 syscalls/adjtimex: Test for mode ADJ_OFFSET_SINGLESHOT
Additional test for mode ADJ_OFFSET_SINGLESHOT.
Signed-off-by DAN LI <[email protected]>
--- testcases/kernel/syscalls/adjtimex/adjtimex01.c | 107 +++++++++--------------- 1 file changed, 38 insertions(+), 69 deletions(-)
testcases/kernel/syscalls/adjtimex/adjtimex01.c +38 -69
@@ -12,57 +12,18 @@* You should have received a copy of the GNU General Public License along * with this program; if not, write the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -* */ -/********************************************************** -* -* TEST IDENTIFIER : adjtimex01 -* -* EXECUTED BY : root / superuser -* -* TEST TITLE : Basic test for adjtimex(2) -* -* TEST CASE TOTAL : 1 -* -* AUTHOR : Saji Kumar.V.R <[email protected]> -* -* SIGNALS -* Uses SIGUSR1 to pause before test if option set. -* (See the parse_opts(3) man page). -* -* DESCRIPTION -* This is a Phase I test for the adjtimex(2) system call. -* It is intended to provide a limited exposure of the system call. -* -* Setup: -* Setup signal handling. -* Pause for SIGUSR1 if option specified. -* Save current parameters in tim_save -* -* Test: -* Loop if the proper options are given. -* call adjtimex with saved timex structure -* Check return value is between 0 & 5 -* Test passed -* Otherwise -* Test failed -* -* Cleanup: -* Print errno log and/or timing stats if options given -* -* USAGE: <for command-line> -* adjtimex01 [-c n] [-e] [-i n] [-I x] [-P x] [-t] [-h] [-f] [-p] -* where, -c n : Run n copies concurrently. -* -e : Turn on errno logging. -* -h : Show help screen -* -f : Turn off functional testing -* -i n : Execute test n times. -* -I x : Execute test for x seconds. -* -p : Pause for SIGUSR1 before starting -* -P x : Pause for x seconds between iterations. -* -t : Turn on syscall timing. -* -****************************************************************/ + +/* +AUTHOR: Saji Kumar.V.R <[email protected]> +EXECUTED BY: root / superuser + +TEST ITEMS: +1. Check to see if adjtimex succeed with mode combination : +ADJ_OFFSET | ADJ_FREQUENCY | ADJ_MAXERROR | ADJ_ESTERROR | +ADJ_STATUS | ADJ_TIMECONST | ADJ_TICK +2. Check to see if adjtimex succeed with mode ADJ_OFFSET_SINGLESHOT +*/ #if definedUCLINUX && !__THROW/* workaround for libc bug causing failure in sys/timex.h */
@@ -74,20 +35,19 @@#include "test.h" #include "usctest.h" -#define SET_MODE ( ADJ_OFFSET | ADJ_FREQUENCY | ADJ_MAXERROR | ADJ_ESTERROR | \ - ADJ_STATUS | ADJ_TIMECONST | ADJ_TICK ) +#define SET_MODE (ADJ_OFFSET | ADJ_FREQUENCY | ADJ_MAXERROR | ADJ_ESTERROR | \ + ADJ_STATUS | ADJ_TIMECONST | ADJ_TICK) -static void setup (); -static void cleanup (); +static void setup (void ); +static void cleanup (void );char *TCID ="adjtimex01" ; -int TST_TOTAL =1 ; +int TST_TOTAL =2 ;static struct timex tim_save;int main (int ac,char **av) { -int lc;char *msg;
@@ -106,7 +66,26 @@ int main(int ac, char **av)TEST (adjtimex (&tim_save));if ((TEST_RETURN >=0 ) && (TEST_RETURN <=5 )) { -tst_resm (TPASS ,"adjtimex() returned %ld" ,TEST_RETURN ); +tst_resm (TPASS ,"adjtimex() with mode %u returned %ld" , +SET_MODE ,TEST_RETURN ); + }else { +tst_resm (TFAIL |TTERRNO ,"Test Failed, adjtimex()" +"returned %ld" ,TEST_RETURN ); + } + } + +for (lc =0 ;TEST_LOOPING (lc); lc++) { + + tst_count =0 ; + +/* Call adjtimex(2) */ + tim_save.modes =ADJ_OFFSET_SINGLESHOT ; + +TEST (adjtimex (&tim_save)); + +if ((TEST_RETURN >=0 ) && (TEST_RETURN <=5 )) { +tst_resm (TPASS ,"adjtimex() with mode %u returned %ld" , +ADJ_OFFSET_SINGLESHOT ,TEST_RETURN ); }else {tst_resm (TFAIL |TTERRNO ,"Test Failed, adjtimex()" "returned %ld" ,TEST_RETURN );
@@ -118,10 +97,8 @@ int main(int ac, char **av)tst_exit (); } -/* setup() - performs all ONE TIME setup for this test */ -void setup () +static void setup (void ) { -tst_require_root (NULL ); tim_save.modes =0 ;
@@ -136,15 +113,7 @@ void setup() "failed to save current parameters"); } -/* -*cleanup() - performs all ONE TIME cleanup for this test at -* completion or premature exit. -*/ -void cleanup () +static void cleanup (void ) { -/* -* print timing stats if that option was specified. -* print errno log if that option was specified. -*/ TEST_CLEANUP ; }
Signature · 12 lines
1.8.1 ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
Hi!
Quoted 46 lines
#if defined UCLINUX && !__THROW
/* workaround for libc bug causing failure insys/timex.h*/testcases/kernel/syscalls/adjtimex/adjtimex01.c +18
-7@@ -74,20 +35,19 @@#include "test.h" #include "usctest.h" -#define SET_MODE ( ADJ_OFFSET | ADJ_FREQUENCY | ADJ_MAXERROR | ADJ_ESTERROR | \ - ADJ_STATUS | ADJ_TIMECONST | ADJ_TICK ) +#define SET_MODE (ADJ_OFFSET | ADJ_FREQUENCY | ADJ_MAXERROR | ADJ_ESTERROR | \ + ADJ_STATUS | ADJ_TIMECONST | ADJ_TICK) -static void setup (); -static void cleanup (); +static void setup (void ); +static void cleanup (void );char *TCID ="adjtimex01" ; -int TST_TOTAL =1 ; +int TST_TOTAL =2 ;static struct timex tim_save;int main (int ac,char **av) { -int lc;char *msg;@@ -106,7 +66,26 @@ int main(int ac, char **av)TEST (adjtimex (&tim_save));if ((TEST_RETURN >=0 ) && (TEST_RETURN <=5 )) { -tst_resm (TPASS ,"adjtimex() returned %ld" ,TEST_RETURN ); +tst_resm (TPASS ,"adjtimex() with mode %u returned %ld" , +SET_MODE ,TEST_RETURN ); + }else { +tst_resm (TFAIL |TTERRNO ,"Test Failed, adjtimex()" +"returned %ld" ,TEST_RETURN ); + } + } + +for (lc =0 ;TEST_LOOPING (lc); lc++) { + + tst_count =0 ; + +/* Call adjtimex(2) */
testcases/kernel/syscalls/adjtimex/adjtimex01.c int main(int ac, char **av) · line 91
Quoted 10 lines
testcases/kernel/syscalls/adjtimex/adjtimex01.c +7
-0+ tim_save.modes =ADJ_OFFSET_SINGLESHOT ; + +TEST (adjtimex (&tim_save)); + +if ((TEST_RETURN >=0 ) && (TEST_RETURN <=5 )) { +tst_resm (TPASS ,"adjtimex() with mode %u returned %ld" , +ADJ_OFFSET_SINGLESHOT ,TEST_RETURN ); }else {tst_resm (TFAIL |TTERRNO ,"Test Failed, adjtimex()" "returned %ld" ,TEST_RETURN );
I think that doing the test loop twice would fail at least for '-i' and '-I'. My guess is that the second loop would not be exectuted at all.
Signature · 13 lines
Cyril Hrubis [email protected] ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list