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(-)
diff --git a/testcases/kernel/syscalls/adjtimex/adjtimex01.c b/testcases/kernel/syscalls/adjtimex/adjtimex01.c index 000a979..f55f33b 100644 --- a/testcases/kernel/syscalls/adjtimex/adjtimex01.c +++ b/testcases/kernel/syscalls/adjtimex/adjtimex01.c @@ -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 defined UCLINUX && !__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; } -- 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
