|
|
1.1 root 1:
2: /* For error reporting
3: */
4: long test_no;
5: long subtst;
6: long ercode;
7: long actual;
8: long expected;
9: long stpc;
10: long no_opr;
11: long opr[4];
12: long error_cnt;
13:
14: /* For looping
15: */
16: long cycle;
17: long forever;
18: long force_lp, scoplp;
19:
20: /* For messages
21: */
22: long display;
23: long heading;
24: long op_mode; /* 1 : Tahoe, 0 : CP */
25:
26: /* Counters
27: */
28: long prog_cnt;
29: long test_cnt;
30: extern struct TEST_TBL {
31: short run;
32: short loop;
33: char *name;
34: } test_tbl[];
35:
36: M_error()
37: {
38: if (op_mode == 1) tahoe_err();
39: else /* Gives everythings to CP */
40: cp_err();
41: }
42:
43: tahoe_err()
44: { register long dummy;
45:
46: if (display) disp_err();
47: if (forever && !display) scoplp = 1;
48: if (forever) {
49: force_lp = 1; /* Checked in each subtest */
50: longjmp();
51: }
52: dummy =1;
53: asm("halt");
54: }
55:
56: disp_err()
57: { long ix;
58:
59: writes("\n ** Test no ("); writeh(test_no); writes(") ");
60: writes(test_tbl[test_no-1].name);
61: writes("Subtest "); writed(subtst);
62: if (ercode==1) writes("\nUnexpected result.");
63: else if (ercode==2) writes("\nFlag error.");
64: else if (ercode==3) writes("\nOperand modified.");
65: writes("\n** Actual "); writeh(actual);
66: writes(", Expected "); writeh(expected);
67: for (ix=0;ix<no_opr;ix++) {
68: writes("\nOperand");writed(ix+1); writes(" ");writeh(opr[ix]);
69: }
70: writec('\n');
71: }
72:
73: long tname;
74: cp_err()
75: { long dummy;
76: if (forever) {
77: force_lp = 1; /* Checked in each subtest */
78: scoplp = 1;
79: longjmp();
80: }
81: tname = (long)test_tbl[test_no-1].name;
82: asm("movl _test_no,r0");
83: asm("movl _stpc,r1");
84: asm("movl _subtst,r2");
85: asm("movl _ercode,r3");
86: asm("movl _actual,r4");
87: asm("movl _expected,r5");
88: asm("movl _no_opr,r6");
89: asm("movl _opr,r7");
90: asm("movl _opr + 4,r8");
91: asm("movl _opr + 8,r9");
92: asm("movl _opr + 12,r10");
93: asm("movl _tname,r11");
94: asm("halt");
95: }
96:
97: lp_init()
98: {
99: /* Clear all vars for looping */
100: error_cnt=subtst=ercode=actual=expected=stpc=no_opr=0;
101: opr[0]=opr[1]=opr[2]=opr[3]=0;
102:
103: }
104:
105: End()
106: {
107: writes("\nTest completed with "); writed(error_cnt);
108: writes(" errors\n");
109: }
110:
111: pr_hd()
112: { long ix;
113:
114: if (heading && op_mode) {
115: writes(" ** Test no ("); writeh(test_no); writes(") ");
116: writes(test_tbl[test_no-1].name);
117: }
118: }
119:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.