Additional tests for getting ITIMER_VIRTUAL and ITIMER_PROF.

Signed-off-by: DAN LI <[email protected]>
---
 testcases/kernel/syscalls/getitimer/getitimer01.c | 60 ++++++++++++++---------
 1 file changed, 36 insertions(+), 24 deletions(-)

diff --git a/testcases/kernel/syscalls/getitimer/getitimer01.c 
b/testcases/kernel/syscalls/getitimer/getitimer01.c
index 968e34f..9c3ad90 100644
--- a/testcases/kernel/syscalls/getitimer/getitimer01.c
+++ b/testcases/kernel/syscalls/getitimer/getitimer01.c
@@ -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;

@@ -51,32 +58,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(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) {
+               for (idx = 0; idx < 3; idx++) {
+                       /* allocate space for the itimerval structure */
+                       value = (struct itimerval *)malloc(
+                                               sizeof(struct itimerval));
+                       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");
                }
        }

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

Reply via email to