📄 sptest.adb
字号:
RTEMS.NOT_DEFINED, "SEMAPHORE_CREATE OF FIFO INHERIT PRIORITY" ); TEXT_IO.PUT_LINE("TA1 - semaphore_create - NOT_DEFINED"); RTEMS.SEMAPHORE_CREATE( SPTEST.SEMAPHORE_NAME( 1 ), 1, RTEMS.INHERIT_PRIORITY + RTEMS.COUNTING_SEMAPHORE + RTEMS.PRIORITY, RTEMS.NO_PRIORITY, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.NOT_DEFINED, "SEMAPHORE_CREATE OF COUNTING_SEMAPHORE INHERIT PRIORITY" ); TEXT_IO.PUT_LINE("TA1 - semaphore_create - NOT_DEFINED"); RTEMS.SEMAPHORE_CREATE( SPTEST.SEMAPHORE_NAME( 1 ), 2, RTEMS.BINARY_SEMAPHORE, RTEMS.NO_PRIORITY, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NUMBER, "SEMAPHORE_CREATE OF BINARY_SEMAPHORE with COUNT > 1" ); TEXT_IO.PUT_LINE("TA1 - semaphore_create - INVALID_NUMBER"); RTEMS.SEMAPHORE_CREATE( SPTEST.SEMAPHORE_NAME( 3 ), 1, RTEMS.GLOBAL, RTEMS.NO_PRIORITY, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.MP_NOT_CONFIGURED, "SEMAPHORE_CREATE OF MP_NOT_CONFIGURED" ); TEXT_IO.PUT_LINE("TA1 - semaphore_create - MP_NOT_CONFIGURED"); RTEMS.SEMAPHORE_DELETE( 100, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "SEMAPHORE_DELETE WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_delete - unknown INVALID_ID" ); RTEMS.SEMAPHORE_DELETE( 16#10100#, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "SEMAPHORE_DELETE WITH LOCAL ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_delete - local INVALID_ID" ); RTEMS.SEMAPHORE_IDENT( 100, RTEMS.SEARCH_ALL_NODES, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "SEMAPHORE_IDENT WITH ILLEGAL NAME (local)" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_ident - global INVALID_NAME" ); RTEMS.SEMAPHORE_IDENT( 100, 1, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "SEMAPHORE_IDENT WITH ILLEGAL NAME (global)" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_ident - local INVALID_NAME" ); end SCREEN_5;--PAGE-- -- SCREEN_6-- procedure SCREEN_6 is STATUS : RTEMS.STATUS_CODES; begin RTEMS.SEMAPHORE_OBTAIN( 100, RTEMS.DEFAULT_OPTIONS, RTEMS.NO_TIMEOUT, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "SEMAPHORE_OBTAIN WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - INVALID_ID" ); RTEMS.SEMAPHORE_OBTAIN( SPTEST.SEMAPHORE_ID( 1 ), RTEMS.DEFAULT_OPTIONS, RTEMS.NO_TIMEOUT, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED(STATUS, "SEMAPHORE_OBTAIN SUCCESSFUL"); TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - got sem 1 - SUCCESSFUL" ); RTEMS.SEMAPHORE_OBTAIN( SPTEST.SEMAPHORE_ID( 1 ), RTEMS.NO_WAIT, RTEMS.NO_TIMEOUT, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.UNSATISFIED, "SEMAPHORE_OBTAIN NOT AVAILABLE" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - UNSATISFIED" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - timeout in 3 seconds" ); RTEMS.SEMAPHORE_OBTAIN( SPTEST.SEMAPHORE_ID( 1 ), RTEMS.DEFAULT_OPTIONS, 3 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TIMEOUT, "SEMAPHORE_OBTAIN NOT AVAILABLE" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - woke with TIMEOUT" ); RTEMS.SEMAPHORE_RELEASE( SPTEST.SEMAPHORE_ID( 2 ), STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.NOT_OWNER_OF_RESOURCE, "SEMAPHORE_RELEASE AND NOT OWNER" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_release - NOT_OWNER_OF_RESOURCE" ); RTEMS.SEMAPHORE_RELEASE( 100, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "SEMAPHORE_RELEASE WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_release - INVALID_ID" ); TEXT_IO.PUT_LINE( "TA1 - task_start - start TA2 - SUCCESSFUL" ); RTEMS.TASK_START( SPTEST.TASK_ID( 2 ), SPTEST.TASK_2'ACCESS, 0, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA2" ); 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)" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_delete - delete sem 1 - SUCCESSFUL" ); RTEMS.SEMAPHORE_DELETE( SPTEST.SEMAPHORE_ID( 1 ), STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_DELETE OF SM1" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_obtain - binary semaphore" ); RTEMS.SEMAPHORE_OBTAIN( SPTEST.SEMAPHORE_ID( 2 ), RTEMS.NO_WAIT, RTEMS.NO_TIMEOUT, STATUS ); TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SEMAPHORE_OBTAIN" ); TEXT_IO.PUT_LINE( "TA1 - semaphore_delete - delete sem 2 - RESOURCE_IN_USE" ); RTEMS.SEMAPHORE_DELETE( SPTEST.SEMAPHORE_ID( 2 ), STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.RESOURCE_IN_USE, "SEMAPHORE_DELETE OF SM2" ); 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.TASK_DELETE( SPTEST.TASK_ID( 2 ), STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "TASK_DELETE AFTER THE TASK HAS BEEN DELETED" ); TEXT_IO.PUT_LINE( "TA1 - task_delete TA2 - already deleted INVALID_ID" ); end SCREEN_6;--PAGE-- -- SCREEN_7-- procedure SCREEN_7 is BUFFER : SPTEST.BUFFER; BUFFER_POINTER : RTEMS.ADDRESS; COUNT : RTEMS.UNSIGNED32; MESSAGE_SIZE : RTEMS.UNSIGNED32; STATUS : RTEMS.STATUS_CODES; begin BUFFER_POINTER := BUFFER'ADDRESS; RTEMS.MESSAGE_QUEUE_BROADCAST( 100, BUFFER_POINTER, 16, COUNT, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "MESSAGE_QUEUE_BROADCAST WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_broadcast - INVALID_ID" ); RTEMS.MESSAGE_QUEUE_CREATE( 0, 3, 16, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "MESSAGE_QUEUE_CREATE WITH ILLEGAL NAME" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_create - Q 1 - INVALID_NAME" ); RTEMS.MESSAGE_QUEUE_CREATE( SPTEST.QUEUE_NAME( 1 ), 1, 16, RTEMS.GLOBAL, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.MP_NOT_CONFIGURED, "MESSAGE_QUEUE_CREATE OF MP NOT CONFIGURED" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_create - Q 1 - MP_NOT_CONFIGURED"); 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_CREATE( SPTEST.QUEUE_NAME( 2 ), 1, 16, RTEMS.DEFAULT_ATTRIBUTES, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TOO_MANY, "MESSAGE_QUEUE_CREATE OF TOO MANY" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_create - Q 2 - TOO_MANY" ); RTEMS.MESSAGE_QUEUE_DELETE( 100, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "MESSAGE_QUEUE_DELETE WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - unknown INVALID_ID" ); RTEMS.MESSAGE_QUEUE_DELETE( 16#10100#, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "MESSAGE_QUEUE_DELETE WITH LOCAL ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - local INVALID_ID" ); RTEMS.MESSAGE_QUEUE_IDENT( 100, RTEMS.SEARCH_ALL_NODES, SPTEST.JUNK_ID, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_NAME, "MESSAGE_QUEUE_IDENT WITH ILLEGAL NAME" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_ident - INVALID_NAME" ); RTEMS.MESSAGE_QUEUE_FLUSH( 100, COUNT, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "MESSAGE_QUEUE_FLUSH WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_flush - INVALID_ID" ); RTEMS.MESSAGE_QUEUE_RECEIVE( 100, BUFFER_POINTER, RTEMS.DEFAULT_OPTIONS, RTEMS.NO_TIMEOUT, MESSAGE_SIZE, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "MESSAGE_QUEUE_RECEIVE WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_receive - INVALID_ID" ); RTEMS.MESSAGE_QUEUE_RECEIVE( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, RTEMS.NO_WAIT, RTEMS.NO_TIMEOUT, MESSAGE_SIZE, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.UNSATISFIED, "MESSAGE_QUEUE_RECEIVE UNSATISFIED" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_receive - Q 1 - UNSATISFIED" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_receive - Q 1 - timeout in 3 seconds" ); RTEMS.MESSAGE_QUEUE_RECEIVE( SPTEST.QUEUE_ID( 1 ), BUFFER_POINTER, RTEMS.DEFAULT_OPTIONS, 3 * TEST_SUPPORT.TICKS_PER_SECOND, MESSAGE_SIZE, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.TIMEOUT, "MESSAGE_QUEUE_RECEIVE 3 SECOND TIMEOUT" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_receive - Q 1 - woke up with TIMEOUT" ); RTEMS.MESSAGE_QUEUE_SEND( 100, BUFFER_POINTER, 16, STATUS ); TEST_SUPPORT.FATAL_DIRECTIVE_STATUS( STATUS, RTEMS.INVALID_ID, "MESSAGE_QUEUE_SEND WITH ILLEGAL ID" ); TEXT_IO.PUT_LINE( "TA1 - message_queue_send - INVALID_ID" ); 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" ); end SCREEN_7;--PAGE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -