memtester: add -q option
[openwrt/svn-archive/archive.git] / utils / memtester / patches / 100-quiet.diff
1 diff -urN memtester-4.0.8.old/memtester.c memtester-4.0.8/memtester.c
2 --- memtester-4.0.8/memtester.c 2007-11-21 16:54:57.000000000 +0100
3 +++ memtester-4.0.8/memtester.c 2008-05-22 02:15:56.925302194 +0200
4 @@ -98,6 +98,14 @@
5 pagesizemask = (ptrdiff_t) ~(pagesize - 1);
6 printf("pagesizemask is 0x%tx\n", pagesizemask);
7
8 + if (argc > 1 && !strcmp(argv[1], "-q")) {
9 + int j;
10 + quiet = 1;
11 + for(j = 2; j < argc; j++)
12 + argv[j - 1] = argv[j];
13 + argc--;
14 + }
15 +
16 if (argc < 2) {
17 fprintf(stderr, "need memory argument, in MB\n");
18 exit(EXIT_FAIL_NONSTARTER);
19 diff -urN memtester-4.0.8.old/tests.c memtester-4.0.8/tests.c
20 --- memtester-4.0.8/tests.c 2007-11-21 16:54:57.000000000 +0100
21 +++ memtester-4.0.8/tests.c 2008-05-22 02:38:46.389302357 +0200
22 @@ -17,11 +17,22 @@
23 #include <stdio.h>
24 #include <stdlib.h>
25 #include <limits.h>
26 +#include <stdarg.h>
27
28 #include "types.h"
29 #include "sizes.h"
30
31 +int quiet = 0;
32 char progress[] = "-\\|/";
33 +
34 +void inline dprintf(const char *format, ...) {
35 + if(!quiet) {
36 + va_list ap;
37 + va_start(ap, format);
38 + vprintf(format, ap);
39 + }
40 +}
41 +
42 #define PROGRESSLEN 4
43 #define PROGRESSOFTEN 2500
44
45 @@ -52,16 +63,16 @@
46 printf(" ");
47 fflush(stdout);
48 for (j = 0; j < 16; j++) {
49 - printf("\b\b\b\b\b\b\b\b\b\b\b");
50 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
51 p1 = (ulv *) bufa;
52 - printf("setting %3u", j);
53 + dprintf("setting %3u", j);
54 fflush(stdout);
55 for (i = 0; i < count; i++) {
56 *p1 = ((j + i) % 2) == 0 ? (ul) p1 : ~((ul) p1);
57 *p1++;
58 }
59 - printf("\b\b\b\b\b\b\b\b\b\b\b");
60 - printf("testing %3u", j);
61 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
62 + dprintf("testing %3u", j);
63 fflush(stdout);
64 p1 = (ulv *) bufa;
65 for (i = 0; i < count; i++, p1++) {
66 @@ -75,7 +86,7 @@
67 }
68 }
69 }
70 - printf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
71 + dprintf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
72 fflush(stdout);
73 return 0;
74 }
75 @@ -90,13 +101,13 @@
76 fflush(stdout);
77 for (i = 0; i < count; i++) {
78 *p1++ = *p2++ = rand_ul();
79 - if (!(i % PROGRESSOFTEN)) {
80 + if (!quiet && !(i % PROGRESSOFTEN)) {
81 putchar('\b');
82 putchar(progress[++j % PROGRESSLEN]);
83 fflush(stdout);
84 }
85 }
86 - printf("\b \b");
87 + dprintf("\b \b");
88 fflush(stdout);
89 return compare_regions(bufa, bufb, count);
90 }
91 @@ -204,23 +215,23 @@
92 printf(" ");
93 fflush(stdout);
94 for (j = 0; j < 64; j++) {
95 - printf("\b\b\b\b\b\b\b\b\b\b\b");
96 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
97 q = (j % 2) == 0 ? UL_ONEBITS : 0;
98 - printf("setting %3u", j);
99 + dprintf("setting %3u", j);
100 fflush(stdout);
101 p1 = (ulv *) bufa;
102 p2 = (ulv *) bufb;
103 for (i = 0; i < count; i++) {
104 *p1++ = *p2++ = (i % 2) == 0 ? q : ~q;
105 }
106 - printf("\b\b\b\b\b\b\b\b\b\b\b");
107 - printf("testing %3u", j);
108 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
109 + dprintf("testing %3u", j);
110 fflush(stdout);
111 if (compare_regions(bufa, bufb, count)) {
112 return -1;
113 }
114 }
115 - printf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
116 + dprintf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
117 fflush(stdout);
118 return 0;
119 }
120 @@ -235,23 +246,23 @@
121 printf(" ");
122 fflush(stdout);
123 for (j = 0; j < 64; j++) {
124 - printf("\b\b\b\b\b\b\b\b\b\b\b");
125 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
126 q = (j % 2) == 0 ? CHECKERBOARD1 : CHECKERBOARD2;
127 - printf("setting %3u", j);
128 + dprintf("setting %3u", j);
129 fflush(stdout);
130 p1 = (ulv *) bufa;
131 p2 = (ulv *) bufb;
132 for (i = 0; i < count; i++) {
133 *p1++ = *p2++ = (i % 2) == 0 ? q : ~q;
134 }
135 - printf("\b\b\b\b\b\b\b\b\b\b\b");
136 - printf("testing %3u", j);
137 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
138 + dprintf("testing %3u", j);
139 fflush(stdout);
140 if (compare_regions(bufa, bufb, count)) {
141 return -1;
142 }
143 }
144 - printf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
145 + dprintf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
146 fflush(stdout);
147 return 0;
148 }
149 @@ -262,25 +273,25 @@
150 unsigned int j;
151 size_t i;
152
153 - printf(" ");
154 + dprintf(" ");
155 fflush(stdout);
156 for (j = 0; j < 256; j++) {
157 - printf("\b\b\b\b\b\b\b\b\b\b\b");
158 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
159 p1 = (ulv *) bufa;
160 p2 = (ulv *) bufb;
161 - printf("setting %3u", j);
162 + dprintf("setting %3u", j);
163 fflush(stdout);
164 for (i = 0; i < count; i++) {
165 *p1++ = *p2++ = (ul) UL_BYTE(j);
166 }
167 - printf("\b\b\b\b\b\b\b\b\b\b\b");
168 - printf("testing %3u", j);
169 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
170 + dprintf("testing %3u", j);
171 fflush(stdout);
172 if (compare_regions(bufa, bufb, count)) {
173 return -1;
174 }
175 }
176 - printf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
177 + dprintf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
178 fflush(stdout);
179 return 0;
180 }
181 @@ -294,10 +305,10 @@
182 printf(" ");
183 fflush(stdout);
184 for (j = 0; j < UL_LEN * 2; j++) {
185 - printf("\b\b\b\b\b\b\b\b\b\b\b");
186 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
187 p1 = (ulv *) bufa;
188 p2 = (ulv *) bufb;
189 - printf("setting %3u", j);
190 + dprintf("setting %3u", j);
191 fflush(stdout);
192 for (i = 0; i < count; i++) {
193 if (j < UL_LEN) { /* Walk it up. */
194 @@ -306,14 +317,14 @@
195 *p1++ = *p2++ = 0x00000001 << (UL_LEN * 2 - j - 1);
196 }
197 }
198 - printf("\b\b\b\b\b\b\b\b\b\b\b");
199 - printf("testing %3u", j);
200 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
201 + dprintf("testing %3u", j);
202 fflush(stdout);
203 if (compare_regions(bufa, bufb, count)) {
204 return -1;
205 }
206 }
207 - printf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
208 + dprintf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
209 fflush(stdout);
210 return 0;
211 }
212 @@ -324,13 +335,13 @@
213 unsigned int j;
214 size_t i;
215
216 - printf(" ");
217 + dprintf(" ");
218 fflush(stdout);
219 for (j = 0; j < UL_LEN * 2; j++) {
220 - printf("\b\b\b\b\b\b\b\b\b\b\b");
221 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
222 p1 = (ulv *) bufa;
223 p2 = (ulv *) bufb;
224 - printf("setting %3u", j);
225 + dprintf("setting %3u", j);
226 fflush(stdout);
227 for (i = 0; i < count; i++) {
228 if (j < UL_LEN) { /* Walk it up. */
229 @@ -339,14 +350,14 @@
230 *p1++ = *p2++ = UL_ONEBITS ^ (0x00000001 << (UL_LEN * 2 - j - 1));
231 }
232 }
233 - printf("\b\b\b\b\b\b\b\b\b\b\b");
234 - printf("testing %3u", j);
235 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
236 + dprintf("testing %3u", j);
237 fflush(stdout);
238 if (compare_regions(bufa, bufb, count)) {
239 return -1;
240 }
241 }
242 - printf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
243 + dprintf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
244 fflush(stdout);
245 return 0;
246 }
247 @@ -357,13 +368,13 @@
248 unsigned int j;
249 size_t i;
250
251 - printf(" ");
252 + dprintf(" ");
253 fflush(stdout);
254 for (j = 0; j < UL_LEN * 2; j++) {
255 - printf("\b\b\b\b\b\b\b\b\b\b\b");
256 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
257 p1 = (ulv *) bufa;
258 p2 = (ulv *) bufb;
259 - printf("setting %3u", j);
260 + dprintf("setting %3u", j);
261 fflush(stdout);
262 for (i = 0; i < count; i++) {
263 if (j < UL_LEN) { /* Walk it up. */
264 @@ -378,14 +389,14 @@
265 | (0x00000001 << (UL_LEN * 2 + 1 - j)));
266 }
267 }
268 - printf("\b\b\b\b\b\b\b\b\b\b\b");
269 - printf("testing %3u", j);
270 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
271 + dprintf("testing %3u", j);
272 fflush(stdout);
273 if (compare_regions(bufa, bufb, count)) {
274 return -1;
275 }
276 }
277 - printf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
278 + dprintf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
279 fflush(stdout);
280 return 0;
281 }
282 @@ -397,29 +408,29 @@
283 ul q;
284 size_t i;
285
286 - printf(" ");
287 + dprintf(" ");
288 fflush(stdout);
289 for (k = 0; k < UL_LEN; k++) {
290 q = 0x00000001 << k;
291 for (j = 0; j < 8; j++) {
292 - printf("\b\b\b\b\b\b\b\b\b\b\b");
293 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
294 q = ~q;
295 - printf("setting %3u", k * 8 + j);
296 + dprintf("setting %3u", k * 8 + j);
297 fflush(stdout);
298 p1 = (ulv *) bufa;
299 p2 = (ulv *) bufb;
300 for (i = 0; i < count; i++) {
301 *p1++ = *p2++ = (i % 2) == 0 ? q : ~q;
302 }
303 - printf("\b\b\b\b\b\b\b\b\b\b\b");
304 - printf("testing %3u", k * 8 + j);
305 + dprintf("\b\b\b\b\b\b\b\b\b\b\b");
306 + dprintf("testing %3u", k * 8 + j);
307 fflush(stdout);
308 if (compare_regions(bufa, bufb, count)) {
309 return -1;
310 }
311 }
312 }
313 - printf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
314 + dprintf("\b\b\b\b\b\b\b\b\b\b\b \b\b\b\b\b\b\b\b\b\b\b");
315 fflush(stdout);
316 return 0;
317 }
318 diff -urN memtester-4.0.8.old/tests.h memtester-4.0.8/tests.h
319 --- memtester-4.0.8.old/tests.h 2007-11-21 16:54:57.000000000 +0100
320 +++ memtester-4.0.8/tests.h 2008-05-22 01:51:15.072298292 +0200
321 @@ -14,6 +14,8 @@
322 *
323 */
324
325 +extern int quiet;
326 +
327 /* Function declaration. */
328
329 int test_stuck_address(unsigned long volatile *bufa, size_t count);