source: rtems/testsuites/validation/tc-type.c @ 8bc15aba

Last change on this file since 8bc15aba was 8bc15aba, checked in by Sebastian Huber <sebastian.huber@…>, on 03/09/23 at 15:34:56

validation: Validate RTEMS_NO_TIMEOUT

Update #3716.

  • Property mode set to 100644
File size: 3.8 KB
Line 
1/* SPDX-License-Identifier: BSD-2-Clause */
2
3/**
4 * @file
5 *
6 * @ingroup RtemsTypeValType
7 */
8
9/*
10 * Copyright (C) 2021, 2023 embedded brains GmbH (http://www.embedded-brains.de)
11 *
12 * Redistribution and use in source and binary forms, with or without
13 * modification, are permitted provided that the following conditions
14 * are met:
15 * 1. Redistributions of source code must retain the above copyright
16 *    notice, this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright
18 *    notice, this list of conditions and the following disclaimer in the
19 *    documentation and/or other materials provided with the distribution.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 */
33
34/*
35 * This file is part of the RTEMS quality process and was automatically
36 * generated.  If you find something that needs to be fixed or
37 * worded better please post a report or patch to an RTEMS mailing list
38 * or raise a bug report:
39 *
40 * https://www.rtems.org/bugs.html
41 *
42 * For information on updating and regenerating please refer to the How-To
43 * section in the Software Requirements Engineering chapter of the
44 * RTEMS Software Engineering manual.  The manual is provided as a part of
45 * a release.  For development sources please refer to the online
46 * documentation at:
47 *
48 * https://docs.rtems.org
49 */
50
51#ifdef HAVE_CONFIG_H
52#include "config.h"
53#endif
54
55#include <rtems.h>
56#include <rtems/score/objectimpl.h>
57
58#include <rtems/test.h>
59
60/**
61 * @defgroup RtemsTypeValType spec:/rtems/type/val/type
62 *
63 * @ingroup TestsuitesValidationNoClock0
64 *
65 * @brief Tests some @ref RTEMSAPIClassicTypes interfaces.
66 *
67 * This test case performs the following actions:
68 *
69 * - Validate the RTEMS_ID_NONE constant.
70 *
71 *   - Assert that RTEMS_ID_NONE cannot be associated with an object because it
72 *     has an object index outside the range of valid object indices.
73 *
74 * - Validate the RTEMS_NO_TIMEOUT constant.
75 *
76 *   - Assert that RTEMS_NO_TIMEOUT is a compile time constant which evaluates
77 *     to a value of zero.
78 *
79 *   - Check that RTEMS_NO_TIMEOUT evaluates to a value of zero.
80 *
81 * @{
82 */
83
84/**
85 * @brief Validate the RTEMS_ID_NONE constant.
86 */
87static void RtemsTypeValType_Action_0( void )
88{
89  /* Nothing to do */
90
91  /*
92   * Assert that RTEMS_ID_NONE cannot be associated with an object because it
93   * has an object index outside the range of valid object indices.
94   */
95  RTEMS_STATIC_ASSERT(
96    ( ( RTEMS_ID_NONE >> OBJECTS_INDEX_START_BIT ) &
97      OBJECTS_INDEX_VALID_BITS ) < OBJECTS_INDEX_MINIMUM,
98    ID_NONE
99  );
100}
101
102/**
103 * @brief Validate the RTEMS_NO_TIMEOUT constant.
104 */
105static void RtemsTypeValType_Action_1( void )
106{
107  /* Nothing to do */
108
109  /*
110   * Assert that RTEMS_NO_TIMEOUT is a compile time constant which evaluates to
111   * a value of zero.
112   */
113  RTEMS_STATIC_ASSERT( RTEMS_NO_TIMEOUT == 0, NO_TIMEOUT );
114
115  /*
116   * Check that RTEMS_NO_TIMEOUT evaluates to a value of zero.
117   */
118  T_eq_u32( RTEMS_NO_TIMEOUT, 0 );
119}
120
121/**
122 * @fn void T_case_body_RtemsTypeValType( void )
123 */
124T_TEST_CASE( RtemsTypeValType )
125{
126  RtemsTypeValType_Action_0();
127  RtemsTypeValType_Action_1();
128}
129
130/** @} */
Note: See TracBrowser for help on using the repository browser.