From: <aa...@us...> - 2007-05-31 15:31:23
|
Revision: 274 http://svn.sourceforge.net/gull/?rev=274&view=rev Author: aajjan Date: 2007-05-31 08:31:22 -0700 (Thu, 31 May 2007) Log Message: ----------- New: Add verdict level Modified Paths: -------------- seagull/trunk/src/generator-traffic/C_CallContext.cpp seagull/trunk/src/generator-traffic/C_CallContext.hpp seagull/trunk/src/generator-traffic/C_CallControl.cpp seagull/trunk/src/generator-traffic/C_CallControl.hpp Modified: seagull/trunk/src/generator-traffic/C_CallContext.cpp =================================================================== --- seagull/trunk/src/generator-traffic/C_CallContext.cpp 2007-05-31 15:21:58 UTC (rev 273) +++ seagull/trunk/src/generator-traffic/C_CallContext.cpp 2007-05-31 15:31:22 UTC (rev 274) @@ -42,8 +42,13 @@ } return (&m_id_table[P_channel_id]); } - + +T_pValueData +C_CallContext::get_id(int P_channel_id) { + return (&m_id_table[P_channel_id]); +} + void C_CallContext::next_cmd() { m_current_cmd_idx++; } @@ -100,6 +105,7 @@ m_msg_received = NULL ; m_current_cmd_idx = -1 ; m_selected_line = -1 ; + m_exec_result = E_EXE_NOERROR ; if (P_mem) { ALLOC_TABLE(m_memory_table, @@ -178,8 +184,8 @@ m_selected_line = -1 ; reset_id() ; m_created_call = false ; + m_exec_result = E_EXE_NOERROR ; - for (L_i = 0 ; L_i < m_nb_mem; L_i++) { reset_memory(L_i) ; } @@ -192,6 +198,9 @@ clean_retrans(); + m_channel_id_verdict = -1 ; + m_channel_id_verdict_to_do = false ; + FREE_TABLE(m_retrans_time); FREE_TABLE(m_nb_retrans_done); FREE_TABLE(m_retrans_cmd_idx); @@ -218,7 +227,9 @@ } clean_retrans () ; - + m_exec_result = E_EXE_NOERROR ; + m_channel_id_verdict = -1 ; + m_channel_id_verdict_to_do = false ; } void C_CallContext::reset() { @@ -226,7 +237,9 @@ m_current_cmd_idx = 0 ; m_created_call = false ; clean_retrans () ; - + m_exec_result = E_EXE_NOERROR ; + m_channel_id_verdict = -1 ; + m_channel_id_verdict_to_do = false ; } T_CallContextState C_CallContext::get_state() { @@ -268,6 +281,9 @@ m_created_call = false ; m_current_time = *P_time ; clean_retrans () ; + m_exec_result = E_EXE_NOERROR ; + m_channel_id_verdict = -1 ; + m_channel_id_verdict_to_do = false ; return (m_state); } @@ -281,6 +297,9 @@ reset_id(); m_created_call = false ; clean_retrans () ; + m_exec_result = E_EXE_NOERROR ; + m_channel_id_verdict = -1 ; + m_channel_id_verdict_to_do = false ; return (m_state); } @@ -293,7 +312,9 @@ m_current_cmd_idx = 0 ; // m_id to be tested clean_retrans () ; - + m_exec_result = E_EXE_NOERROR ; + m_channel_id_verdict = -1 ; + m_channel_id_verdict_to_do = false ; m_created_call = false ; m_current_time = P_rcvCtxt->m_time ; Modified: seagull/trunk/src/generator-traffic/C_CallContext.hpp =================================================================== --- seagull/trunk/src/generator-traffic/C_CallContext.hpp 2007-05-31 15:21:58 UTC (rev 273) +++ seagull/trunk/src/generator-traffic/C_CallContext.hpp 2007-05-31 15:31:22 UTC (rev 274) @@ -26,7 +26,9 @@ #include "C_MessageFrame.hpp" #include "ReceiveMsgContext.h" #include "C_ContextFrame.hpp" +#include "exe_code_t.h" + class C_Scenario ; // prevent from circular include // => C_Scenario.hpp only in .cpp @@ -95,8 +97,13 @@ int m_channel_received ; - C_CallControl* m_call_control ; + int m_channel_id_verdict ; + bool m_channel_id_verdict_to_do ; + T_exeCode m_exec_result ; + + C_CallControl* m_call_control ; + T_pContextMapDataList m_map_data_list ; @@ -104,9 +111,10 @@ int P_id, int P_nbChannel, int P_mem=0, int P_nbRetrans=0); ~C_CallContext() ; - T_pValueData - set_id(int P_channel_id, T_pValueData P_val) ; + T_pValueData set_id(int P_channel_id, T_pValueData P_val) ; + T_pValueData get_id(int P_channel_id); + static int m_nb_channel ; void init() ; Modified: seagull/trunk/src/generator-traffic/C_CallControl.cpp =================================================================== --- seagull/trunk/src/generator-traffic/C_CallControl.cpp 2007-05-31 15:21:58 UTC (rev 273) +++ seagull/trunk/src/generator-traffic/C_CallControl.cpp 2007-05-31 15:31:22 UTC (rev 274) @@ -29,6 +29,7 @@ #include <cmath> + C_CallControl::C_CallControl(C_GeneratorConfig *P_config, T_pC_ScenarioControl P_scenControl, C_ChannelControl *P_channel_ctrl) : C_TaskControl() { @@ -313,6 +314,12 @@ L_id = L_callCtxt -> get_internal_id(); + + GEN_LOG_EVENT_CONDITIONAL (LOG_LEVEL_VERDICT, + L_callCtxt->get_id(L_callCtxt->m_channel_id_verdict) != NULL, + verdict_string(L_callCtxt->m_exec_result) + << " [" << *L_callCtxt->get_id(L_callCtxt->m_channel_id_verdict) << "]"); + if (m_correlation_section == true) { L_map_data_list = L_callCtxt->m_map_data_list ; if (!L_map_data_list->empty()){ @@ -461,19 +468,13 @@ stopRetrans(L_pCallContext); } - if (L_pCallContext -> msg_received (&L_rcvCtxt) == false) { // scenario in execution but not in receive state GEN_LOG_EVENT_CONDITIONAL (LOG_LEVEL_TRAFFIC_ERR, L_value_id != NULL, - // "Incorrect state (not receive) for call with session-id [" "Received a message (while not in receive state) for call with session-id [" << *L_value_id << "]"); - // GEN_LOG_EVENT(LOG_LEVEL_TRAFFIC_ERR, - // "The following message is [ " << (*L_msg) << - // GEN_HEADER_LOG << GEN_HEADER_NO_LEVEL << "]" ); - m_stat -> executeStatAction (C_GeneratorStats::E_FAILED_UNEXPECTED_MSG); // try to find default scenario if possible @@ -492,6 +493,7 @@ } else { GEN_LOG_EVENT (LOG_LEVEL_TRAFFIC_ERR, "Unable to find an abort/default scenario"); + L_pCallContext->m_exec_result = E_EXE_ERROR_MSG; makeCallContextAvailable(&L_pCallContext); // setted to NULL m_stat -> executeStatAction (C_GeneratorStats::E_CALL_FAILED) ; } @@ -528,6 +530,7 @@ ->moveToList(L_pCallContext->get_state(), L_pCallContext->get_internal_id()); } else { + L_pCallContext->m_exec_result = L_exeResult ; makeCallContextAvailable(&L_pCallContext); m_stat -> executeStatAction (C_GeneratorStats::E_CALL_FAILED) ; } @@ -732,6 +735,8 @@ // ctrl to max_retrans and delay L_exeResult = L_scenario->execute_cmd_retrans (P_index, L_callContext); + P_callContext->m_exec_result = L_exeResult ; + switch (L_exeResult) { case E_EXE_NOERROR: break ; @@ -747,6 +752,8 @@ break ; } GEN_DEBUG (1, "C_CallControl::execute_scenario_cmd_retrans() end"); + + return (L_exeResult); } @@ -787,6 +794,7 @@ L_scenario = L_callContext->get_scenario() ; L_exeResult = L_scenario->execute_cmd (L_callContext, P_resume); + L_callContext->m_exec_result = L_exeResult ; switch (L_exeResult) { @@ -913,20 +921,17 @@ T_GeneratorError C_CallControl::InitProcedure() { - T_GeneratorError L_error = E_GEN_NO_ERROR ; - int L_i ; - int L_memory_used, L_channel_used, L_nb_retrans ; - C_CallContext *L_pCallContext ; - unsigned long L_config_value ; - - T_pC_Scenario L_scenario ; - // T_pCallContext L_call_ctxt ; - T_TrafficType L_type ; + T_GeneratorError L_error = E_GEN_NO_ERROR ; + int L_i ; + int L_memory_used, L_channel_used, L_nb_retrans ; + C_CallContext *L_pCallContext ; + unsigned long L_config_value ; + T_pC_Scenario L_scenario ; + T_TrafficType L_type ; + T_pWaitValuesSet L_wait_values ; + T_pRetransDelayValuesSet L_retrans_delay_values ; - T_pWaitValuesSet L_wait_values ; - T_pRetransDelayValuesSet L_retrans_delay_values ; - GEN_DEBUG (1, "C_CallControl::InitProcedure() start"); if (!m_config->get_value(E_CFG_OPT_MAX_SIMULTANEOUS_CALLS, @@ -1072,7 +1077,6 @@ C_CallContext::T_retransContextList()); } - m_scenario_control -> update_retrans_delay_cmd (m_nb_retrans_delay_values, m_retrans_delay_values); } @@ -1080,43 +1084,14 @@ } m_stat->init(); -// if (L_scenario == NULL) { -// GEN_WARNING("no init scenario defined"); -// } else { -// // m_type = L_type ; -// switch(L_type) { - -// case E_TRAFFIC_CLIENT: -// GEN_DEBUG (1, "C_CallControl::InitProcedure() E_TRAFFIC_CLIENT"); -// L_call_ctxt = makeCallContextUnavailable(L_scenario); -// if (L_call_ctxt == NULL) { -// GEN_ERROR(E_GEN_FATAL_ERROR, -// "No context available to execute init scenario"); -// L_error = E_GEN_FATAL_ERROR ; -// } -// break ; -// case E_TRAFFIC_SERVER: -// GEN_DEBUG (1, "C_CallControl::InitProcedure() E_TRAFFIC_SERVER:"); -// m_scenario_control->switch_to_init(); -// break ; - -// default: -// GEN_FATAL(E_GEN_FATAL_ERROR, "Unknown init scenario type"); -// break ; -// } - -// } - GEN_DEBUG (1, "C_CallControl::InitProcedure() end"); return (L_error); } T_GeneratorError C_CallControl::EndProcedure() { - int L_i ; - // T_ReceiveMsgContext L_rcvCtxt ; - + int L_i ; int L_nbMessageSuspend ; int L_event_id ; T_pCallContext L_pCallContext ; @@ -1459,6 +1434,7 @@ L_pCallContext->clean_suspended() ; m_channel_control->close_local_channel(L_pCallContext->m_channel_id, L_pCallContext->m_channel_table); + L_pCallContext->m_exec_result = E_EXE_TIMEOUT; makeCallContextAvailable (&L_pCallContext) ; } L_nbMessageSuspend -- ; @@ -1512,24 +1488,20 @@ L_scenario = m_scenario_control->get_abort_scenario(); if (L_scenario != NULL) { L_pCallContext -> switch_to_scenario (L_scenario); - // abort scenario + m_call_ctxt_mlist ->moveToList(L_pCallContext->get_state(), L_pCallContext->get_internal_id()); } else { - + L_pCallContext->m_exec_result = E_EXE_TIMEOUT; m_stat->executeStatAction(C_GeneratorStats::E_CALL_FAILED); makeCallContextAvailable(&L_pCallContext); } } else { - + L_pCallContext->m_exec_result = E_EXE_TIMEOUT; m_stat->executeStatAction(C_GeneratorStats::E_CALL_FAILED); makeCallContextAvailable (&L_pCallContext) ; } - // ATTENTION STAT - - // makeCallContextAvailable (&L_pCallContext) ; - } L_nbRecv -- ; } @@ -1664,7 +1636,6 @@ // add elements for event list L_event_id = P_callContext->m_suspend_id ; m_call_suspended->insert(T_SuspendMap::value_type(L_event_id, P_callContext)); - } T_pCallContext C_CallControl::retrieve_call_context (int P_channel_id, T_pValueData P_id) { @@ -1886,3 +1857,35 @@ return (L_pCallContext) ; } +char* C_CallControl::verdict_string(T_exeCode P_code) { + static const char* verdict_name_table[] = {"Internal state NO Error call-id ", + "Scenario Traffic passed call-id ", + "Scenario Default passed call-id ", + "Scenario Abort passed call-id ", + "Scenario Init passed call-id ", + "Error Receive message: Scenario failed call-id ", + "Error Send message: Scenario failed call-id ", + "Error check behavior: Scenario failed call-id ", + "Internal state Suspend call-id ", + "Scenario Ignore stat behavior call-id ", + "Abort check behavior: Scenario failed call-id ", + "Error Timeout: Scenario failed call-id ", + "Error: Scenario failed call-id "}; + + static const int verdict_code_table[] = {E_EXE_NOERROR, + E_EXE_TRAFFIC_END, + E_EXE_DEFAULT_END, + E_EXE_ABORT_END, + E_EXE_INIT_END, + E_EXE_ERROR_MSG, + E_EXE_ERROR_SEND, + E_EXE_ERROR_CHECK, + E_EXE_SUSPEND, + E_EXE_IGNORE, + E_EXE_ABORT_CHECK, + E_EXE_TIMEOUT, + E_EXE_ERROR}; + + return ((char*)verdict_name_table[verdict_code_table[P_code]]) ; +} + Modified: seagull/trunk/src/generator-traffic/C_CallControl.hpp =================================================================== --- seagull/trunk/src/generator-traffic/C_CallControl.hpp 2007-05-31 15:21:58 UTC (rev 273) +++ seagull/trunk/src/generator-traffic/C_CallControl.hpp 2007-05-31 15:31:22 UTC (rev 274) @@ -163,8 +163,8 @@ typedef T_pCallContext (C_CallControl::* T_CorrelationMethod)(T_ReceiveMsgContext P_rcvCtxt, T_pValueData *P_value_id); + char* verdict_string(T_exeCode P_code); - T_CorrelationMethod m_correlation_method ; T_pCallContext getSessionFromDico(T_ReceiveMsgContext P_rcvCtxt, T_pValueData *P_value_id) ; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |