7 int test_print_result( char *testname, int failed, int total )
9 fprintf( stdout, "%s: %d/%d tests passed\n", testname, total-failed, total );
11 total_fails += failed;
15 void test_print_failure( char *testname, int number, char *message )
17 if( message == NULL ) {
18 fprintf( stderr, "%s: Test %d failed!\n", testname, number );
20 fprintf( stderr, "%s: Test %d failed: %s\n", testname, number, message );
24 extern unsigned int interrupt_pc;
25 extern unsigned int interrupt_count;
27 int assert_exception_caught( char *testname, int number, unsigned int expectedpc )
29 if( interrupt_count == 0 ) {
30 fprintf( stderr, "%s: Test %d failed: Expected exception not delivered\n",
33 } else if( interrupt_count != 1 ) {
34 fprintf( stderr, "%s: Test %d failed: Expected exception delivered %d times!\n",
35 testname, number, interrupt_count );
37 } else if( interrupt_pc != expectedpc ) {
38 fprintf( stderr, "%s: Test %d failed: Expected exception at PC %08X, but was %08X\n",
39 testname, number, expectedpc, interrupt_pc );
46 int assert_tlb_exception_caught( char *testname, int number, unsigned int expectedpc,
49 if( assert_exception_caught(testname, number, expectedpc) == 1 ) {
53 unsigned int pteh = long_read(0xFF000000);
54 if( (pteh & 0xFFFFFC00) != (vpn & 0xFFFFFC00) ) {
55 fprintf(stderr, "%s: Test %d failed: Expected PTEH.VPN = %08X, but was %08X\n",
56 testname, number, (vpn>>10), (pteh>>10) );
60 unsigned int tea = long_read(0xFF00000C);
62 fprintf(stderr, "%s: Test %d failed: Expected TEA = %08X, but was %08X\n",
63 testname, number, vpn, tea );
71 fprintf( stdout, "Instruction tests...\n" );
72 install_interrupt_handler();
98 fprintf( stdout, "--> %d/%d instruction tests passed (%d%%)\n\n",
99 total_tests-total_fails, total_tests,
100 ((total_tests-total_fails)*100)/total_tests );
102 fprintf( stdout, "Exception tests...\n" );
107 remove_interrupt_handler();
109 fprintf( stdout, "Total: %d/%d tests passed (%d%%)\n", total_tests-total_fails,
110 total_tests, ((total_tests-total_fails)*100)/total_tests );
.