1 |
#include "../../config.h" |
2 |
#include "../rxvt.h" |
3 |
|
4 |
# /* hack! */ define memset rmemset |
5 |
# /* hack! */ define memmove rmemmove |
6 |
void *memset __PROTO((void *p, int c1, size_t len)); |
7 |
void *memmove __PROTO((void *d, const void *s, size_t len)); |
8 |
# /* hack! */ include "../strings.c" |
9 |
# /* hack! */ undef memmove |
10 |
# /* hack! */ undef memset |
11 |
|
12 |
#define OFF 16 |
13 |
#define BUFSZ 300 |
14 |
|
15 |
unsigned char buf1[BUFSZ], buf2[BUFSZ], buf3[BUFSZ]; |
16 |
|
17 |
int |
18 |
main() |
19 |
{ |
20 |
int i, j, k, a; |
21 |
int res; |
22 |
|
23 |
res = 0; |
24 |
for (i = 0; i < OFF; i++) |
25 |
for (j = 0; j < OFF; j++) |
26 |
for (k = 0; k < OFF; k++) { |
27 |
|
28 |
memset(buf2, 127, BUFSZ); |
29 |
memset(buf3, 127, BUFSZ); |
30 |
for (a = 1; a < 256; a++) |
31 |
buf1[OFF + i + a - 1] = a; |
32 |
rmemmove(buf2 + OFF + k, buf1 + OFF + i, 256 - OFF + j); |
33 |
memmove(buf3 + OFF + k, buf1 + OFF + i, 256 - OFF + j); |
34 |
for (a = 0; a < (int)sizeof buf2; a++) |
35 |
if (buf2[a] != buf3[a]) { |
36 |
res = 1; |
37 |
printf("Test BAD, Start = +%d, Size = +%d, Dest =+ %d: ", |
38 |
i, j, k); |
39 |
printf(" -1=%02x, 0=%02x, %d=%02x, %d=%02x\n", |
40 |
buf2[OFF + k - 1], buf2[OFF + k], |
41 |
255 - OFF + j, buf2[k + 255 + j], |
42 |
256 - OFF + j, buf2[k + 256 + j]); |
43 |
break; |
44 |
} |
45 |
} |
46 |
if (res == 0) |
47 |
printf("OK\n"); |
48 |
exit(res); |
49 |
} |