ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/test/strings-memmove.c
Revision: 1.2
Committed: Wed Feb 2 08:09:23 2005 UTC (19 years, 3 months ago) by root
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
State: FILE REMOVED
Log Message:
*** empty log message ***

File Contents

# Content
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 }