![]() |
|
|||
File indexing completed on 2025-05-11 08:24:51
0001 /* SPDX-License-Identifier: BSD-2-Clause */ 0002 0003 /** 0004 * @file 0005 * 0006 * @ingroup BspValFatalExtensionReset 0007 */ 0008 0009 /* 0010 * Copyright (C) 2021, 2024 embedded brains GmbH & Co. KG 0011 * 0012 * Redistribution and use in source and binary forms, with or without 0013 * modification, are permitted provided that the following conditions 0014 * are met: 0015 * 1. Redistributions of source code must retain the above copyright 0016 * notice, this list of conditions and the following disclaimer. 0017 * 2. Redistributions in binary form must reproduce the above copyright 0018 * notice, this list of conditions and the following disclaimer in the 0019 * documentation and/or other materials provided with the distribution. 0020 * 0021 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 0022 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0023 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 0024 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 0025 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 0026 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 0027 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 0028 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 0029 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 0030 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 0031 * POSSIBILITY OF SUCH DAMAGE. 0032 */ 0033 0034 /* 0035 * This file is part of the RTEMS quality process and was automatically 0036 * generated. If you find something that needs to be fixed or 0037 * worded better please post a report or patch to an RTEMS mailing list 0038 * or raise a bug report: 0039 * 0040 * https://www.rtems.org/bugs.html 0041 * 0042 * For information on updating and regenerating please refer to the How-To 0043 * section in the Software Requirements Engineering chapter of the 0044 * RTEMS Software Engineering manual. The manual is provided as a part of 0045 * a release. For development sources please refer to the online 0046 * documentation at: 0047 * 0048 * https://docs.rtems.org 0049 */ 0050 0051 #ifdef HAVE_CONFIG_H 0052 #include "config.h" 0053 #endif 0054 0055 #include <rtems/sysinit.h> 0056 0057 #include "tx-support.h" 0058 0059 #include <rtems/test.h> 0060 0061 /** 0062 * @defgroup BspValFatalExtensionReset spec:/bsp/val/fatal-extension-reset 0063 * 0064 * @ingroup TestsuitesBspsFatalExtension 0065 * 0066 * @brief Tests the BSP-specific fatal extension. 0067 * 0068 * This test case performs the following actions: 0069 * 0070 * - Check the effects of the BSP-specific fatal extension. 0071 * 0072 * - Check that no dynamic fatal error extension was invoked. This shows 0073 * that the BSP-specific fatal extension called the wrapped bsp_reset() 0074 * function of the test suite. 0075 * 0076 * @{ 0077 */ 0078 0079 static Atomic_Uint dynamic_fatal_extension_counter; 0080 0081 static rtems_status_code status; 0082 0083 static unsigned int Add( Atomic_Uint *a, unsigned int b ) 0084 { 0085 return _Atomic_Fetch_add_uint( a, b, ATOMIC_ORDER_RELAXED ); 0086 } 0087 0088 static void DynamicFatalHandler( 0089 rtems_fatal_source source, 0090 bool always_set_to_false, 0091 rtems_fatal_code code 0092 ) 0093 { 0094 (void) source; 0095 (void) code; 0096 (void) always_set_to_false; 0097 (void) Add( &dynamic_fatal_extension_counter, 1 ); 0098 } 0099 0100 static void InitBspValFatalExtensionReset( void ) 0101 { 0102 rtems_extensions_table table = { .fatal = DynamicFatalHandler }; 0103 rtems_id id; 0104 0105 status = rtems_extension_create( OBJECT_NAME, &table, &id ); 0106 } 0107 0108 RTEMS_SYSINIT_ITEM( 0109 InitBspValFatalExtensionReset, 0110 RTEMS_SYSINIT_DEVICE_DRIVERS, 0111 RTEMS_SYSINIT_ORDER_MIDDLE 0112 ); 0113 0114 /** 0115 * @brief Check the effects of the BSP-specific fatal extension. 0116 */ 0117 static void BspValFatalExtensionReset_Action_0( void ) 0118 { 0119 uint32_t counter; 0120 0121 /* 0122 * Check that no dynamic fatal error extension was invoked. This shows that 0123 * the BSP-specific fatal extension called the wrapped bsp_reset() function 0124 * of the test suite. 0125 */ 0126 T_step_rsc_success( 0, status ); 0127 counter = Add( &dynamic_fatal_extension_counter, 0 ); 0128 T_step_eq_u32( 1, counter, 0 ); 0129 } 0130 0131 /** 0132 * @fn void T_case_body_BspValFatalExtensionReset( void ) 0133 */ 0134 T_TEST_CASE( BspValFatalExtensionReset ) 0135 { 0136 T_plan( 2 ); 0137 0138 BspValFatalExtensionReset_Action_0(); 0139 } 0140 0141 /** @} */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |