Search
lxdream.org :: lxdream/test/sh4/testsh4.c
lxdream 0.9.1
released Jun 29
Download Now
filename test/sh4/testsh4.c
changeset 228:70adc8ffa8d1
prev226:0eeeb25447d3
next231:a9e61a96a885
author nkeynes
date Mon Sep 25 11:13:56 2006 +0000 (14 years ago)
permissions -rw-r--r--
last change Commit BF tests and initial exception handler
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( stderr, "%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     install_interrupt_handler();
    48     test_add();
    49     test_addc();
    50     test_addv();
    51     test_and();
    52     test_andi();
    53     test_bf(); 
    54     remove_interrupt_handler();
    56     fprintf( stderr, "Total: %d/%d tests passed (%d%%)\n", total_tests-total_fails,
    57 	     total_tests, ((total_tests-total_fails)*100)/total_tests );
    58 }
.