* [LTP] [PATCH]syscalls/adjtimex: Test for mode ADJ_OFFSET_SINGLESHOT
@ 2013-04-18 5:07 DAN LI
2013-04-18 17:44 ` chrubis
0 siblings, 1 reply; 2+ messages in thread
From: DAN LI @ 2013-04-18 5:07 UTC (permalink / raw)
To: LTP list
Additional test for mode ADJ_OFFSET_SINGLESHOT.
Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
---
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 <saji.kumar@wipro.com>
- *
- * 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 <saji.kumar@wipro.com>
+ 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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [LTP] [PATCH]syscalls/adjtimex: Test for mode ADJ_OFFSET_SINGLESHOT
2013-04-18 5:07 [LTP] [PATCH]syscalls/adjtimex: Test for mode ADJ_OFFSET_SINGLESHOT DAN LI
@ 2013-04-18 17:44 ` chrubis
0 siblings, 0 replies; 2+ messages in thread
From: chrubis @ 2013-04-18 17:44 UTC (permalink / raw)
To: DAN LI; +Cc: LTP list
Hi!
> #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);
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.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
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
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-04-18 17:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-18 5:07 [LTP] [PATCH]syscalls/adjtimex: Test for mode ADJ_OFFSET_SINGLESHOT DAN LI
2013-04-18 17:44 ` chrubis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox