Module Name: src
Committed By: jruoho
Date: Thu Apr 7 17:33:12 UTC 2011
Modified Files:
src/tests/syscall: t_getrusage.c
Log Message:
Improve the test further so that it might trigger more often.
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/syscall/t_getrusage.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/syscall/t_getrusage.c
diff -u src/tests/syscall/t_getrusage.c:1.4 src/tests/syscall/t_getrusage.c:1.5
--- src/tests/syscall/t_getrusage.c:1.4 Wed Apr 6 19:09:16 2011
+++ src/tests/syscall/t_getrusage.c Thu Apr 7 17:33:11 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: t_getrusage.c,v 1.4 2011/04/06 19:09:16 jruoho Exp $ */
+/* $NetBSD: t_getrusage.c,v 1.5 2011/04/07 17:33:11 jruoho Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: t_getrusage.c,v 1.4 2011/04/06 19:09:16 jruoho Exp $");
+__RCSID("$NetBSD: t_getrusage.c,v 1.5 2011/04/07 17:33:11 jruoho Exp $");
#include <sys/resource.h>
#include <sys/time.h>
@@ -40,8 +40,10 @@
#include <signal.h>
#include <string.h>
-static void work(void);
-static void sighandler(int);
+static void work(void);
+static void sighandler(int);
+
+static const size_t maxiter = 2000;
static void
sighandler(int signo)
@@ -52,7 +54,7 @@
static void
work(void)
{
- size_t n = UINT16_MAX * 100;
+ size_t n = UINT16_MAX * 10;
while (n > 0) {
asm volatile("nop"); /* Do something. */
@@ -117,14 +119,14 @@
ATF_TC_BODY(getrusage_utime_back, tc)
{
struct rusage ru1, ru2;
- size_t i, n = 100;
+ size_t i;
/*
* Test that two consecutive calls are sane.
*/
atf_tc_expect_fail("PR kern/30115");
- for (i = 0; i < n; i++) {
+ for (i = 0; i < maxiter; i++) {
(void)memset(&ru1, 0, sizeof(struct rusage));
(void)memset(&ru2, 0, sizeof(struct rusage));
@@ -151,21 +153,25 @@
ATF_TC_BODY(getrusage_utime_zero, tc)
{
struct rusage ru;
+ size_t i;
/*
* Test that getrusage(2) does not return
* zero user time for the calling process.
*/
- atf_tc_expect_fail("PR port-amd64/41734");
+ for (i = 0; i < maxiter; i++) {
- work();
+ atf_tc_expect_fail("PR port-amd64/41734");
- (void)memset(&ru, 0, sizeof(struct rusage));
+ work();
- ATF_REQUIRE(getrusage(RUSAGE_SELF, &ru) == 0);
+ (void)memset(&ru, 0, sizeof(struct rusage));
+
+ ATF_REQUIRE(getrusage(RUSAGE_SELF, &ru) == 0);
- if (ru.ru_utime.tv_sec == 0 && ru.ru_utime.tv_usec == 0)
- atf_tc_fail("zero user time from getrusage(2)");
+ if (ru.ru_utime.tv_sec == 0 && ru.ru_utime.tv_usec == 0)
+ atf_tc_fail("zero user time from getrusage(2)");
+ }
}
ATF_TP_ADD_TCS(tp)