コード例 #1
0
ファイル: name.c プロジェクト: afbcom/ceng455
/*!
 * \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 */
コード例 #2
0
ファイル: test.c プロジェクト: gxliu/MQX_3.8.0
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();
   }

}
コード例 #3
0
ファイル: test.c プロジェクト: kylemanna/kinetis-sdk1
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();
   }

}