filename | test/sh4/testsh4.c |
changeset | 358:65043a8f5785 |
prev | 357:3592a10b3242 |
next | 364:d738f6883d4a |
author | nkeynes |
date | Thu Aug 23 12:31:31 2007 +0000 (16 years ago) |
permissions | -rw-r--r-- |
last change | Add tests for mac.l and mac.w Start test cases for fmov Update exception tests |
view | annotate | diff | log | raw |
1 #include <stdio.h>
3 int total_tests = 0;
4 int total_fails = 0;
6 int test_print_result( char *testname, int failed, int total )
7 {
8 fprintf( stdout, "%s: %d/%d tests passed\n", testname, total-failed, total );
9 total_tests += total;
10 total_fails += failed;
11 return failed;
12 }
14 void test_print_failure( char *testname, int number, char *message )
15 {
16 if( message == NULL ) {
17 fprintf( stderr, "%s: Test %d failed!\n", testname, number );
18 } else {
19 fprintf( stderr, "%s: Test %d failed: %s\n", testname, number, message );
20 }
21 }
23 extern unsigned int interrupt_pc;
24 extern unsigned int interrupt_count;
26 int assert_exception_caught( char *testname, int number, unsigned int expectedpc )
27 {
28 if( interrupt_count == 0 ) {
29 fprintf( stderr, "%s: Test %d failed: Expected exception not delivered\n",
30 testname, number );
31 return 1;
32 } else if( interrupt_count != 1 ) {
33 fprintf( stderr, "%s: Test %d failed: Expected exception delivered %d times!\n",
34 testname, number, interrupt_count );
35 return 1;
36 } else if( interrupt_pc != expectedpc ) {
37 fprintf( stderr, "%s: Test %d failed: Expected exception at PC %08X, but was %08X\n",
38 testname, number, expectedpc, interrupt_pc );
39 return 1;
40 } else {
41 return 0;
42 }
43 }
45 int main()
46 {
47 fprintf( stdout, "Instruction tests...\n" );
48 install_interrupt_handler();
49 test_add();
50 test_addc();
51 test_addv();
52 test_and();
53 test_andi();
54 test_bf();
55 test_bt();
56 test_cmp();
57 test_float();
58 test_fmov();
59 test_ftrc();
60 test_mac();
61 fprintf( stdout, "--> %d/%d instruction tests passed (%d%%)\n\n",
62 total_tests-total_fails, total_tests,
63 ((total_tests-total_fails)*100)/total_tests );
65 fprintf( stdout, "Exception tests...\n" );
66 test_slot_illegal();
67 test_undefined();
68 remove_interrupt_handler();
70 fprintf( stdout, "Total: %d/%d tests passed (%d%%)\n", total_tests-total_fails,
71 total_tests, ((total_tests-total_fails)*100)/total_tests );
72 }
.