From 1c0749b9114f468e7be4d4a3b6ac21b46bcc8375 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 2 Sep 2011 12:20:15 +0000 Subject: 2011-09-02 Sebastian Huber * sp40/init.c: Avoid unsupported test cases. --- testsuites/sptests/ChangeLog | 4 ++++ testsuites/sptests/sp40/init.c | 42 ++++++++++++++++++++++++++---------------- 2 files changed, 30 insertions(+), 16 deletions(-) (limited to 'testsuites') diff --git a/testsuites/sptests/ChangeLog b/testsuites/sptests/ChangeLog index dfdb694ab5..b21db6c977 100644 --- a/testsuites/sptests/ChangeLog +++ b/testsuites/sptests/ChangeLog @@ -1,3 +1,7 @@ +2011-09-02 Sebastian Huber + + * sp40/init.c: Avoid unsupported test cases. + 2011-08-22 Sebastian Huber * spfatal13/testcase.h: Fixed test name. diff --git a/testsuites/sptests/sp40/init.c b/testsuites/sptests/sp40/init.c index b96ec5430f..abb8388ae4 100644 --- a/testsuites/sptests/sp40/init.c +++ b/testsuites/sptests/sp40/init.c @@ -62,9 +62,15 @@ rtems_task Init( rtems_device_major_number registered_not; rtems_device_major_number invalid_major = _IO_Number_of_drivers + 1; rtems_interrupt_level level; + bool do_interrupt_context_test = true; puts( "\n\n*** TEST 40 ***" ); + /* Ensure that this test works as expected */ + test_interrupt_context_enter( level ); + do_interrupt_context_test = rtems_interrupt_is_in_progress(); + test_interrupt_context_leave( level ); + /* * Register a driver with init == NULL and open != NULL */ @@ -100,14 +106,16 @@ rtems_task Init( directive_failed( sc, "rtems_io_register_driver" ); puts( "Init - rtems_io_register_driver - called from interrupt context" ); - test_interrupt_context_enter( level ); - sc = rtems_io_register_driver( 0, NULL, NULL ); - test_interrupt_context_leave( level ); - fatal_directive_status( - sc, - RTEMS_CALLED_FROM_ISR, - "rtems_io_register_driver" - ); + if ( do_interrupt_context_test ) { + test_interrupt_context_enter( level ); + sc = rtems_io_register_driver( 0, NULL, NULL ); + test_interrupt_context_leave( level ); + fatal_directive_status( + sc, + RTEMS_CALLED_FROM_ISR, + "rtems_io_register_driver" + ); + } puts( "Init - rtems_io_register_driver - invalid registered major pointer" ); sc = rtems_io_register_driver( 0, NULL, NULL ); @@ -144,14 +152,16 @@ rtems_task Init( ); puts( "Init - rtems_io_unregister_driver - called from interrupt context" ); - test_interrupt_context_enter( level ); - sc = rtems_io_unregister_driver( 0 ); - test_interrupt_context_leave( level ); - fatal_directive_status( - sc, - RTEMS_CALLED_FROM_ISR, - "rtems_io_unregister_driver" - ); + if ( do_interrupt_context_test ) { + test_interrupt_context_enter( level ); + sc = rtems_io_unregister_driver( 0 ); + test_interrupt_context_leave( level ); + fatal_directive_status( + sc, + RTEMS_CALLED_FROM_ISR, + "rtems_io_unregister_driver" + ); + } puts( "Init - rtems_io_unregister_driver - invalid major number" ); sc = rtems_io_unregister_driver( invalid_major ); -- cgit v1.2.3