diff options
author | art <> | 2001-12-29 18:59:30 +0000 |
---|---|---|
committer | art <> | 2001-12-29 18:59:30 +0000 |
commit | e4fe8cb2822189b368e582b684f1b687cd745a7f (patch) | |
tree | 0062720636688ea5a757c63bc0b58009432a0b67 /src/regress | |
parent | 229de2018e42a072d4b9cb832226bafeb9881227 (diff) | |
download | openbsd-e4fe8cb2822189b368e582b684f1b687cd745a7f.tar.gz openbsd-e4fe8cb2822189b368e582b684f1b687cd745a7f.tar.bz2 openbsd-e4fe8cb2822189b368e582b684f1b687cd745a7f.zip |
Add options for slient operation and for specifying a count of rounds
instead of running to the limit.
Diffstat (limited to 'src/regress')
-rw-r--r-- | src/regress/lib/libc/malloc/malloc0test.c | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/src/regress/lib/libc/malloc/malloc0test.c b/src/regress/lib/libc/malloc/malloc0test.c index 459e42c985..d226af5a28 100644 --- a/src/regress/lib/libc/malloc/malloc0test.c +++ b/src/regress/lib/libc/malloc/malloc0test.c | |||
@@ -7,6 +7,8 @@ | |||
7 | #include <unistd.h> | 7 | #include <unistd.h> |
8 | #include <stdlib.h> | 8 | #include <stdlib.h> |
9 | #include <setjmp.h> | 9 | #include <setjmp.h> |
10 | #include <limits.h> | ||
11 | #include <errno.h> | ||
10 | 12 | ||
11 | volatile sig_atomic_t got; | 13 | volatile sig_atomic_t got; |
12 | jmp_buf jmp; | 14 | jmp_buf jmp; |
@@ -59,10 +61,38 @@ main(int argc, char *argv[]) | |||
59 | caddr_t zblob = malloc(0); | 61 | caddr_t zblob = malloc(0); |
60 | caddr_t *blobp, blob; | 62 | caddr_t *blobp, blob; |
61 | int size, rsize, tsize; | 63 | int size, rsize, tsize; |
62 | int count = 0, prot; | 64 | int prot; |
63 | int rval = 0, fuckup = 0; | 65 | int rval = 0, fuckup = 0; |
66 | long limit = 200000, count; | ||
67 | int ch, silent = 0; | ||
68 | char *ep; | ||
69 | extern char *__progname; | ||
64 | 70 | ||
65 | while (1) { | 71 | while ((ch = getopt(argc, argv, "sn:")) != -1) { |
72 | switch (ch) { | ||
73 | case 's': | ||
74 | silent = 1; | ||
75 | break; | ||
76 | case 'n': | ||
77 | errno = 0; | ||
78 | limit = strtol(optarg, &ep, 10); | ||
79 | if (optarg[0] == '\0' || *ep != '\0' || | ||
80 | (errno == ERANGE && | ||
81 | (limit == LONG_MAX || limit == LONG_MIN))) | ||
82 | goto usage; | ||
83 | break; | ||
84 | default: | ||
85 | usage: | ||
86 | fprintf(stderr, "Usage: %s [-s][-n <count>]\n", | ||
87 | __progname); | ||
88 | exit(1); | ||
89 | } | ||
90 | } | ||
91 | |||
92 | if (limit == 0) | ||
93 | limit = LONG_MAX; | ||
94 | |||
95 | for (count = 0; count < limit; count++) { | ||
66 | size = arc4random() % SIZE; | 96 | size = arc4random() % SIZE; |
67 | blob = malloc(size); | 97 | blob = malloc(size); |
68 | if (blob == NULL) { | 98 | if (blob == NULL) { |
@@ -94,8 +124,9 @@ main(int argc, char *argv[]) | |||
94 | } | 124 | } |
95 | *blobp = blob; | 125 | *blobp = blob; |
96 | 126 | ||
97 | 127 | if (!silent && count % 100000 == 0 && count != 0) | |
98 | if (++count % 100000 == 0) | ||
99 | fprintf(stderr, "count = %d\n", count); | 128 | fprintf(stderr, "count = %d\n", count); |
100 | } | 129 | } |
130 | |||
131 | return rval; | ||
101 | } \ No newline at end of file | 132 | } \ No newline at end of file |