summaryrefslogtreecommitdiffstats
path: root/c/src/ada-tests/sptests/sp13
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-12 10:00:10 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-12 10:53:16 +0200
commitee537ea3dd964d4de3565a36b4857af31fb5a3f4 (patch)
treead8b328a58469ca0632e3e61cd94f37c9d97cc25 /c/src/ada-tests/sptests/sp13
parentada-tests: Use _SUBDIRS instead of SUBDIRS (diff)
downloadrtems-ee537ea3dd964d4de3565a36b4857af31fb5a3f4.tar.bz2
ada-tests: Move to testsuites/ada
This solves a build dependency issue, e.g. building tests before librtemsbsp.a exists. Close #3079.
Diffstat (limited to 'c/src/ada-tests/sptests/sp13')
-rw-r--r--c/src/ada-tests/sptests/sp13/Makefile.am16
-rw-r--r--c/src/ada-tests/sptests/sp13/ada_sp13.scn78
-rw-r--r--c/src/ada-tests/sptests/sp13/config.h32
-rw-r--r--c/src/ada-tests/sptests/sp13/sp13.adb55
-rw-r--r--c/src/ada-tests/sptests/sp13/sptest.adb891
-rw-r--r--c/src/ada-tests/sptests/sp13/sptest.ads134
6 files changed, 0 insertions, 1206 deletions
diff --git a/c/src/ada-tests/sptests/sp13/Makefile.am b/c/src/ada-tests/sptests/sp13/Makefile.am
deleted file mode 100644
index f54587f3a7..0000000000
--- a/c/src/ada-tests/sptests/sp13/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(top_srcdir)/../../../testsuites/automake/compile.am
-
-include $(top_srcdir)/ada.am
-
-noinst_PROGRAMS = ada_sp13
-ada_sp13_SOURCES = sp13.adb config.h sptest.adb sptest.ads
-ada_sp13_SOURCES += ../../support/init.c
-
-ada_sp13$(EXEEXT): sp13.adb init.$(OBJEXT)
- $(GNATCOMPILE) -margs -a $< -o $@
-
-scndir = $(rtems_ada_testsdir)
-dist_scn_DATA = ada_sp13.scn
-
-include $(top_srcdir)/../../../testsuites/automake/local.am
diff --git a/c/src/ada-tests/sptests/sp13/ada_sp13.scn b/c/src/ada-tests/sptests/sp13/ada_sp13.scn
deleted file mode 100644
index f54a497a58..0000000000
--- a/c/src/ada-tests/sptests/sp13/ada_sp13.scn
+++ /dev/null
@@ -1,78 +0,0 @@
-*** TEST 13 ***
-TA1 - message_queue_ident - qid => 16#22010001#
-TA1 - message_queue_send - BUFFER 1 TO Q 1
-TA1 - message_queue_send - BUFFER 2 TO Q 1
-TA1 - task_wake_after - sleep 5 seconds
-TA2 - message_queue_receive - receive from queue 1 - NO_WAIT
-TA2 - buffer received: BUFFER 1 TO Q 1
-TA2 - message_queue_receive - receive from queue 1 - WAIT FOREVER
-TA2 - buffer received: BUFFER 2 TO Q 1
-TA2 - message_queue_receive - receive from queue 1 - WAIT FOREVER
-TA3 - message_queue_receive - receive from queue 2 - WAIT FOREVER
-TA1 - message_queue_send - BUFFER 3 TO Q 1
-TA1 - task_wake_after - sleep 5 seconds
-TA2 - buffer received: BUFFER 3 TO Q 1
-TA2 - task_set_priority - make self highest priority task
-TA2 - message_queue_receive - receive from queue 2 - WAIT FOREVER
-<pause>
-TA1 - message_queue_send - BUFFER 1 TO Q 2
-TA2 - buffer received: BUFFER 1 TO Q 2
-TA2 - message_queue_send - BUFFER 2 TO Q 2
-TA2 - message_queue_receive - receive from queue 1 - 10 second timeout
-TA1 - message_queue_receive - receive from queue 1 - 10 second timeout
-TA3 - buffer received: BUFFER 2 TO Q 2
-TA3 - message_queue_broadcast - BUFFER 3 TO Q 1
-TA2 - buffer received: BUFFER 3 TO Q 1
-TA2 - message_queue_receive - receive from queue 3 - WAIT FOREVER
-TA3 - number of tasks awakened = 2
-TA3 - message_queue_receive - receive from queue 3 - WAIT FOREVER
-TA1 - buffer received: BUFFER 3 TO Q 1
-TA1 - task_delete - delete TA2
-TA1 - message_queue_send - BUFFER 1 TO Q 3
-TA1 - task_wake_after - sleep 5 seconds
-TA3 - buffer received: BUFFER 1 TO Q 3
-TA3 - task_delete - delete self
-<pause>
-TA1 - message_queue_send - BUFFER 2 TO Q 3
-TA1 - message_queue_send - BUFFER 3 TO Q 3
-TA1 - message_queue_send - BUFFER 4 TO Q 3
-TA1 - message_queue_urgent - BUFFER 5 TO Q 3
-TA1 - message_queue_receive - receive from queue 3 - WAIT FOREVER
-TA1 - buffer received: BUFFER 5 TO Q 3
-TA1 - message_queue_receive - receive from queue 3 - WAIT FOREVER
-TA1 - buffer received: BUFFER 2 TO Q 3
-TA1 - message_queue_receive - receive from queue 3 - WAIT FOREVER
-TA1 - buffer received: BUFFER 3 TO Q 3
-TA1 - message_queue_receive - receive from queue 3 - WAIT FOREVER
-TA1 - buffer received: BUFFER 4 TO Q 3
-TA1 - message_queue_urgent - BUFFER 3 TO Q 2
-TA1 - message_queue_receive - receive from queue 2 - WAIT FOREVER
-TA1 - buffer received: BUFFER 3 TO Q 2
-<pause>
-TA1 - message_queue_delete - delete queue 1
-TA1 - message_queue_urgent - BUFFER 3 TO Q 2
-TA1 - message_queue_delete - delete queue 2
-TA1 - message_queue_get_number_pending - check Q 3
-TA1 - 0 messages are pending on Q 3
-TA1 - message_queue_flush - empty Q 3
-TA1 - 0 messages were flushed from Q 3
-TA1 - message_queue_send - BUFFER 1 TO Q 3
-TA1 - message_queue_send - BUFFER 2 TO Q 3
-TA1 - message_queue_broadcast - NO BUFFER TO Q1
-TA1 - number of tasks awakened = 0
-TA1 - message_queue_get_number_pending - check Q 3
-TA1 - 2 messages are pending on Q 3
-TA1 - message_queue_send - BUFFER 3 TO Q 3
-TA1 - message_queue_flush - Q 3
-TA1 - 3 messages were flushed from Q 3
-TA1 - message_queue_send - until all message buffers consumed
-TA1 - message_queue_send - all message buffers consumed
-TA1 - message_queue_flush - Q 3
-TA1 - 100 messages were flushed from Q 3
-<pause>
-TA1 - create message queue of 20 bytes on queue 1
-TA1 - message_queue_delete - delete queue 1
-<pause>
-TA1 - message_queue_create - variable sizes
-TA1 - message_queue_create and send - variable sizes
-*** END OF TEST 13 ***
diff --git a/c/src/ada-tests/sptests/sp13/config.h b/c/src/ada-tests/sptests/sp13/config.h
deleted file mode 100644
index 8e7821e061..0000000000
--- a/c/src/ada-tests/sptests/sp13/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* config.h
- *
- * This include file defines the Configuration Table for this test.
- *
- * COPYRIGHT (c) 1989-2007.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may in
- * the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-
-/* configuration information */
-
-#define CONFIGURE_SPTEST
-
-#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
-#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-
-#define CONFIGURE_MAXIMUM_TASKS 4
-#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 10
-#define CONFIGURE_TICKS_PER_TIMESLICE 100
-
-#define CONFIGURE_POSIX_INIT_THREAD_TABLE
-
-#define CONFIGURE_MAXIMUM_POSIX_THREADS 10
-#define CONFIGURE_MAXIMUM_POSIX_KEYS 10
-
-#include <rtems/confdefs.h>
-
-/* end of include file */
diff --git a/c/src/ada-tests/sptests/sp13/sp13.adb b/c/src/ada-tests/sptests/sp13/sp13.adb
deleted file mode 100644
index 503e8fb989..0000000000
--- a/c/src/ada-tests/sptests/sp13/sp13.adb
+++ /dev/null
@@ -1,55 +0,0 @@
---
--- MAIN / BODY
---
--- DESCRIPTION:
---
--- This is the entry point for Test SP13 of the Single Processor Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-2011.
--- On-Line Applications Research Corporation (OAR).
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.rtems.org/license/LICENSE.
---
-
-with RTEMS;
-with RTEMS.TASKS;
-with SPTEST;
-with TEST_SUPPORT;
-
-procedure SP13 is
- INIT_ID : RTEMS.ID;
- STATUS : RTEMS.STATUS_CODES;
-begin
-
- RTEMS.TASKS.CREATE(
- RTEMS.BUILD_NAME( 'I', 'N', 'I', 'T' ),
- 1,
- RTEMS.MINIMUM_STACK_SIZE,
- RTEMS.NO_PREEMPT,
- RTEMS.DEFAULT_ATTRIBUTES,
- INIT_ID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF INIT" );
-
-
- RTEMS.TASKS.START(
- INIT_ID,
- SPTEST.INIT'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF INIT" );
-
- loop
- delay 120.0;
- end loop;
-
-end SP13;
-
diff --git a/c/src/ada-tests/sptests/sp13/sptest.adb b/c/src/ada-tests/sptests/sp13/sptest.adb
deleted file mode 100644
index 7b61b9e7ba..0000000000
--- a/c/src/ada-tests/sptests/sp13/sptest.adb
+++ /dev/null
@@ -1,891 +0,0 @@
---
--- SPTEST / BODY
---
--- DESCRIPTION:
---
--- This package is the implementation of Test 13 of the RTEMS
--- Single Processor Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-2011.
--- On-Line Applications Research Corporation (OAR).
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.rtems.org/license/LICENSE.
---
-
-with INTERFACES; use INTERFACES;
-with RTEMS;
-with RTEMS.MESSAGE_QUEUE;
-with TEST_SUPPORT;
-with TEXT_IO;
-with UNSIGNED32_IO;
-use type RTEMS.STATUS_CODES;
-
-package body SPTEST is
-
- type BIG_BUFFER_TYPE is array (1 .. 2048) of RTEMS.UNSIGNED8;
-
-
---
--- INIT
---
-
- procedure INIT (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- ) is
- pragma Unreferenced(ARGUMENT);
- STATUS : RTEMS.STATUS_CODES;
- begin
-
- TEXT_IO.NEW_LINE( 2 );
- TEXT_IO.PUT_LINE( "*** TEST 13 ***" );
-
- SPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( 'T', 'A', '1', ' ' );
- SPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( 'T', 'A', '2', ' ' );
- SPTEST.TASK_NAME( 3 ) := RTEMS.BUILD_NAME( 'T', 'A', '3', ' ' );
-
- RTEMS.TASKS.CREATE(
- SPTEST.TASK_NAME( 1 ),
- 4,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- SPTEST.TASK_ID( 1 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA1" );
-
- RTEMS.TASKS.CREATE(
- SPTEST.TASK_NAME( 2 ),
- 4,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- SPTEST.TASK_ID( 2 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA2" );
-
- RTEMS.TASKS.CREATE(
- SPTEST.TASK_NAME( 3 ),
- 4,
- 2048,
- RTEMS.DEFAULT_MODES,
- RTEMS.DEFAULT_ATTRIBUTES,
- SPTEST.TASK_ID( 3 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA3" );
-
- RTEMS.TASKS.START(
- SPTEST.TASK_ID( 1 ),
- SPTEST.TASK_1'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA1" );
-
- RTEMS.TASKS.START(
- SPTEST.TASK_ID( 2 ),
- SPTEST.TASK_2'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA2" );
-
- RTEMS.TASKS.START(
- SPTEST.TASK_ID( 3 ),
- SPTEST.TASK_3'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA3" );
-
- SPTEST.QUEUE_NAME( 1 ) := RTEMS.BUILD_NAME( 'Q', '1', ' ', ' ' );
- SPTEST.QUEUE_NAME( 2 ) := RTEMS.BUILD_NAME( 'Q', '2', ' ', ' ' );
- SPTEST.QUEUE_NAME( 3 ) := RTEMS.BUILD_NAME( 'Q', '3', ' ', ' ' );
-
- RTEMS.MESSAGE_QUEUE.CREATE(
- SPTEST.QUEUE_NAME( 1 ),
- 100,
- 16,
- RTEMS.DEFAULT_ATTRIBUTES,
- SPTEST.QUEUE_ID( 1 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "QUEUE_CREATE OF Q1" );
-
- RTEMS.MESSAGE_QUEUE.CREATE(
- SPTEST.QUEUE_NAME( 2 ),
- 10,
- 16,
- RTEMS.PRIORITY,
- SPTEST.QUEUE_ID( 2 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "QUEUE_CREATE OF Q2" );
-
- RTEMS.MESSAGE_QUEUE.CREATE(
- SPTEST.QUEUE_NAME( 3 ),
- 100,
- 16,
- RTEMS.DEFAULT_ATTRIBUTES,
- SPTEST.QUEUE_ID( 3 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "QUEUE_CREATE OF Q3" );
-
- RTEMS.TASKS.DELETE( RTEMS.SELF, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
-
- end INIT;
-
---
--- FILL_BUFFER
---
-
---
--- Depends on tricks to make the copy work.
---
-
- procedure FILL_BUFFER (
- SOURCE : in STRING;
- BUFFER : out SPTEST.BUFFER
- ) is
- begin
-
- BUFFER.FIELD1 := RTEMS.BUILD_NAME(
- SOURCE( SOURCE'FIRST ),
- SOURCE( SOURCE'FIRST + 1 ),
- SOURCE( SOURCE'FIRST + 2 ),
- SOURCE( SOURCE'FIRST + 3 )
- );
-
- BUFFER.FIELD2 := RTEMS.BUILD_NAME(
- SOURCE( SOURCE'FIRST + 4 ),
- SOURCE( SOURCE'FIRST + 5 ),
- SOURCE( SOURCE'FIRST + 6 ),
- SOURCE( SOURCE'FIRST + 7 )
- );
-
- BUFFER.FIELD3 := RTEMS.BUILD_NAME(
- SOURCE( SOURCE'FIRST + 8 ),
- SOURCE( SOURCE'FIRST + 9 ),
- SOURCE( SOURCE'FIRST + 10 ),
- SOURCE( SOURCE'FIRST + 11 )
- );
-
- BUFFER.FIELD4 := RTEMS.BUILD_NAME(
- SOURCE( SOURCE'FIRST + 12 ),
- SOURCE( SOURCE'FIRST + 13 ),
- SOURCE( SOURCE'FIRST + 14 ),
- SOURCE( SOURCE'FIRST + 15 )
- );
-
- end FILL_BUFFER;
-
---
--- PUT_BUFFER
---
-
---
--- Depends on tricks to make the output work.
---
-
- procedure PUT_BUFFER (
- BUFFER : in SPTEST.BUFFER
- ) is
- begin
-
- TEST_SUPPORT.PUT_NAME( BUFFER.FIELD1, FALSE );
- TEST_SUPPORT.PUT_NAME( BUFFER.FIELD2, FALSE );
- TEST_SUPPORT.PUT_NAME( BUFFER.FIELD3, FALSE );
- TEST_SUPPORT.PUT_NAME( BUFFER.FIELD4, FALSE );
-
- end PUT_BUFFER;
-
---
--- TASK_1
---
-
- procedure TASK_1 (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- ) is
- pragma Unreferenced(ARGUMENT);
- QID : RTEMS.ID;
- BIG_SEND_BUFFER : BIG_BUFFER_TYPE;
- BIG_SEND_BUFFER_POINTER : constant RTEMS.ADDRESS
- := BIG_SEND_BUFFER'ADDRESS;
- BIG_RECEIVE_BUFFER : BIG_BUFFER_TYPE;
- BIG_RECEIVE_BUFFER_POINTER : constant RTEMS.ADDRESS
- := BIG_RECEIVE_BUFFER'ADDRESS;
- BUFFER : SPTEST.BUFFER;
- BUFFER_POINTER : constant RTEMS.ADDRESS := BUFFER'ADDRESS;
- COUNT : RTEMS.UNSIGNED32;
- MESSAGE_SIZE : RTEMS.UNSIGNED32 := 0;
- STATUS : RTEMS.STATUS_CODES;
- SIZE : RTEMS.UNSIGNED32 := 0;
- begin
-
- RTEMS.MESSAGE_QUEUE.IDENT(
- SPTEST.QUEUE_NAME( 1 ),
- RTEMS.SEARCH_ALL_NODES,
- QID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_IDENT" );
- TEXT_IO.PUT( "TA1 - message_queue_ident - qid => " );
- UNSIGNED32_IO.PUT( QID, WIDTH => 8, BASE => 16 );
- TEXT_IO.NEW_LINE;
-
- SPTEST.FILL_BUFFER( "BUFFER 1 TO Q 1 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 1 TO Q 1" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 1 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- SPTEST.FILL_BUFFER( "BUFFER 2 TO Q 1 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 2 TO Q 1" );
- 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 - task_wake_after - sleep 5 seconds" );
- RTEMS.TASKS.WAKE_AFTER( 5 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
-
- SPTEST.FILL_BUFFER( "BUFFER 3 TO Q 1 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 3 TO Q 1" );
- 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 - task_wake_after - sleep 5 seconds" );
- RTEMS.TASKS.WAKE_AFTER( 5 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
-
-TEST_SUPPORT.PAUSE;
-
- SPTEST.FILL_BUFFER( "BUFFER 1 TO Q 2 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 1 TO Q 2" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 2 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- TEXT_IO.PUT(
- "TA1 - message_queue_receive - receive from queue 1 - "
- );
- TEXT_IO.PUT_LINE( "10 second timeout" );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 1 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- 10 * TEST_SUPPORT.TICKS_PER_SECOND,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA1 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- TEXT_IO.PUT_LINE( "TA1 - task_delete - delete TA2" );
- RTEMS.TASKS.DELETE( SPTEST.TASK_ID( 2 ), STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE" );
-
- SPTEST.FILL_BUFFER( "BUFFER 1 TO Q 3 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 1 TO Q 3" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- TEXT_IO.PUT_LINE( "TA1 - task_wake_after - sleep 5 seconds" );
- RTEMS.TASKS.WAKE_AFTER( 5 * TEST_SUPPORT.TICKS_PER_SECOND, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_WAKE_AFTER" );
-
-TEST_SUPPORT.PAUSE;
-
- SPTEST.FILL_BUFFER( "BUFFER 2 TO Q 3 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 2 TO Q 3" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- SPTEST.FILL_BUFFER( "BUFFER 3 TO Q 3 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 3 TO Q 3" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- SPTEST.FILL_BUFFER( "BUFFER 4 TO Q 3 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 4 TO Q 3" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- SPTEST.FILL_BUFFER( "BUFFER 5 TO Q 3 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_urgent - BUFFER 5 TO Q 3" );
- RTEMS.MESSAGE_QUEUE.URGENT(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_URGENT" );
-
- for TIMES in 1 .. 4
- loop
- TEXT_IO.PUT(
- "TA1 - message_queue_receive - receive from queue 3 - "
- );
- TEXT_IO.PUT_LINE( "WAIT FOREVER" );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA1 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
- end loop;
-
- SPTEST.FILL_BUFFER( "BUFFER 3 TO Q 2 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_urgent - BUFFER 3 TO Q 2" );
- RTEMS.MESSAGE_QUEUE.URGENT(
- SPTEST.QUEUE_ID( 2 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_URGENT" );
-
- TEXT_IO.PUT(
- "TA1 - message_queue_receive - receive from queue 2 - "
- );
- TEXT_IO.PUT_LINE( "WAIT FOREVER" );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 2 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA1 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
-TEST_SUPPORT.PAUSE;
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - delete queue 1" );
- RTEMS.MESSAGE_QUEUE.DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_DELETE" );
-
- SPTEST.FILL_BUFFER( "BUFFER 3 TO Q 2 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_urgent - BUFFER 3 TO Q 2" );
- RTEMS.MESSAGE_QUEUE.URGENT(
- SPTEST.QUEUE_ID( 2 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_URGENT" );
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - delete queue 2" );
- RTEMS.MESSAGE_QUEUE.DELETE( SPTEST.QUEUE_ID( 2 ), STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_DELETE" );
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_get_number_pending - check Q 3" );
- RTEMS.MESSAGE_QUEUE.GET_NUMBER_PENDING(
- SPTEST.QUEUE_ID( 3 ), COUNT, STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED(
- STATUS, "MESSAGE_QUEUE_GET_NUMBER_PENDING"
- );
- TEXT_IO.PUT( "TA1 - " );
- UNSIGNED32_IO.PUT( COUNT, WIDTH => 3, BASE => 10 );
- TEXT_IO.PUT_LINE( " messages are pending on Q 3" );
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_flush - empty Q 3" );
- RTEMS.MESSAGE_QUEUE.FLUSH( SPTEST.QUEUE_ID( 3 ), COUNT, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_FLUSH" );
- TEXT_IO.PUT( "TA1 - " );
- UNSIGNED32_IO.PUT( COUNT, WIDTH => 3, BASE => 10 );
- TEXT_IO.PUT_LINE( " messages were flushed from Q 3" );
-
- SPTEST.FILL_BUFFER( "BUFFER 1 TO Q 3 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 1 TO Q 3" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- SPTEST.FILL_BUFFER( "BUFFER 2 TO Q 3 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 2 TO Q 3" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- -- this broadcast should have no effect on the queue
- SPTEST.FIlL_BUFFER( "NO BUFFER TO Q1 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_broadcast - NO BUFFER TO Q1" );
- RTEMS.MESSAGE_QUEUE.BROADCAST(
- SPTEST.QUEUE_ID( 1 ),
- BUFFER_POINTER,
- 16,
- COUNT,
- STATUS
- );
- TEXT_IO.PUT( "TA1 - number of tasks awakened = " );
- UNSIGNED32_IO.PUT( COUNT, WIDTH => 3, BASE => 10 );
- TEXT_IO.NEW_LINE;
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_get_number_pending - check Q 3" );
- RTEMS.MESSAGE_QUEUE.GET_NUMBER_PENDING(
- SPTEST.QUEUE_ID( 3 ), COUNT, STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED(
- STATUS, "MESSAGE_QUEUE_GET_NUMBER_PENDING"
- );
- TEXT_IO.PUT( "TA1 - " );
- UNSIGNED32_IO.PUT( COUNT, WIDTH => 3, BASE => 10 );
- TEXT_IO.PUT_LINE( " messages are pending on Q 3" );
-
- SPTEST.FILL_BUFFER( "BUFFER 3 TO Q 3 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA1 - message_queue_send - BUFFER 3 TO Q 3" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_flush - Q 3" );
- RTEMS.MESSAGE_QUEUE.FLUSH( SPTEST.QUEUE_ID( 3 ), COUNT, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_FLUSH" );
- TEXT_IO.PUT( "TA1 - " );
- UNSIGNED32_IO.PUT( COUNT, WIDTH => 3, BASE => 10 );
- TEXT_IO.PUT_LINE( " messages were flushed from Q 3" );
-
- TEXT_IO.PUT_LINE(
- "TA1 - message_queue_send - until all message buffers consumed"
- );
- loop
-
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
-
- exit when RTEMS.ARE_STATUSES_EQUAL( STATUS, RTEMS.TOO_MANY );
-
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- end loop;
-
- TEXT_IO.PUT_LINE(
- "TA1 - message_queue_send - all message buffers consumed"
- );
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_flush - Q 3" );
- RTEMS.MESSAGE_QUEUE.FLUSH( SPTEST.QUEUE_ID( 3 ), COUNT, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_FLUSH" );
- TEXT_IO.PUT( "TA1 - " );
- UNSIGNED32_IO.PUT( COUNT, WIDTH => 3, BASE => 10 );
- TEXT_IO.PUT_LINE( " messages were flushed from Q 3" );
-
-TEST_SUPPORT.PAUSE;
-
- TEXT_IO.PUT_LINE( "TA1 - create message queue of 20 bytes on queue 1" );
- RTEMS.MESSAGE_QUEUE.CREATE(
- SPTEST.QUEUE_NAME( 1 ),
- 100,
- 20,
- RTEMS.DEFAULT_ATTRIBUTES,
- SPTEST.QUEUE_ID( 1 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED(
- STATUS, "MESSAGE_QUEUE_CREATE of Q1; 20 bytes each"
- );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 1 ), BIG_SEND_BUFFER_POINTER, 40, STATUS
- );
- TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
- STATUS, RTEMS.INVALID_SIZE, "expected INVALID_SIZE"
- );
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_delete - delete queue 1" );
- RTEMS.MESSAGE_QUEUE.DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_DELETE" );
-
-TEST_SUPPORT.PAUSE;
-
- TEXT_IO.PUT_LINE( "TA1 - message_queue_create - variable sizes " );
- for QUEUE_SIZE in 1 .. 1029 loop
- RTEMS.MESSAGE_QUEUE.CREATE(
- SPTEST.QUEUE_NAME( 1 ),
- 2, -- just 2 msgs each
- RTEMS.UNSIGNED32( QUEUE_SIZE ),
- RTEMS.DEFAULT_ATTRIBUTES,
- QUEUE_ID( 1 ),
- STATUS
- );
- if STATUS /= RTEMS.SUCCESSFUL then
- TEXT_IO.PUT( "TA1 - msq que size: " );
- UNSIGNED32_IO.PUT(
- RTEMS.UNSIGNED32( QUEUE_SIZE ), WIDTH => 3, BASE => 10
- );
- TEXT_IO.NEW_LINE;
- TEST_SUPPORT.DIRECTIVE_FAILED(
- STATUS, "message_queue_create of Q1"
- );
- end if;
-
- RTEMS.MESSAGE_QUEUE.DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "message_queue_delete" );
- end loop;
-
- TEXT_IO.PUT_LINE(
- "TA1 - message_queue_create and send - variable sizes "
- );
- for QUEUE_SIZE in 1 .. 1029 loop
-
- RTEMS.MESSAGE_QUEUE.CREATE(
- SPTEST.QUEUE_NAME( 1 ),
- 2, -- just 2 msgs each
- RTEMS.UNSIGNED32( QUEUE_SIZE ),
- RTEMS.DEFAULT_ATTRIBUTES,
- SPTEST.QUEUE_ID( 1 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED(status, "message_queue_create of Q1");
-
- BIG_SEND_BUFFER := (others => CHARACTER'POS( 'A' ));
- BIG_RECEIVE_BUFFER := (others => CHARACTER'POS( 'Z' ));
-
- -- send a msg too big
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 1 ),
- BIG_SEND_BUFFER_POINTER,
- RTEMS.UNSIGNED32( QUEUE_SIZE + 1 ),
- STATUS
- );
- TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
- STATUS, RTEMS.INVALID_SIZE, "message_queue_send too large"
- );
-
- -- send a msg that is just right
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 1 ),
- BIG_SEND_BUFFER_POINTER,
- RTEMS.UNSIGNED32( QUEUE_SIZE ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED(
- STATUS, "message_queue_send exact size"
- );
-
- -- now read and verify the message just sent
- SIZE := INTERFACES.UNSIGNED_32(QUEUE_SIZE);
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 1 ),
- BIG_RECEIVE_BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- 1 * TEST_SUPPORT.TICKS_PER_SECOND,
- SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED(
- STATUS, "message_queue_receive exact size"
- );
- if SIZE /= RTEMS.UNSIGNED32( QUEUE_SIZE ) then
- TEXT_IO.PUT(
- "TA1 - exact size size match failed for queue_size = "
- );
- UNSIGNED32_IO.PUT(
- RTEMS.UNSIGNED32( QUEUE_SIZE ), WIDTH => 3, BASE => 10
- );
- TEXT_IO.NEW_LINE;
- end if;
-
- if (BIG_SEND_BUFFER( BIG_SEND_BUFFER'FIRST .. Integer( SIZE )) /=
- BIG_RECEIVE_BUFFER( BIG_RECEIVE_BUFFER'FIRST .. Integer( SIZE )))
- then
- TEXT_IO.PUT_LINE("TA1 - exact size data match failed");
- end if;
-
- for I in Integer( SIZE + 1 ) .. BIG_RECEIVE_BUFFER'LAST loop
- if BIG_RECEIVE_BUFFER( I ) /= CHARACTER'POS( 'Z' ) then
- TEXT_IO.PUT_LINE("TA1 - exact size overrun match failed");
- end if;
- end loop;
-
- -- all done with this one; delete it
- RTEMS.MESSAGE_QUEUE.DELETE( SPTEST.QUEUE_ID( 1 ), STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "message_queue_delete" );
- end loop;
-
- TEXT_IO.PUT_LINE( "*** END OF TEST 13 ***" );
- RTEMS.SHUTDOWN_EXECUTIVE( 0 );
-
- end TASK_1;
-
---
--- TASK_2
---
-
- procedure TASK_2 (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- ) is
- pragma Unreferenced(ARGUMENT);
- BUFFER : SPTEST.BUFFER;
- BUFFER_POINTER : RTEMS.ADDRESS;
- PREVIOUS_PRIORITY : RTEMS.TASKS.PRIORITY;
- MESSAGE_SIZE : RTEMS.UNSIGNED32 := 0;
- STATUS : RTEMS.STATUS_CODES;
- begin
-
- BUFFER_POINTER := BUFFER'ADDRESS;
-
- TEXT_IO.PUT_LINE(
- "TA2 - message_queue_receive - receive from queue 1 - NO_WAIT"
- );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 1 ),
- BUFFER_POINTER,
- RTEMS.NO_WAIT,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA2 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- TEXT_IO.PUT_LINE(
- "TA2 - message_queue_receive - receive from queue 1 - WAIT FOREVER"
- );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 1 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA2 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- TEXT_IO.PUT_LINE(
- "TA2 - message_queue_receive - receive from queue 1 - WAIT FOREVER"
- );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 1 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA2 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- TEXT_IO.PUT_LINE(
- "TA2 - task_set_priority - make self highest priority task"
- );
- RTEMS.TASKS.SET_PRIORITY(
- RTEMS.SELF,
- 3,
- PREVIOUS_PRIORITY,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SET_PRIORITY" );
-
- TEXT_IO.PUT_LINE(
- "TA2 - message_queue_receive - receive from queue 2 - WAIT FOREVER"
- );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 2 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA2 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- SPTEST.FILL_BUFFER( "BUFFER 2 TO Q 2 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA2 - message_queue_send - BUFFER 2 TO Q 2" );
- RTEMS.MESSAGE_QUEUE.SEND(
- SPTEST.QUEUE_ID( 2 ),
- BUFFER_POINTER,
- 16,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_SEND" );
-
- TEXT_IO.PUT_LINE(
- "TA2 - message_queue_receive - receive from queue 1 - 10 second timeout"
- );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 1 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- 10 * TEST_SUPPORT.TICKS_PER_SECOND,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA2 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- TEXT_IO.PUT_LINE(
- "TA2 - message_queue_receive - receive from queue 3 - WAIT FOREVER"
- );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA2 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- end TASK_2;
-
---
--- TASK_3
---
-
- procedure TASK_3 (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- ) is
- pragma Unreferenced(ARGUMENT);
- BUFFER : SPTEST.BUFFER;
- BUFFER_POINTER : RTEMS.ADDRESS;
- COUNT : RTEMS.UNSIGNED32;
- MESSAGE_SIZE : RTEMS.UNSIGNED32 := 0;
- STATUS : RTEMS.STATUS_CODES;
- begin
-
- BUFFER_POINTER := BUFFER'ADDRESS;
-
- TEXT_IO.PUT_LINE(
- "TA3 - message_queue_receive - receive from queue 2 - WAIT FOREVER"
- );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 2 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA3 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- SPTEST.FILL_BUFFER( "BUFFER 3 TO Q 1 ", BUFFER );
- TEXT_IO.PUT_LINE( "TA3 - message_queue_broadcast - BUFFER 3 TO Q 1" );
- RTEMS.MESSAGE_QUEUE.BROADCAST(
- SPTEST.QUEUE_ID( 1 ),
- BUFFER_POINTER,
- 16,
- COUNT,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_BROADCAST" );
- TEXT_IO.PUT( "TA3 - number of tasks awakened = " );
- UNSIGNED32_IO.PUT( COUNT, WIDTH => 3, BASE => 10 );
- TEXT_IO.NEW_LINE;
-
- TEXT_IO.PUT_LINE(
- "TA3 - message_queue_receive - receive from queue 3 - WAIT FOREVER"
- );
- RTEMS.MESSAGE_QUEUE.RECEIVE(
- SPTEST.QUEUE_ID( 3 ),
- BUFFER_POINTER,
- RTEMS.DEFAULT_OPTIONS,
- RTEMS.NO_TIMEOUT,
- MESSAGE_SIZE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "MESSAGE_QUEUE_RECEIVE" );
- TEXT_IO.PUT( "TA3 - buffer received: " );
- SPTEST.PUT_BUFFER( BUFFER );
- TEXT_IO.NEW_LINE;
-
- TEXT_IO.PUT_LINE( "TA3 - task_delete - delete self" );
- RTEMS.TASKS.DELETE( RTEMS.SELF, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
-
- end TASK_3;
-
-end SPTEST;
diff --git a/c/src/ada-tests/sptests/sp13/sptest.ads b/c/src/ada-tests/sptests/sp13/sptest.ads
deleted file mode 100644
index 9b92b3ba61..0000000000
--- a/c/src/ada-tests/sptests/sp13/sptest.ads
+++ /dev/null
@@ -1,134 +0,0 @@
---
--- SPTEST / SPECIFICATION
---
--- DESCRIPTION:
---
--- This package is the specification for Test 13 of the RTEMS
--- Single Processor Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-2011.
--- On-Line Applications Research Corporation (OAR).
---
--- The license and distribution terms for this file may in
--- the file LICENSE in this distribution or at
--- http://www.rtems.org/license/LICENSE.
---
-
-with RTEMS;
-with RTEMS.TASKS;
-
-package SPTEST is
-
---
--- Buffer Record similar to that used by RTEMS 3.2.1. Using this
--- avoids changes to the test.
---
-
- type BUFFER is
- record
- FIELD1 : RTEMS.NAME; -- TEMPORARY UNTIL VARIABLE LENGTH
- FIELD2 : RTEMS.NAME;
- FIELD3 : RTEMS.NAME;
- FIELD4 : RTEMS.NAME;
- end record;
-
---
--- These arrays contain the IDs and NAMEs of all RTEMS tasks created
--- by this test.
---
-
- TASK_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
- TASK_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
-
---
--- These arrays contain the IDs and NAMEs of all RTEMS message
--- queues created by this test.
---
-
- QUEUE_ID : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.ID;
- QUEUE_NAME : array ( RTEMS.UNSIGNED32 range 1 .. 3 ) of RTEMS.NAME;
-
---
--- INIT
---
--- DESCRIPTION:
---
--- This RTEMS task initializes the application.
---
-
- procedure INIT (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- );
- pragma Convention (C, INIT);
-
---
--- FILL_BUFFER
---
--- DESCRIPTION:
---
--- This subprogram takes the SOURCE input string and places
--- up to the first sixteen characters of that string into
--- the message BUFFER.
---
-
- procedure FILL_BUFFER (
- SOURCE : in STRING;
- BUFFER : out SPTEST.BUFFER
- );
-
---
--- PUT_BUFFER
---
--- DESCRIPTION:
---
--- This subprogram prints the specified message BUFFER.
---
-
- procedure PUT_BUFFER (
- BUFFER : in SPTEST.BUFFER
- );
-
---
--- TASK_1
---
--- DESCRIPTION:
---
--- This RTEMS task tests the Message Queue Manager.
---
-
- procedure TASK_1 (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- );
- pragma Convention (C, TASK_1);
-
---
--- TASK_2
---
--- DESCRIPTION:
---
--- This RTEMS task tests the Message Queue Manager.
---
-
- procedure TASK_2 (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- );
- pragma Convention (C, TASK_2);
-
---
--- TASK_3
---
--- DESCRIPTION:
---
--- This RTEMS task tests the Message Queue Manager.
---
-
- procedure TASK_3 (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- );
- pragma Convention (C, TASK_3);
-
-end SPTEST;