|
|
1.1 ! root 1: /* ! 2: * CPU integer arithmetics tests. ! 3: * ! 4: * This file is distributed under the GNU General Public License, version 2 ! 5: * or at your option any later version. Read the file gpl.txt for details. ! 6: */ ! 7: ! 8: #include <tos.h> ! 9: ! 10: extern char tst_abcd_1(void); ! 11: extern char tst_abcd_2(void); ! 12: extern char tst_abcd_3(void); ! 13: extern char tst_abcd_4(void); ! 14: ! 15: extern char tst_add_1(void); ! 16: extern char tst_add_2(void); ! 17: extern char tst_add_3(void); ! 18: extern char tst_add_4(void); ! 19: extern char tst_add_5(void); ! 20: extern char tst_add_6(void); ! 21: extern char tst_add_7(void); ! 22: ! 23: extern char tst_addi_1(void); ! 24: extern char tst_addi_2(void); ! 25: extern char tst_addi_3(void); ! 26: extern char tst_addi_4(void); ! 27: extern char tst_addi_5(void); ! 28: extern char tst_addi_6(void); ! 29: ! 30: extern char tst_addq_1(void); ! 31: extern char tst_addq_2(void); ! 32: extern char tst_addq_3(void); ! 33: ! 34: extern char tst_addx_1(void); ! 35: extern char tst_addx_2(void); ! 36: ! 37: extern char tst_shift_1(void); ! 38: extern char tst_shift_2(void); ! 39: extern char tst_shift_3(void); ! 40: extern char tst_shift_4(void); ! 41: extern char tst_shift_5(void); ! 42: extern char tst_shift_6(void); ! 43: extern char tst_shift_7(void); ! 44: extern char tst_shift_8(void); ! 45: ! 46: struct test ! 47: { ! 48: char *name; ! 49: char (*testfunc)(void); ! 50: }; ! 51: ! 52: struct test tests[] = ! 53: { ! 54: { "abcd 1", tst_abcd_1 }, ! 55: { "abcd 2", tst_abcd_2 }, ! 56: { "abcd 3", tst_abcd_3 }, ! 57: { "abcd 4", tst_abcd_4 }, ! 58: ! 59: { "add 1", tst_add_1 }, ! 60: { "add 2", tst_add_2 }, ! 61: { "add 3", tst_add_3 }, ! 62: { "add 4", tst_add_4 }, ! 63: { "add 5", tst_add_5 }, ! 64: { "add 6", tst_add_6 }, ! 65: { "add 7", tst_add_7 }, ! 66: ! 67: { "addi 1", tst_addi_1 }, ! 68: { "addi 2", tst_addi_2 }, ! 69: { "addi 3", tst_addi_3 }, ! 70: { "addi 4", tst_addi_4 }, ! 71: { "addi 5", tst_addi_5 }, ! 72: { "addi 6", tst_addi_6 }, ! 73: ! 74: { "addq 1", tst_addq_1 }, ! 75: { "addq 2", tst_addq_2 }, ! 76: { "addq 3", tst_addq_3 }, ! 77: ! 78: { "addx 1", tst_addx_1 }, ! 79: { "addx 2", tst_addx_2 }, ! 80: ! 81: { "shift 1", tst_shift_1 }, ! 82: { "shift 2", tst_shift_2 }, ! 83: { "shift 3", tst_shift_3 }, ! 84: { "shift 4", tst_shift_4 }, ! 85: { "shift 5", tst_shift_5 }, ! 86: { "shift 6", tst_shift_6 }, ! 87: { "shift 7", tst_shift_7 }, ! 88: { "shift 8", tst_shift_8 }, ! 89: ! 90: { 0L, 0L } ! 91: }; ! 92: ! 93: int main() ! 94: { ! 95: int failures = 0; ! 96: int idx; ! 97: ! 98: for (idx = 0; tests[idx].name != 0L; idx++) ! 99: { ! 100: Cconws("Test '"); ! 101: Cconws(tests[idx].name); ! 102: Cconws("'\t: "); ! 103: if (tests[idx].testfunc() != 0) ! 104: { ! 105: Cconws("FAILED\n"); ! 106: failures++; ! 107: } ! 108: else ! 109: { ! 110: Cconws("OK\n"); ! 111: } ! 112: } ! 113: ! 114: // Crawcin(); ! 115: ! 116: return !(failures == 0); ! 117: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.