source: rtems/c/src/ada-tests/tmtests/tm19/tmtest.adb @ 3c4d8cd1

4.115
Last change on this file since 3c4d8cd1 was 3c4d8cd1, checked in by Joel Sherrill <joel.sherrill@…>, on 02/16/11 at 15:53:16

2011-02-16 Joel Sherrill <joel.sherrill@…>

  • ada-tests/mptests/mp01/mp01.adb, ada-tests/mptests/mp01/mptest.adb, ada-tests/mptests/mp01/mptest.ads, ada-tests/mptests/mp01/node1/mp01_node1.adb, ada-tests/mptests/mp01/node2/mp01_node2.adb, ada-tests/mptests/mp02/mptest.adb, ada-tests/mptests/mp02/mptest.ads, ada-tests/mptests/mp02/node1/mp02_node1.adb, ada-tests/mptests/mp02/node2/mp02_node2.adb, ada-tests/mptests/mp03/mptest.adb, ada-tests/mptests/mp03/mptest.ads, ada-tests/mptests/mp03/node1/mp03_node1.adb, ada-tests/mptests/mp03/node2/mp03_node2.adb, ada-tests/mptests/mp04/mptest.adb, ada-tests/mptests/mp04/mptest.ads, ada-tests/mptests/mp04/node1/mp04_node1.adb, ada-tests/mptests/mp04/node2/mp04_node2.adb, ada-tests/mptests/mp05/mptest.adb, ada-tests/mptests/mp05/mptest.ads, ada-tests/mptests/mp05/node1/mp05_node1.adb, ada-tests/mptests/mp05/node2/mp05_node2.adb, ada-tests/mptests/mp06/mptest.adb, ada-tests/mptests/mp06/mptest.ads, ada-tests/mptests/mp06/node1/mp06_node1.adb, ada-tests/mptests/mp06/node2/mp06_node2.adb, ada-tests/mptests/mp07/mptest.adb, ada-tests/mptests/mp07/mptest.ads, ada-tests/mptests/mp07/node1/mp07_node1.adb, ada-tests/mptests/mp07/node2/mp07_node2.adb, ada-tests/mptests/mp08/mptest.adb, ada-tests/mptests/mp08/mptest.ads, ada-tests/mptests/mp08/node1/mp08_node1.adb, ada-tests/mptests/mp08/node2/mp08_node2.adb, ada-tests/mptests/mp09/mptest.adb, ada-tests/mptests/mp09/mptest.ads, ada-tests/mptests/mp09/node1/mp09_node1.adb, ada-tests/mptests/mp09/node2/mp09_node2.adb, ada-tests/mptests/mp10/mptest.adb, ada-tests/mptests/mp10/mptest.ads, ada-tests/mptests/mp10/node1/mp10_node1.adb, ada-tests/mptests/mp10/node2/mp10_node2.adb, ada-tests/mptests/mp11/mptest.adb, ada-tests/mptests/mp11/mptest.ads, ada-tests/mptests/mp11/node1/mp11_node1.adb, ada-tests/mptests/mp11/node2/mp11_node2.adb, ada-tests/mptests/mp12/mptest.adb, ada-tests/mptests/mp12/mptest.ads, ada-tests/mptests/mp12/node1/mp12_node1.adb, ada-tests/mptests/mp12/node2/mp12_node2.adb, ada-tests/mptests/mp13/mptest.adb, ada-tests/mptests/mp13/mptest.ads, ada-tests/mptests/mp13/node1/mp13_node1.adb, ada-tests/mptests/mp13/node2/mp13_node2.adb, ada-tests/mptests/mp14/mptest.adb, ada-tests/mptests/mp14/mptest.ads, ada-tests/mptests/mp14/node1/mp14_node1.adb, ada-tests/mptests/mp14/node2/mp14_node2.adb, ada-tests/samples/base_mp/mptest.adb, ada-tests/samples/base_mp/mptest.ads, ada-tests/samples/base_sp/base_sp.adb, ada-tests/samples/base_sp/sptest.adb, ada-tests/samples/base_sp/sptest.ads, ada-tests/samples/hello/hello.adb, ada-tests/samples/hello/sptest.adb, ada-tests/samples/hello/sptest.ads, ada-tests/samples/nsecs/nsecs.adb, ada-tests/samples/nsecs/sptest.adb, ada-tests/samples/nsecs/sptest.ads, ada-tests/samples/ticker/sptest.adb, ada-tests/samples/ticker/sptest.ads, ada-tests/samples/ticker/ticker.adb, ada-tests/sptests/sp01/sp01.adb, ada-tests/sptests/sp01/sptest.adb, ada-tests/sptests/sp01/sptest.ads, ada-tests/sptests/sp02/sp02.adb, ada-tests/sptests/sp02/sptest.adb, ada-tests/sptests/sp02/sptest.ads, ada-tests/sptests/sp03/sp03.adb, ada-tests/sptests/sp03/sptest.adb, ada-tests/sptests/sp03/sptest.ads, ada-tests/sptests/sp04/sp04.adb, ada-tests/sptests/sp04/sptest.adb, ada-tests/sptests/sp04/sptest.ads, ada-tests/sptests/sp05/sp05.adb, ada-tests/sptests/sp05/sptest.adb, ada-tests/sptests/sp05/sptest.ads, ada-tests/sptests/sp06/sp06.adb, ada-tests/sptests/sp06/sptest.adb, ada-tests/sptests/sp06/sptest.ads, ada-tests/sptests/sp07/sp07.adb, ada-tests/sptests/sp07/sptest.adb, ada-tests/sptests/sp07/sptest.ads, ada-tests/sptests/sp08/sp08.adb, ada-tests/sptests/sp08/sptest.adb, ada-tests/sptests/sp08/sptest.ads, ada-tests/sptests/sp09/sp09.adb, ada-tests/sptests/sp09/sptest.adb, ada-tests/sptests/sp09/sptest.ads, ada-tests/sptests/sp11/sp11.adb, ada-tests/sptests/sp11/sptest.adb, ada-tests/sptests/sp11/sptest.ads, ada-tests/sptests/sp12/sp12.adb, ada-tests/sptests/sp12/sptest.adb, ada-tests/sptests/sp12/sptest.ads, ada-tests/sptests/sp13/sp13.adb, ada-tests/sptests/sp13/sptest.adb, ada-tests/sptests/sp13/sptest.ads, ada-tests/sptests/sp14/sp14.adb, ada-tests/sptests/sp14/sptest.adb, ada-tests/sptests/sp14/sptest.ads, ada-tests/sptests/sp15/sp15.adb, ada-tests/sptests/sp15/sptest.adb, ada-tests/sptests/sp15/sptest.ads, ada-tests/sptests/sp16/sp16.adb, ada-tests/sptests/sp16/sptest.adb, ada-tests/sptests/sp16/sptest.ads, ada-tests/sptests/sp17/sp17.adb, ada-tests/sptests/sp17/sptest.adb, ada-tests/sptests/sp17/sptest.ads, ada-tests/sptests/sp19/sp19.adb, ada-tests/sptests/sp19/sptest.adp, ada-tests/sptests/sp19/sptest.ads, ada-tests/sptests/sp20/sp20.adb, ada-tests/sptests/sp20/sptest.adb, ada-tests/sptests/sp20/sptest.ads, ada-tests/sptests/sp22/sp22.adb, ada-tests/sptests/sp22/sptest.adb, ada-tests/sptests/sp22/sptest.ads, ada-tests/sptests/sp23/sp23.adb, ada-tests/sptests/sp23/sptest.adb, ada-tests/sptests/sp23/sptest.ads, ada-tests/sptests/sp24/sp24.adb, ada-tests/sptests/sp24/sptest.adb, ada-tests/sptests/sp24/sptest.ads, ada-tests/sptests/sp25/sp25.adb, ada-tests/sptests/sp25/sptest.adb, ada-tests/sptests/sp25/sptest.ads, ada-tests/support/test_support.adb, ada-tests/tmtests/tm01/tm01.adb, ada-tests/tmtests/tm01/tmtest.adb, ada-tests/tmtests/tm01/tmtest.ads, ada-tests/tmtests/tm02/tm02.adb, ada-tests/tmtests/tm02/tmtest.adb, ada-tests/tmtests/tm02/tmtest.ads, ada-tests/tmtests/tm03/tm03.adb, ada-tests/tmtests/tm03/tmtest.adb, ada-tests/tmtests/tm03/tmtest.ads, ada-tests/tmtests/tm04/tm04.adb, ada-tests/tmtests/tm04/tmtest.adb, ada-tests/tmtests/tm04/tmtest.ads, ada-tests/tmtests/tm05/tm05.adb, ada-tests/tmtests/tm05/tmtest.adb, ada-tests/tmtests/tm05/tmtest.ads, ada-tests/tmtests/tm06/tm06.adb, ada-tests/tmtests/tm06/tmtest.adb, ada-tests/tmtests/tm06/tmtest.ads, ada-tests/tmtests/tm07/tm07.adb, ada-tests/tmtests/tm07/tmtest.adb, ada-tests/tmtests/tm07/tmtest.ads, ada-tests/tmtests/tm08/tm08.adb, ada-tests/tmtests/tm08/tmtest.adb, ada-tests/tmtests/tm08/tmtest.ads, ada-tests/tmtests/tm09/tm09.adb, ada-tests/tmtests/tm09/tmtest.adb, ada-tests/tmtests/tm09/tmtest.ads, ada-tests/tmtests/tm10/tm10.adb, ada-tests/tmtests/tm10/tmtest.adb, ada-tests/tmtests/tm10/tmtest.ads, ada-tests/tmtests/tm11/tm11.adb, ada-tests/tmtests/tm11/tmtest.adb, ada-tests/tmtests/tm11/tmtest.ads, ada-tests/tmtests/tm12/tm12.adb, ada-tests/tmtests/tm12/tmtest.adb, ada-tests/tmtests/tm12/tmtest.ads, ada-tests/tmtests/tm13/tm13.adb, ada-tests/tmtests/tm13/tmtest.adb, ada-tests/tmtests/tm13/tmtest.ads, ada-tests/tmtests/tm14/tm14.adb, ada-tests/tmtests/tm14/tmtest.adb, ada-tests/tmtests/tm14/tmtest.ads, ada-tests/tmtests/tm15/tm15.adb, ada-tests/tmtests/tm15/tmtest.adb, ada-tests/tmtests/tm15/tmtest.ads, ada-tests/tmtests/tm16/tm16.adb, ada-tests/tmtests/tm16/tmtest.adb, ada-tests/tmtests/tm16/tmtest.ads, ada-tests/tmtests/tm17/tm17.adb, ada-tests/tmtests/tm17/tmtest.adb, ada-tests/tmtests/tm17/tmtest.ads, ada-tests/tmtests/tm18/tm18.adb, ada-tests/tmtests/tm18/tmtest.adb, ada-tests/tmtests/tm18/tmtest.ads, ada-tests/tmtests/tm19/tm19.adb, ada-tests/tmtests/tm19/tmtest.adb, ada-tests/tmtests/tm19/tmtest.ads, ada-tests/tmtests/tm20/tm20.adb, ada-tests/tmtests/tm20/tmtest.adb, ada-tests/tmtests/tm20/tmtest.ads, ada-tests/tmtests/tm21/tm21.adb, ada-tests/tmtests/tm21/tmtest.adb, ada-tests/tmtests/tm21/tmtest.ads, ada-tests/tmtests/tm22/tm22.adb, ada-tests/tmtests/tm22/tmtest.adb, ada-tests/tmtests/tm22/tmtest.ads, ada-tests/tmtests/tm23/tm23.adb, ada-tests/tmtests/tm23/tmtest.adb, ada-tests/tmtests/tm23/tmtest.ads, ada-tests/tmtests/tm24/tm24.adb, ada-tests/tmtests/tm24/tmtest.adb, ada-tests/tmtests/tm24/tmtest.ads, ada-tests/tmtests/tm25/tm25.adb, ada-tests/tmtests/tm25/tmtest.adb, ada-tests/tmtests/tm25/tmtest.ads, ada-tests/tmtests/tm28/tm28.adb, ada-tests/tmtests/tm28/tmtest.adb, ada-tests/tmtests/tm28/tmtest.ads, ada-tests/tmtests/tm29/tm29.adb, ada-tests/tmtests/tm29/tmtest.adb, ada-tests/tmtests/tm29/tmtest.ads, ada-tests/tmtests/tmck/tmck.adb, ada-tests/tmtests/tmck/tmtest.adb, ada-tests/tmtests/tmck/tmtest.ads, ada-tests/tmtests/tmoverhd/dummy_rtems.adb, ada-tests/tmtests/tmoverhd/dummy_rtems.ads, ada-tests/tmtests/tmoverhd/tmoverhd.adb, ada-tests/tmtests/tmoverhd/tmtest.adb, ada-tests/tmtests/tmoverhd/tmtest.ads: Account for RTEMS binding child package rework. Eliminate all warnings.
  • Property mode set to 100644
File size: 6.3 KB
Line 
1--
2--  TMTEST / BODY
3--
4--  DESCRIPTION:
5--
6--  This package is the implementation of Test 19 of the RTEMS
7--  Timing 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.com/license/LICENSE.
19--
20--  $Id$
21--
22
23with RTEMS_CALLING_OVERHEAD;
24with TEST_SUPPORT;
25with TEXT_IO;
26with TIME_TEST_SUPPORT;
27with TIMER_DRIVER;
28with RTEMS.SIGNAL;
29
30package body TMTEST is
31
32--
33--  INIT
34--
35
36   procedure INIT (
37      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
38   ) is
39      pragma Unreferenced(ARGUMENT);
40      STATUS : RTEMS.STATUS_CODES;
41   begin
42
43      TEXT_IO.NEW_LINE( 2 );
44      TEXT_IO.PUT_LINE( "*** TIME TEST 19 ***" );
45
46      RTEMS.TASKS.CREATE(
47         RTEMS.BUILD_NAME( 'T', 'I', 'M', 'E' ),
48         128,
49         1024,
50         RTEMS.DEFAULT_MODES,
51         RTEMS.DEFAULT_ATTRIBUTES,
52         TMTEST.TASK_ID( 1 ),
53         STATUS
54      );
55      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TASK1" );
56
57      RTEMS.TASKS.START(
58         TMTEST.TASK_ID( 1 ),
59         TMTEST.TASK_1'ACCESS,
60         0,
61         STATUS
62      );
63      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TASK1" );
64
65      RTEMS.TASKS.CREATE(
66         RTEMS.BUILD_NAME( 'T', 'I', 'M', 'E' ),
67         127,
68         1024,
69         RTEMS.DEFAULT_MODES,
70         RTEMS.DEFAULT_ATTRIBUTES,
71         TMTEST.TASK_ID( 2 ),
72         STATUS
73      );
74      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TASK2" );
75
76      RTEMS.TASKS.START(
77         TMTEST.TASK_ID( 2 ),
78         TMTEST.TASK_2'ACCESS,
79         0,
80         STATUS
81      );
82      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TASK2" );
83
84      RTEMS.TASKS.CREATE(
85         RTEMS.BUILD_NAME( 'T', 'I', 'M', 'E' ),
86         126,
87         1024,
88         RTEMS.DEFAULT_MODES,
89         RTEMS.DEFAULT_ATTRIBUTES,
90         TMTEST.TASK_ID( 3 ),
91         STATUS
92      );
93      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TASK3" );
94
95      RTEMS.TASKS.START(
96         TMTEST.TASK_ID( 3 ),
97         TMTEST.TASK_3'ACCESS,
98         0,
99         STATUS
100      );
101      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TASK3" );
102
103      RTEMS.TASKS.DELETE( RTEMS.SELF, STATUS );
104      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
105
106   end INIT;
107
108--
109--  PROCESS_ASR_FOR_PASS_1
110--
111
112   procedure PROCESS_ASR_FOR_PASS_1 (
113      SIGNALS : in     RTEMS.SIGNAL_SET
114   ) is
115      pragma Unreferenced(SIGNALS);
116   begin
117
118      TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
119
120      TIME_TEST_SUPPORT.PUT_TIME(
121         "SIGNAL_SEND (self)",
122         TMTEST.END_TIME,
123         1,
124         0,
125         RTEMS_CALLING_OVERHEAD.SIGNAL_SEND
126      );
127
128      TEXT_IO.PUT_LINE( "SIGNAL_ENTER (preemptive) na" );
129
130      TIMER_DRIVER.INITIALIZE;
131
132   end PROCESS_ASR_FOR_PASS_1;
133
134--
135--  PROCESS_ASR_FOR_PASS_2
136--
137
138   procedure PROCESS_ASR_FOR_PASS_2 (
139      SIGNALS : in     RTEMS.SIGNAL_SET
140   ) is
141      pragma Unreferenced(SIGNALS);
142      STATUS  : RTEMS.STATUS_CODES;
143   begin
144
145      TEXT_IO.PUT_LINE( "SIGNAL_ENTER (preemptive) na" );
146     
147      RTEMS.TASKS.RESUME( TMTEST.TASK_ID( 3 ), STATUS );
148      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_RESUME" );
149
150      TIMER_DRIVER.INITIALIZE;
151
152   end PROCESS_ASR_FOR_PASS_2;
153
154--
155--  TASK_1
156--
157
158   procedure TASK_1 (
159      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
160   ) is
161      pragma Unreferenced(ARGUMENT);
162      STATUS  : RTEMS.STATUS_CODES;
163   begin
164
165      TIMER_DRIVER.INITIALIZE;
166         RTEMS.SIGNAL.CATCH(
167            TMTEST.PROCESS_ASR_FOR_PASS_1'ACCESS,
168            RTEMS.DEFAULT_MODES,
169            STATUS
170         );
171      TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
172      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_CATCH" );
173
174      TIME_TEST_SUPPORT.PUT_TIME(
175         "SIGNAL_CATCH",
176         TMTEST.END_TIME,
177         1,
178         0,
179         RTEMS_CALLING_OVERHEAD.SIGNAL_CATCH
180      );
181
182      TIMER_DRIVER.INITIALIZE;
183         RTEMS.SIGNAL.SEND( TMTEST.TASK_ID( 2 ), RTEMS.SIGNAL_1, STATUS );
184      TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
185      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_SEND" );
186
187      TIME_TEST_SUPPORT.PUT_TIME(
188         "SIGNAL_SEND (non-preemptive)",
189         TMTEST.END_TIME,
190         1,
191         0,
192         RTEMS_CALLING_OVERHEAD.SIGNAL_SEND
193      );
194
195      TIMER_DRIVER.INITIALIZE;
196         RTEMS.SIGNAL.SEND( RTEMS.SELF, RTEMS.SIGNAL_1, STATUS );
197         TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_SEND" );
198
199      -- end time is done in ASR
200
201      TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
202
203      TIME_TEST_SUPPORT.PUT_TIME(
204         "SIGNAL_RETURN (non-preemptive)",
205         TMTEST.END_TIME,
206         1,
207         0,
208         0
209      );
210
211      RTEMS.SIGNAL.CATCH(
212         TMTEST.PROCESS_ASR_FOR_PASS_2'ACCESS,
213         RTEMS.NO_PREEMPT,
214         STATUS
215      );
216      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_CATCH" );
217
218      TIMER_DRIVER.INITIALIZE;
219         RTEMS.SIGNAL.SEND( RTEMS.SELF, RTEMS.SIGNAL_1, STATUS );
220         TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_SEND" );
221
222   end TASK_1;
223
224--
225--  PROCESS_ASR_FOR_TASK_2
226--
227
228   procedure PROCESS_ASR_FOR_TASK_2 (
229      SIGNALS : in     RTEMS.SIGNAL_SET
230   ) is
231   begin
232
233      NULL;
234
235   end PROCESS_ASR_FOR_TASK_2;
236
237--
238--  TASK_2
239--
240
241   procedure TASK_2 (
242      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
243   ) is
244      pragma Unreferenced(ARGUMENT);
245      STATUS  : RTEMS.STATUS_CODES;
246   begin
247
248      RTEMS.SIGNAL.CATCH(
249         TMTEST.PROCESS_ASR_FOR_TASK_2'ACCESS,
250         RTEMS.DEFAULT_MODES,
251         STATUS
252      );
253      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "SIGNAL_CATCH" );
254
255      RTEMS.TASKS.SUSPEND( RTEMS.SELF, STATUS );
256      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SUSPEND" );
257
258   end TASK_2;
259
260--
261--  TASK_3
262--
263
264   procedure TASK_3 (
265      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
266   ) is
267      pragma Unreferenced(ARGUMENT);
268      STATUS : RTEMS.STATUS_CODES;
269   begin
270
271      RTEMS.TASKS.SUSPEND( RTEMS.SELF, STATUS );
272      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SUSPEND" );
273
274      TMTEST.END_TIME := TIMER_DRIVER.READ_TIMER;
275
276      TIME_TEST_SUPPORT.PUT_TIME(
277         "SIGNAL_RETURN (preemptive)",
278         TMTEST.END_TIME,
279         1,
280         0,
281         0
282     );
283
284      TEXT_IO.PUT_LINE( "*** END OF TIME TEST 19 ***" );
285     RTEMS.SHUTDOWN_EXECUTIVE( 0 );
286
287   end TASK_3;
288
289end TMTEST;
Note: See TracBrowser for help on using the repository browser.