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