memtester: add -q option
[packages.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);