/*! * \cond DOXYGEN_PRIVATE * \private * * \brief This function tests the specified name component for consistency. * * \param[in] base_name_manager_ptr The name component to test. * \param[out] name_error_ptr The address of the base name component * in error. * \param[out] name_extension_error_ptr The address of the name component * extension in error. * * \return MQX_OK * \return MQX_INVALID_COMPONENT_BASE (Name component data are not valid.) * \return MQX_CORRUPT_QUEUE (An error was found.) * \return MQX_INVALID_LWSEM (Results of _queue_test().) * \return MQX_CANNOT_CALL_FUNCTION_FROM_ISR (Function cannot be called from an ISR.) */ _mqx_uint _name_test_internal ( NAME_COMPONENT_STRUCT_PTR base_name_manager_ptr, void **name_error_ptr, void **name_extension_error_ptr ) { /* Body */ NAME_COMPONENT_STRUCT_PTR name_manager_ptr; void *sem_in_err_ptr; void *td_in_err_ptr; _mqx_uint result; _mqx_uint total; _mqx_uint i; if (base_name_manager_ptr == NULL) { return (MQX_OK); } /* Endif */ *name_error_ptr = base_name_manager_ptr; if (base_name_manager_ptr->VALID != NAME_VALID) { return (MQX_INVALID_COMPONENT_BASE); } /* Endif */ result = _lwsem_test(&sem_in_err_ptr, &td_in_err_ptr); if (result != MQX_OK) { return (result); } /* Endif */ name_manager_ptr = base_name_manager_ptr; total = 0; _int_disable(); while (name_manager_ptr != NULL) { #if MQX_CHECK_VALIDITY if (name_manager_ptr->VALID != NAME_VALID) { _int_enable(); *name_extension_error_ptr = name_manager_ptr; return (MQX_INVALID_COMPONENT_BASE); } /* Endif */ #endif /* MQX_CHECK_VALIDITY */ for (i = 0; i < name_manager_ptr->NUMBER_IN_BLOCK; ++i) { if (name_manager_ptr->NAMES[i].NAME[0] != '\0') { ++total; } /* Endif */ } /* Endfor */ name_manager_ptr = name_manager_ptr->NEXT_TABLE; } /* Endwhile */ _int_enable(); if (total != base_name_manager_ptr->NUMBER) { *name_extension_error_ptr = name_manager_ptr; return (MQX_INVALID_COMPONENT_BASE); } /* Endif */ return (MQX_OK); } /* Endbody */
void background_test_task ( uint_32 parameter ) { _partition_id partition; _lwmem_pool_id lwmem_pool_id; pointer error_ptr; pointer error2_ptr; _mqx_uint error; _mqx_uint result; while (TRUE) { result = _event_test(&error_ptr); if (result != MQX_OK){ printf("\nFailed _event_test: 0x%X.", result); _task_block(); } result = _log_test(&error); if (result != MQX_OK){ printf("\nFailed _log_test: 0x%X.", result); _task_block(); } result = _lwevent_test(&error_ptr, &error2_ptr); if (result != MQX_OK){ printf("\nFailed _lwevent_test: 0x%X.", result); _task_block(); } result = _lwlog_test(&error); if (result != MQX_OK){ printf("\nFailed _lwlog_test: 0x%X.", result); _task_block(); } result = _lwsem_test(&error_ptr, &error2_ptr); if (result != MQX_OK){ printf("\nFailed _lwsem_test: 0x%X.", result); _task_block(); } result = _lwmem_test(&lwmem_pool_id, &error_ptr); if (result != MQX_OK){ printf("\nFailed _lwmem_test: 0x%X.", result); _task_block(); } result = _lwtimer_test(&error_ptr, &error2_ptr); if (result != MQX_OK){ printf("\nFailed _lwtimer_test: 0x%X.", result); _task_block(); } #if ! MQX_USE_LWMEM_ALLOCATOR result = _mem_test_all(&error_ptr); if (result != MQX_OK){ printf("\nFailed _mem_test_all,"); printf("\nError = 0x%X, pool = 0x%X.", result, (_mqx_uint)error_ptr); _task_block(); } #endif /* ** Create the message component. ** Verify the integrity of message pools and message queues. */ if (_msg_create_component() != MQX_OK){ printf("\nError creating the message component."); _task_block(); } if (_msgpool_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _msgpool_test."); _task_block(); } if (_msgq_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _msgq_test."); _task_block(); } if (_mutex_test(&error_ptr) != MQX_OK){ printf("\nFailed _mutex_test."); _task_block(); } if (_name_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _name_test."); _task_block(); } if (_partition_test(&partition, &error_ptr, &error2_ptr) != MQX_OK) { printf("\nFailed _partition_test."); _task_block(); } if (_sem_test(&error_ptr) != MQX_OK){ printf("\nFailed _sem_test."); _task_block(); } if (_taskq_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _takq_test."); _task_block(); } if (_timer_test(&error_ptr) != MQX_OK){ printf("\nFailed _timer_test."); _task_block(); } if (_watchdog_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _watchlog_test."); _task_block(); } printf("All tests passed."); _task_block(); } }
void background_test_task ( uint32_t parameter ) { _partition_id partition; #if MQXCFG_ALLOCATOR == MQX_ALLOCATOR_LWMEM _lwmem_pool_id lwmem_pool_id; #endif void *error_ptr; void *error2_ptr; _mqx_uint error; _mqx_uint result; printf("\nTesting component:"); while (TRUE) { printf("\nevent"); result = _event_test(&error_ptr); if (result != MQX_OK){ printf("\nFailed _event_test: 0x%X.", result); _task_block(); } printf("\nlog"); result = _log_test(&error); if (result != MQX_OK){ printf("\nFailed _log_test: 0x%X.", result); _task_block(); } printf("\nlwevent"); result = _lwevent_test(&error_ptr, &error2_ptr); if (result != MQX_OK){ printf("\nFailed _lwevent_test: 0x%X.", result); _task_block(); } printf("\nlwlog"); result = _lwlog_test(&error); if (result != MQX_OK){ printf("\nFailed _lwlog_test: 0x%X.", result); _task_block(); } printf("\nlwsem"); result = _lwsem_test(&error_ptr, &error2_ptr); if (result != MQX_OK){ printf("\nFailed _lwsem_test: 0x%X.", result); _task_block(); } #if MQXCFG_ALLOCATOR == MQX_ALLOCATOR_LWMEM printf("\nlwmem"); result = _lwmem_test(&lwmem_pool_id, &error_ptr); if (result != MQX_OK){ printf("\nFailed _lwmem_test: 0x%X.", result); _task_block(); } #endif printf("\nlwtimer"); result = _lwtimer_test(&error_ptr, &error2_ptr); if (result != MQX_OK){ printf("\nFailed _lwtimer_test: 0x%X.", result); _task_block(); } #if ! MQXCFG_ALLOCATOR == MQX_ALLOCATOR_LWMEM printf("\nmem"); result = _mem_test_all(&error_ptr); if (result != MQX_OK){ printf("\nFailed _mem_test_all,"); printf("\nError = 0x%X, pool = 0x%X.", result, (_mqx_uint)error_ptr); _task_block(); } #endif /* MQXCFG_ALLOCATOR */ /* ** Create the message component. ** Verify the integrity of message pools and message queues. */ printf("\nmsg"); if (_msg_create_component() != MQX_OK){ printf("\nError creating the message component."); _task_block(); } printf("\nmsgpool"); if (_msgpool_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _msgpool_test."); _task_block(); } printf("\nmsgq"); if (_msgq_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _msgq_test."); _task_block(); } printf("\nmutex"); if (_mutex_test(&error_ptr) != MQX_OK){ printf("\nFailed _mutex_test."); _task_block(); } printf("\nname"); if (_name_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _name_test."); _task_block(); } printf("\npartition"); if (_partition_test(&partition, &error_ptr, &error2_ptr) != MQX_OK) { printf("\nFailed _partition_test."); _task_block(); } printf("\nsem"); if (_sem_test(&error_ptr) != MQX_OK){ printf("\nFailed _sem_test."); _task_block(); } printf("\ntaskq"); if (_taskq_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _takq_test."); _task_block(); } printf("\ntimer"); if (_timer_test(&error_ptr) != MQX_OK){ printf("\nFailed _timer_test."); _task_block(); } printf("\nwatchdog"); if (_watchdog_test(&error_ptr, &error2_ptr) != MQX_OK){ printf("\nFailed _watchlog_test."); _task_block(); } printf("\nAll tests passed."); _task_block(); } }