source: rtems/testsuites/ada/sptests/sp23/sptest.adb @ 76bd25e

5
Last change on this file since 76bd25e was f6c9334d, checked in by Sebastian Huber <sebastian.huber@…>, on 12/01/17 at 07:51:17

ada: Add standard test begin/end message

  • Property mode set to 100644
File size: 5.1 KB
Line 
1--
2--  SPTEST / BODY
3--
4--  DESCRIPTION:
5--
6--  This package is the implementation of Test 23 of the RTEMS
7--  Single Processor Test Suite.
8--
9--  DEPENDENCIES:
10--
11-- 
12--
13--  COPYRIGHT (c) 1989-2011.
14--  On-Line Applications Research Corporation (OAR).
15--
16--  The license and distribution terms for this file may in
17--  the file LICENSE in this distribution or at
18--  http://www.rtems.org/license/LICENSE.
19--
20
21with ADDRESS_IO;
22with TEST_SUPPORT;
23with TEXT_IO;
24with UNSIGNED32_IO;
25with RTEMS.PORT;
26
27package body SPTEST is
28
29--
30--  INIT
31--
32
33   procedure INIT (
34      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
35   ) is
36      pragma Unreferenced(ARGUMENT);
37      INTERNAL_AREA : RTEMS.ADDRESS;
38      EXTERNAL_AREA : RTEMS.ADDRESS;
39      STATUS        : RTEMS.STATUS_CODES;
40   begin
41
42      TEXT_IO.NEW_LINE( 2 );
43      TEST_SUPPORT.ADA_TEST_BEGIN;
44
45      SPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME(  'T', 'A', '1', ' ' );
46
47      RTEMS.TASKS.CREATE(
48         SPTEST.TASK_NAME( 1 ),
49         1,
50         2048,
51         RTEMS.DEFAULT_MODES,
52         RTEMS.DEFAULT_ATTRIBUTES,
53         SPTEST.TASK_ID( 1 ),
54         STATUS
55      );
56      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA1" );
57
58      RTEMS.TASKS.START(
59         SPTEST.TASK_ID( 1 ),
60         SPTEST.TASK_1'ACCESS,
61         0,
62         STATUS
63      );
64      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA1" );
65
66      SPTEST.PORT_NAME( 1 ) := RTEMS.BUILD_NAME(  'D', 'P', '1', ' ' );
67
68      INTERNAL_AREA := SPTEST.INTERNAL_PORT_AREA( 0 )'ADDRESS;
69      EXTERNAL_AREA := SPTEST.EXTERNAL_PORT_AREA( 0 )'ADDRESS;
70      RTEMS.PORT.CREATE(
71         SPTEST.PORT_NAME( 1 ),
72         INTERNAL_AREA,
73         EXTERNAL_AREA,
74         SPTEST.INTERNAL_PORT_AREA'LENGTH,
75         SPTEST.PORT_ID( 1 ),
76         STATUS
77      );
78      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_CREATE OF DP1" );
79      TEXT_IO.PUT( "INIT - port_create - DP1 - internal = " );
80      ADDRESS_IO.PUT( INTERNAL_AREA, WIDTH => 8, BASE => 16 );
81      TEXT_IO.PUT( " external =  " );
82      ADDRESS_IO.PUT( EXTERNAL_AREA, WIDTH => 8, BASE => 16 );
83      TEXT_IO.NEW_LINE;
84   
85      RTEMS.TASKS.DELETE( RTEMS.SELF, STATUS );
86      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
87
88   end INIT;
89
90--
91--  TASK_1
92--
93
94   procedure TASK_1 (
95      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
96   ) is
97      pragma Unreferenced(ARGUMENT);
98      DPID            : RTEMS.ID;
99      TO_BE_CONVERTED : RTEMS.ADDRESS;
100      CONVERTED       : RTEMS.ADDRESS;
101      STATUS          : RTEMS.STATUS_CODES;
102   begin
103
104      RTEMS.PORT.IDENT( SPTEST.PORT_NAME( 1 ), DPID, STATUS );
105      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_IDENT" );
106      TEXT_IO.PUT( "TA1 - port_ident - " );
107      UNSIGNED32_IO.PUT( DPID, WIDTH => 8, BASE => 16 );
108      TEXT_IO.NEW_LINE;
109
110      TO_BE_CONVERTED :=  SPTEST.EXTERNAL_PORT_AREA( 16#E# )'ADDRESS;
111      RTEMS.PORT.EXTERNAL_TO_INTERNAL(
112         SPTEST.PORT_ID( 1 ),
113         TO_BE_CONVERTED,
114         CONVERTED,
115         STATUS
116      );
117      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_EXTERNAL_TO_INTERNAL" );
118      TEXT_IO.PUT( "TA1 - port_external_to_internal - external: " );
119      ADDRESS_IO.PUT( TO_BE_CONVERTED, WIDTH => 8, BASE => 16 );
120      TEXT_IO.PUT( " => internal: " );
121      ADDRESS_IO.PUT( CONVERTED, WIDTH => 8, BASE => 16 );
122      TEXT_IO.NEW_LINE;
123   
124      TO_BE_CONVERTED :=  SPTEST.INTERNAL_PORT_AREA( 16#E# )'ADDRESS;
125      RTEMS.PORT.INTERNAL_TO_EXTERNAL(
126         SPTEST.PORT_ID( 1 ),
127         TO_BE_CONVERTED,
128         CONVERTED,
129         STATUS
130      );
131      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_INTERNAL_TO_EXTERNAL" );
132      TEXT_IO.PUT( "TA1 - port_internal_to_external - internal: " );
133      ADDRESS_IO.PUT( TO_BE_CONVERTED, WIDTH => 8, BASE => 16 );
134      TEXT_IO.PUT( " => external: " );
135      ADDRESS_IO.PUT( CONVERTED, WIDTH => 8, BASE => 16 );
136      TEXT_IO.NEW_LINE;
137   
138      TO_BE_CONVERTED :=  SPTEST.ABOVE_PORT_AREA( 16#E# )'ADDRESS;
139      RTEMS.PORT.EXTERNAL_TO_INTERNAL(
140         SPTEST.PORT_ID( 1 ),
141         TO_BE_CONVERTED,
142         CONVERTED,
143         STATUS
144      );
145      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_EXTERNAL_TO_INTERNAL" );
146      TEXT_IO.PUT( "TA1 - port_external_to_internal - external: " );
147      ADDRESS_IO.PUT( TO_BE_CONVERTED, WIDTH => 8, BASE => 16 );
148      TEXT_IO.PUT( " => internal: " );
149      ADDRESS_IO.PUT( CONVERTED, WIDTH => 8, BASE => 16 );
150      TEXT_IO.NEW_LINE;
151   
152      TO_BE_CONVERTED :=  SPTEST.BELOW_PORT_AREA( 16#E# )'ADDRESS;
153      RTEMS.PORT.INTERNAL_TO_EXTERNAL(
154         SPTEST.PORT_ID( 1 ),
155         TO_BE_CONVERTED,
156         CONVERTED,
157         STATUS
158      );
159      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_INTERNAL_TO_EXTERNAL" );
160      TEXT_IO.PUT( "TA1 - port_internal_to_external - internal: " );
161      ADDRESS_IO.PUT( TO_BE_CONVERTED, WIDTH => 8, BASE => 16 );
162      TEXT_IO.PUT( " => external: " );
163      ADDRESS_IO.PUT( CONVERTED, WIDTH => 8, BASE => 16 );
164      TEXT_IO.NEW_LINE;
165   
166      TEXT_IO.PUT_LINE( "TA1 - port_delete - DP1" );
167      RTEMS.PORT.DELETE( SPTEST.PORT_ID( 1 ), STATUS );
168      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_DELETE" );
169
170      TEST_SUPPORT.ADA_TEST_END;
171      RTEMS.SHUTDOWN_EXECUTIVE( 0 );
172
173   end TASK_1;
174
175end SPTEST;
Note: See TracBrowser for help on using the repository browser.