filename | test/sh4/testsh4.c |
changeset | 233:f8333b94f503 |
prev | 231:a9e61a96a885 |
next | 357:3592a10b3242 |
author | nkeynes |
date | Wed Jan 03 09:03:50 2007 +0000 (17 years ago) |
permissions | -rw-r--r-- |
last change | Fix to actually work (need the write read/write sizes) Implement the microsecond conversion function |
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 fprintf( stdout, "--> %d/%d instruction tests passed (%d%%)\n\n",
58 total_tests-total_fails, total_tests,
59 ((total_tests-total_fails)*100)/total_tests );
61 fprintf( stdout, "Exception tests...\n" );
62 test_slot_illegal();
63 test_undefined();
64 remove_interrupt_handler();
66 fprintf( stdout, "Total: %d/%d tests passed (%d%%)\n", total_tests-total_fails,
67 total_tests, ((total_tests-total_fails)*100)/total_tests );
68 }
.