|
|
1.1 root 1: /*
2: This is test Marching Ones and Zero Test
3: */
4:
5: #include "definitions"
6: #define size (sizeof(testcase)/4) /* number of patterns */
7: extern long maxmem,endprog;
8: extern struct OPTIONS OPTIONS;
9:
10: stest1()
11: { register long *mcr = (long *)0xffffb000;
12:
13: if (OPTIONS.header)
14: writes("\n\n** Subtest1 : Marching patterns.");
15: writes("\nECC off");
16: *mcr = 0; /* Turn ECC off */
17: subtest1(); /* Execute subtest 1 */
18: writes("\nECC on");
19: *mcr = 0xc3; /* Turn ECC on */
20: subtest1(); /* Execute subtest 1 */
21: *mcr = 0; /* Turn ECC off */
22: }
23:
24: subtest1()
25: {
26: register long *curadd,*addr,pattern;
27: int cnt,patno;
28:
29: static unsigned testcase[] = { 0x00000000,
30: 0xffffffff,
31: 0xa5a5a5a5,
32: 0x5a5a5a5a,
33: 0x55555555,
34: 0xaaaaaaaa,
35: 0x0000ffff,
36: 0xffff0000 };
37:
38: for(cnt = size, patno = 0;(cnt-- ); patno++ ) {
39: pattern = testcase[patno]; /* fill memory */
40: for (curadd=(long *)endprog;curadd <= (long *)maxmem;curadd++)
41: *curadd = pattern;
42: for (curadd=(long *)endprog;curadd <= (long *)maxmem;curadd++) {
43: error1: if (*curadd != pattern)
44: if (error(curadd,pattern)) goto error1;
45: *curadd = ~pattern;
46: }
47: for (curadd=(long *)maxmem;curadd >= (long *)endprog;curadd--) {
48: error2: if (*curadd != (~pattern))
49: if (error(curadd,~pattern)) goto error2;
50: *curadd = ~pattern;
51: }
52: }
53: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.