source: rtems/testsuites/sptests/sp09/screen02.c @ 7b5f6643

4.115
Last change on this file since 7b5f6643 was 2d1bdc8, checked in by Chris Johns <chrisj@…>, on 12/24/13 at 05:38:42

cpukit/rtems: Add rtems_clock_get_uptime_nanoseconds to the RTEMS API.

Add Timestamp support in the score to return a timestamp in nanoseconds.
Add a test.
Update the RTEMS API documentation.

  • Property mode set to 100644
File size: 8.4 KB
Line 
1/*  Screen2
2 *
3 *  This routine generates error screen 2 for test 9.
4 *
5 *  Input parameters:  NONE
6 *
7 *  Output parameters:  NONE
8 *
9 *  COPYRIGHT (c) 1989-2011.
10 *  On-Line Applications Research Corporation (OAR).
11 *
12 *  The license and distribution terms for this file may be
13 *  found in the file LICENSE in this distribution or at
14 *  http://www.rtems.com/license/LICENSE.
15 */
16
17#ifdef HAVE_CONFIG_H
18#include "config.h"
19#endif
20
21#include "system.h"
22
23void Screen2()
24{
25  rtems_time_of_day time;
26  rtems_interval    interval;
27  struct timeval    tv;
28  rtems_status_code status;
29
30  puts( "TA1 - rtems_clock_get_tod - RTEMS_INVALID_ADDRESS" );
31  status = rtems_clock_get_tod( NULL );
32  fatal_directive_status(
33    status,
34    RTEMS_INVALID_ADDRESS,
35    "rtems_clock_get_tod NULL param"
36  );
37
38/* errors before clock is set */
39
40  status = rtems_clock_get_tod( &time );
41  if ( status == RTEMS_SUCCESSFUL ) {
42    puts(
43     "TA1 - rtems_clock_get_tod - RTEMS_NOT_DEFINED -- "
44         "DID BSP SET THE TIME OF DAY?"
45    );
46  } else {
47    fatal_directive_status(
48      status,
49      RTEMS_NOT_DEFINED,
50      "rtems_clock_get_tod before clock is set #1"
51    );
52    puts( "TA1 - rtems_clock_get_tod - RTEMS_NOT_DEFINED" );
53  }
54
55  puts( "TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_INVALID_ADDRESS" );
56  status = rtems_clock_get_seconds_since_epoch( NULL );
57  fatal_directive_status(
58    status,
59    RTEMS_INVALID_ADDRESS,
60    "rtems_clock_get_seconds_since_epoch NULL param"
61  );
62
63  status = rtems_clock_get_seconds_since_epoch( &interval );
64  if ( status == RTEMS_SUCCESSFUL ) {
65    puts(
66     "TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_NOT_DEFINED -- "
67         "DID BSP SET THE TIME OF DAY?"
68    );
69  } else {
70    fatal_directive_status(
71      status,
72      RTEMS_NOT_DEFINED,
73      "rtems_clock_get_seconds_before_epoch"
74    );
75    puts( "TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_NOT_DEFINED" );
76  }
77
78  puts( "TA1 - rtems_clock_get_uptime - RTEMS_INVALID_ADDRESS" );
79  status = rtems_clock_get_uptime( NULL );
80  fatal_directive_status(
81    status,
82    RTEMS_INVALID_ADDRESS,
83    "rtems_clock_get_uptime NULL param"
84  );
85
86  puts( "TA1 - rtems_clock_get_uptime_timeval" );
87  rtems_clock_get_uptime_timeval( &tv );
88
89  puts( "TA1 - rtems_clock_get_uptime_seconds" );
90  rtems_clock_get_uptime_seconds();
91
92  puts( "TA1 - rtems_clock_get_uptime_nanoseconds" );
93  rtems_clock_get_uptime_nanoseconds();
94
95  puts( "TA1 - rtems_clock_get_tod_timeval - RTEMS_INVALID_ADDRESS" );
96  status = rtems_clock_get_tod_timeval( NULL );
97  fatal_directive_status(
98    status,
99    RTEMS_INVALID_ADDRESS,
100    "rtems_clock_get_tod_timeval NULL param"
101  );
102
103  status = rtems_clock_get_tod_timeval( &tv );
104  if ( status == RTEMS_SUCCESSFUL ) {
105    puts(
106     "TA1 - rtems_clock_get_tod_timeval - RTEMS_NOT_DEFINED -- "
107         "DID BSP SET THE TIME OF DAY?"
108    );
109  } else {
110    fatal_directive_status(
111      status,
112      RTEMS_NOT_DEFINED,
113      "rtems_clock_get_timeval"
114    );
115    puts( "TA1 - rtems_clock_get_tod_timeval - RTEMS_NOT_DEFINED" );
116  }
117
118  puts( "TA1 - rtems_clock_set_nanoseconds_extension - RTEMS_INVALID_ADDRESS" );
119  status = rtems_clock_set_nanoseconds_extension( NULL );
120  fatal_directive_status(
121    status,
122    RTEMS_INVALID_ADDRESS,
123    "rtems_clock_set_nanoseconds_extension NULL param"
124  );
125
126  /* NULL parameter */
127  status = rtems_clock_set( NULL );
128  fatal_directive_status(
129    status,
130    RTEMS_INVALID_ADDRESS,
131    "rtems_clock_set sull pointer"
132  );
133  puts( "TA1 - rtems_clock_set - RTEMS_INVALID_ADDRESS" );
134
135  /* wake when NULL param */
136  status = rtems_task_wake_when( NULL );
137  fatal_directive_status(
138    status,
139    RTEMS_NOT_DEFINED,
140    "rtems_task_wake_when NULL param"
141  );
142  puts( "TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS" );
143
144  /* wake when before set */
145  status = rtems_task_wake_when( &time );
146  if ( status == RTEMS_SUCCESSFUL ) {
147    puts(
148     "TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED -- "
149         "DID BSP SET THE TIME OF DAY?"
150    );
151  } else {
152    fatal_directive_status(
153      status,
154      RTEMS_NOT_DEFINED,
155      "rtems_task_wake_when before clock is set"
156    );
157    puts( "TA1 - rtems_task_wake_when - RTEMS_NOT_DEFINED" );
158  }
159
160  /* before time set */
161  status = rtems_timer_fire_when( 0, &time, Delayed_routine, NULL );
162  if ( status == RTEMS_SUCCESSFUL ) {
163    puts(
164    "TA1 - timer_wake_when - RTEMS_NOT_DEFINED -- DID BSP SET THE TIME OF DAY?"
165    );
166  } else {
167    fatal_directive_status(
168      status,
169      RTEMS_NOT_DEFINED,
170      "task_fire_when before clock is set"
171    );
172    puts( "TA1 - rtems_timer_fire_when - RTEMS_NOT_DEFINED" );
173  }
174
175  build_time( &time, 2, 5, 1987, 8, 30, 45, 0 );
176  print_time( "TA1 - rtems_clock_set - ", &time, "" );
177  status = rtems_clock_set( &time );
178  fatal_directive_status(
179    status,
180    RTEMS_INVALID_CLOCK,
181    "rtems_clock_set with invalid year"
182  );
183  puts( " - RTEMS_INVALID_CLOCK" );
184
185  build_time( &time, 15, 5, 1988, 8, 30, 45, 0 );
186  print_time( "TA1 - rtems_clock_set - ", &time, "" );
187  status = rtems_clock_set( &time );
188  fatal_directive_status(
189    status,
190    RTEMS_INVALID_CLOCK,
191    "rtems_clock_set with invalid month"
192  );
193  puts( " - RTEMS_INVALID_CLOCK" );
194
195  build_time( &time, 2, 32, 1988, 8, 30, 45, 0 );
196  print_time( "TA1 - rtems_clock_set - ", &time, "" );
197  status = rtems_clock_set( &time );
198  fatal_directive_status(
199    status,
200    RTEMS_INVALID_CLOCK,
201    "rtems_clock_set with invalid day"
202  );
203  puts( " - RTEMS_INVALID_CLOCK" );
204
205  build_time( &time, 2, 5, 1988, 25, 30, 45, 0 );
206  print_time( "TA1 - rtems_clock_set - ", &time, "" );
207  status = rtems_clock_set( &time );
208  fatal_directive_status(
209    status,
210    RTEMS_INVALID_CLOCK,
211    "rtems_clock_set with invalid hour"
212  );
213  puts( " - RTEMS_INVALID_CLOCK" );
214
215  build_time( &time, 2, 5, 1988, 8, 61, 45, 0 );
216  print_time( "TA1 - rtems_clock_set - ", &time, "" );
217  status = rtems_clock_set( &time );
218  fatal_directive_status(
219    status,
220    RTEMS_INVALID_CLOCK,
221    "rtems_clock_set with invalid minute"
222  );
223  puts( " - RTEMS_INVALID_CLOCK" );
224
225  build_time( &time, 2, 5, 1988, 8, 30, 61, 0 );
226  print_time( "TA1 - rtems_clock_set - ", &time, "" );
227  status = rtems_clock_set( &time );
228  fatal_directive_status(
229    status,
230    RTEMS_INVALID_CLOCK,
231    "rtems_clock_set with invalid second"
232  );
233  puts( " - RTEMS_INVALID_CLOCK" );
234
235  build_time(
236    &time, 2, 5, 1988, 8, 30, 45,
237    rtems_clock_get_ticks_per_second() + 1
238  );
239  print_time( "TA1 - rtems_clock_set - ", &time, "" );
240  status = rtems_clock_set( &time );
241  fatal_directive_status(
242    status,
243    RTEMS_INVALID_CLOCK,
244    "rtems_clock_set with invalid ticks per second"
245  );
246  puts( " - RTEMS_INVALID_CLOCK" );
247
248  build_time( &time, 2, 5, 1988, 8, 30, 45, 0 );
249  print_time( "TA1 - rtems_clock_set - ", &time, "" );
250  status = rtems_clock_set( &time );
251  directive_failed( status, "rtems_clock_set successful" );
252  puts( " - RTEMS_SUCCESSFUL" );
253
254/* rtems_task_wake_when */
255
256  build_time(
257    &time,
258    2, 5, 1988, 8, 30, 48,
259    rtems_clock_get_ticks_per_second() + 1
260  );
261  time.second += 3;
262  puts( "TA1 - rtems_task_wake_when - TICKINVALID - sleep about 3 seconds" );
263
264  /* NULL time */
265  status = rtems_task_wake_when( NULL );
266  fatal_directive_status(
267    status,
268    RTEMS_INVALID_ADDRESS,
269    "rtems_task_wake_when with NULL"
270  );
271  puts( "TA1 - rtems_task_wake_when - RTEMS_INVALID_ADDRESS" );
272
273  /* invalid ticks */
274  status = rtems_task_wake_when( &time );
275  directive_failed(
276    status,
277    "rtems_task_wake_when with invalid ticks per second"
278  );
279  puts( "TA1 - rtems_task_wake_when - TICKINVALID - woke up RTEMS_SUCCESSFUL" );
280
281  build_time( &time, 2, 5, 1961, 8, 30, 48, 0 );
282  print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
283  status = rtems_task_wake_when( &time );
284  fatal_directive_status(
285    status,
286    RTEMS_INVALID_CLOCK,
287    "rtems_task_wake_when with invalid year"
288  );
289  puts( " - RTEMS_INVALID_CLOCK" );
290
291  build_time( &time, 2, 5, 1988, 25, 30, 48, 0 );
292  print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
293  status = rtems_task_wake_when( &time );
294  fatal_directive_status(
295    status,
296    RTEMS_INVALID_CLOCK,
297    "rtems_task_wake_when with invalid hour"
298  );
299  puts( " - RTEMS_INVALID_CLOCK" );
300
301  rtems_clock_get_tod( &time );
302  print_time( "TA1 - current time - ", &time, "\n" );
303
304  time.month = 1;
305  print_time( "TA1 - rtems_task_wake_when - ", &time, "" );
306  status = rtems_task_wake_when( &time );
307  fatal_directive_status(
308    status,
309    RTEMS_INVALID_CLOCK,
310    "rtems_task_wake_when before current time"
311  );
312  puts( " - RTEMS_INVALID_CLOCK" );
313}
Note: See TracBrowser for help on using the repository browser.