📄 sptest.adb
字号:
-- -- SCREEN_8-- procedure SCREEN_8 is BUFFER : SPTEST.BUFFER; BUFFER_POINTER : RTEMS.ADDRESS; STATUS : RTEMS.STATUS_CODES; begin BUFFER_POINTER := BUFFER'ADDRESS; RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_DELETE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - Q 1 - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_CREATE( SPTEST.QUEUE_NAME( 1 ), 2, 16, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.QUEUE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_create - Q 1 - 2 DEEP - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_SEND( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, 16, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 1 TO Q 1 - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_SEND( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, 16, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 2 TO Q 1 - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_SEND( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, 16, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TOO_MANY, "MESSAGE_QUEUE_SEND TOO MANY TO LIMITED QUEUE" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 3 TO Q 1 - TOO_MANY" ); RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_DELETE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - Q 1 - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_CREATE( SPTEST.QUEUE_NAME( 1 ), 3, 16, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.QUEUE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_create - Q 1 - 3 DEEP - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_SEND( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, 16, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 1 TO Q 1 - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_SEND( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, 16, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 2 TO Q 1 - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_SEND( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, 16, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 3 TO Q 1 - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_SEND( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, 16, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TOO_MANY, "MESSAGE_QUEUE_SEND TOO MANY TO LIMITED QUEUE" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 4 TO Q 1 - TOO_MANY" ); RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_DELETE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - Q 1 - SUCCESSFUL" ); RTEMS.MESSAGE_QUEUE_CREATE( SPTEST.QUEUE_NAME( 1 ), 2, 16, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.QUEUE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_CREATE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_create - Q 1 - 3 DEEP - SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - task_start - start TA3 - SUCCESSFUL" ); RTEMS.TASK_START( SPTEST.TASK_ID( 3 ), SPTEST.TASK_3'ACCESS, 0, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA3" ); TEXT_IO.PUT_LINE( "TA1 - task_wake_after - yield processor - SUCCESSFUL" ); RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" ); RTEMS.MESSAGE_QUEUE_DELETE( SPTEST.QUEUE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_DELETE SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - delete Q 1 - SUCCESSFUL" ); TEXT_IO.PUT_LINE( "TA1 - task_wake_after - yield processor - SUCCESSFUL" ); RTEMS.TASK_WAKE_AFTER( RTEMS.YIELD_PROCESSOR, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER (yield)" ); end SCREEN_8;--PAGE-- -- SCREEN_9-- procedure SCREEN_9 is CONVERTED : RTEMS.ADDRESS; STATUS : RTEMS.STATUS_CODES; OLD_SERVICE_ROUTINE : RTEMS.ADDRESS; begin-- RTEMS.INTERRUPT_CATCH( -- SPTEST.SERVICE_ROUTINE'ACCESS,-- 500,-- OLD_SERVICE_ROUTINE,-- STATUS-- );-- TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(-- STATUS,-- RTEMS.INVALID_NUMBER,-- "INTERRUPT_CATCH WITH INVALID VECTOR"-- );-- TEXT_IO.PUT_LINE( "TA1 - interrupt_catch - INVALID_NUMBER" ); TEXT_IO.PUT_LINE( "TA1 - interrupt_catch - INVALID_NUMBER -- constraint error" ); RTEMS.INTERRUPT_CATCH( RTEMS.NULL_ADDRESS, 3, OLD_SERVICE_ROUTINE, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ADDRESS, "INTERRUPT_CATCH WITH INVALID HANDLER" ); TEXT_IO.PUT_LINE( "TA1 - interrupt_catch - INVALID_ADDRESS" ); RTEMS.SIGNAL_SEND( 100, RTEMS.SIGNAL_1, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "SIGNAL_SEND WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - signal_send - INVALID_ID" ); RTEMS.SIGNAL_SEND( RTEMS.SELF, RTEMS.SIGNAL_16, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.NOT_DEFINED, "SIGNAL_SEND WITH NO HANDLER" ); TEXT_IO.PUT_LINE( "TA1 - signal_send - NOT_DEFINED" ); RTEMS.PORT_CREATE( 0, SPTEST.INTERNAL_PORT_AREA'ADDRESS, SPTEST.EXTERNAL_PORT_AREA'ADDRESS, SPTEST.INTERNAL_PORT_AREA'LENGTH, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "PORT_CREATE WITH ILLEGAL NAME" ); TEXT_IO.PUT_LINE( "TA1 - port_create - INVALID_NAME" ); RTEMS.PORT_CREATE( SPTEST.PORT_NAME( 1 ), SPTEST.INTERNAL_PORT_AREA( 1 )'ADDRESS, SPTEST.EXTERNAL_PORT_AREA'ADDRESS, SPTEST.INTERNAL_PORT_AREA'LENGTH, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ADDRESS, "PORT_CREATE WITH ILLEGAL ADDRESS" ); TEXT_IO.PUT_LINE( "TA1 - port_create - INVALID_ADDRESS" ); RTEMS.PORT_CREATE( SPTEST.PORT_NAME( 1 ), SPTEST.INTERNAL_PORT_AREA'ADDRESS, SPTEST.EXTERNAL_PORT_AREA'ADDRESS, SPTEST.INTERNAL_PORT_AREA'LENGTH, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TOO_MANY, "PORT_CREATE OF TOO MANY" ); TEXT_IO.PUT_LINE( "TA1 - port_create - TOO_MANY" ); RTEMS.PORT_DELETE( 0, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "PORT_DELETE WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - port_delete - INVALID_ID" ); RTEMS.PORT_IDENT( 0, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "PORT_IDENT WITH ILLEGAL NAME" ); TEXT_IO.PUT_LINE( "TA1 - port_ident - INVALID_NAME" ); RTEMS.PORT_INTERNAL_TO_EXTERNAL( 100, SPTEST.INTERNAL_PORT_AREA'ADDRESS, CONVERTED, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "PORT_INTERNAL_TO_EXTERNAL WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - port_internal_to_external - INVALID_ID" ); RTEMS.PORT_EXTERNAL_TO_INTERNAL( 100, SPTEST.EXTERNAL_PORT_AREA'ADDRESS, CONVERTED, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "PORT_EXTERNAL_TO_INTERNAL WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - port_external_to_internal - INVALID_ID" ); end SCREEN_9;--PAGE-- -- SCREEN_10-- procedure SCREEN_10 is STATUS : RTEMS.STATUS_CODES; begin RTEMS.RATE_MONOTONIC_CREATE( 0, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "RATE_MONOTONIC_CREATE WITH ILLEGAL NAME" ); TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_create - INVALID_NAME" ); RTEMS.RATE_MONOTONIC_CREATE( SPTEST.PERIOD_NAME( 1 ), SPTEST.PERIOD_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "RATE_MONOTONIC_CREATE" ); TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_create - SUCCESSFUL" ); RTEMS.RATE_MONOTONIC_CREATE( SPTEST.PERIOD_NAME( 1 ), SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TOO_MANY, "RATE_MONOTONIC_CREATE FOR TOO MANY" ); TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_create - TOO_MANY" ); RTEMS.RATE_MONOTONIC_IDENT( 0, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "RATE_MONOTONIC_IDENT WITH ILLEGAL NAME" ); TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_ident - INVALID_NAME" ); RTEMS.RATE_MONOTONIC_PERIOD( 100, 5, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "RATE_MONOTONIC_PERIOD WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_period - unknown INVALID_ID" ); RTEMS.RATE_MONOTONIC_PERIOD( 16#10100#, 5, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "RATE_MONOTONIC_PERIOD WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_period - local INVALID_ID" ); RTEMS.RATE_MONOTONIC_PERIOD( SPTEST.PERIOD_ID( 1 ), RTEMS.PERIOD_STATUS, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.NOT_DEFINED, "RATE_MONOTONIC_PERIOD STATUS NOT DEFINED" ); TEXT_IO.PUT_LINE( "TA1 - rate_monotonic_period( STATUS ) - NOT_DEFINED" ); RTEMS.RATE_MONOTONIC_PERIOD( SPTEST.PERIOD_ID( 1 ), 100, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "RATE_MONOTONIC_PERIOD 100 TICKS" ); TEXT_IO.PUT( "TA1 - rate_monotonic_period - 100 ticks - " ); TEXT_IO.PUT_LINE( "SUCCESSFUL" ); RTEMS.RATE_MONOTONIC_PERIOD( SPTEST.PERIOD_ID( 1 ), RTEMS.PERIOD_STATUS, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "RATE_MONOTONIC_PERIOD STATUS" ); TEXT_IO.PUT( "TA1 - rate_monotonic_period( STATUS ) - " ); TEXT_IO.PUT_LINE( "SUCCESSFUL" ); loop RTEMS.RATE_MONOTONIC_PERIOD( SPTEST.PERIOD_ID( 1 ), RTEMS.PERIOD_STATUS, STATUS ); exit when RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.TIMEOUT ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "RATE_MONOTONIC_PERIOD STATUS WAITING FOR TIMEOUT" );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -