[LTP] [PATCH v2 2/2] syscalls/getitimer01.c: Test for getting ITIMER_VIRTUAL and ITIMER_PROF

DAN LI
2013-04-24T08:24:25Z

Additional tests for getting ITIMER_VIRTUAL and ITIMER_PROF.

Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
---
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