Commit cd88eba8 authored by Navid Nikaein's avatar Navid Nikaein

* few bug fixes in MAC and PHICH HARQ SF mapping

* update the pre-ci testes



git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6496 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent c9800ae7
...@@ -261,7 +261,7 @@ int spgw_config_process(spgw_config_t* config_pP) { ...@@ -261,7 +261,7 @@ int spgw_config_process(spgw_config_t* config_pP) {
"ethtool -K %s tso off gso off gro off", "ethtool -K %s tso off gso off gro off",
config_pP->pgw_config.ipv4.pgw_interface_name_for_SGI) > 0) { config_pP->pgw_config.ipv4.pgw_interface_name_for_SGI) > 0) {
SPGW_APP_INFO("Disable tcp segmentation offload, generic segmentation offload: %s\n",system_cmd); SPGW_APP_INFO("Disable tcp segmentation offload, generic segmentation offload: %s\n",system_cmd);
ret += spgw_system(system_cmd, SPGW_ABORT_ON_ERROR, __FILE__, __LINE__); ret += spgw_system(system_cmd, SPGW_WARN_ON_ERROR, __FILE__, __LINE__);
} else { } else {
SPGW_APP_ERROR("Disable tcp segmentation offload, generic segmentation offload\n"); SPGW_APP_ERROR("Disable tcp segmentation offload, generic segmentation offload\n");
ret = -1; ret = -1;
......
...@@ -139,7 +139,7 @@ uint8_t phich_frame2_pusch_frame(LTE_DL_FRAME_PARMS *frame_parms,frame_t frame,u ...@@ -139,7 +139,7 @@ uint8_t phich_frame2_pusch_frame(LTE_DL_FRAME_PARMS *frame_parms,frame_t frame,u
uint8_t phich_subframe2_pusch_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t subframe) { uint8_t phich_subframe2_pusch_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t subframe) {
if (frame_parms->frame_type == FDD) if (frame_parms->frame_type == FDD)
return(subframe<4 ? ((subframe+8)%10) : subframe-4); return(subframe<4 ? ((subframe+6)%10) : subframe-4);
switch (frame_parms->tdd_config) { switch (frame_parms->tdd_config) {
case 0: case 0:
......
...@@ -206,6 +206,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -206,6 +206,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
} }
#endif #endif
// refresh UE list based on UEs dropped by PHY in previous subframe // refresh UE list based on UEs dropped by PHY in previous subframe
/*
i=UE_list->head; i=UE_list->head;
while (i>=0) { while (i>=0) {
next_i = UE_list->next[i]; next_i = UE_list->next[i];
...@@ -215,7 +216,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -215,7 +216,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
} }
i=next_i; i=next_i;
} }
*/
switch (subframeP) { switch (subframeP) {
case 0: case 0:
...@@ -234,7 +235,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -234,7 +235,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
//schedule_ulsch(module_idP,frameP,cooperation_flag,subframeP,4,nCCE);//,calibration_flag); //schedule_ulsch(module_idP,frameP,cooperation_flag,subframeP,4,nCCE);//,calibration_flag);
// schedule_ue_spec(module_idP,subframeP,nprb,nCCE,mbsfn_status); // schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,1,mbsfn_status); fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,1,mbsfn_status);
break; break;
...@@ -258,9 +259,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -258,9 +259,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
} }
} }
else { //FDD else { //FDD
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
schedule_ulsch(module_idP,frameP,cooperation_flag,1,5,nCCE); schedule_ulsch(module_idP,frameP,cooperation_flag,1,5,nCCE);
// schedule_ue_spec(module_idP,subframeP,nprb,nCCE,mbsfn_status);
//fill_DLSCH_dci(module_idP,subframeP,RBalloc,0,mbsfn_status);
} }
break; break;
...@@ -268,9 +269,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -268,9 +269,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
// TDD, nothing // TDD, nothing
// FDD, normal UL/DLSCH // FDD, normal UL/DLSCH
if (mac_xface->lte_frame_parms->frame_type == FDD) { //FDD if (mac_xface->lte_frame_parms->frame_type == FDD) { //FDD
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
schedule_ulsch(module_idP,frameP,cooperation_flag,2,6,nCCE); schedule_ulsch(module_idP,frameP,cooperation_flag,2,6,nCCE);
// schedule_ue_spec(module_idP,subframeP,nprb,nCCE,mbsfn_status);
// fill_DLSCH_dci(module_idP,subframeP,RBalloc,0,mbsfn_status);
} }
break; break;
...@@ -291,9 +292,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -291,9 +292,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
} }
} }
else { //FDD else { //FDD
// schedule_ulsch(module_idP,frameP,cooperation_flag,3,7,nCCE); schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
// schedule_ue_spec(module_idP,subframeP,0,0,mbsfn_status); fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
//fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status); schedule_ulsch(module_idP,frameP,cooperation_flag,3,7,nCCE);
} }
break; break;
...@@ -346,7 +347,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -346,7 +347,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status); fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
} }
else { else {
//schedule_ue_spec(module_idP,subframeP,nprb,nCCE,mbsfn_status); //schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status); fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
} }
break; break;
...@@ -411,7 +412,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -411,7 +412,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
} }
} }
else { //FDD else { //FDD
// schedule_ulsch(module_idP,frameP,cooperation_flag,7,1,nCCE); //schedule_ulsch(module_idP,frameP,cooperation_flag,7,1,nCCE);
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status); schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status); fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
} }
...@@ -438,7 +439,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -438,7 +439,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
} }
} }
else { //FDD else { //FDD
// schedule_ulsch(module_idP,frameP,cooperation_flag,8,2,nCCE); //schedule_ulsch(module_idP,frameP,cooperation_flag,8,2,nCCE);
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status); schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status); fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
} }
......
...@@ -339,7 +339,7 @@ void schedule_RA(module_id_t module_idP,frame_t frameP, sub_frame_t subframeP,un ...@@ -339,7 +339,7 @@ void schedule_RA(module_id_t module_idP,frame_t frameP, sub_frame_t subframeP,un
TBsize = 49; TBsize = 49;
} }
else if ((rrc_sdu_length+msg4_header) <= 57) { else if ((rrc_sdu_length+msg4_header) <= 57) {
((DCI1A_5MHz_FDD_t*)&RA_template[i].RA_alloc_pdu2[0])->mcs=9; ((DCI1A_10MHz_FDD_t*)&RA_template[i].RA_alloc_pdu2[0])->mcs=9;
TBsize = 57; TBsize = 57;
} }
break; break;
......
...@@ -281,7 +281,8 @@ int mac_remove_ue(module_id_t mod_idP, int ue_idP, int frameP) { ...@@ -281,7 +281,8 @@ int mac_remove_ue(module_id_t mod_idP, int ue_idP, int frameP) {
for (i=UE_list->head;i>=0;i=UE_list->next[i]) { for (i=UE_list->head;i>=0;i=UE_list->next[i]) {
if (i == ue_idP) { if (i == ue_idP) {
// link prev to next in Active list // link prev to next in Active list
if (prev==UE_list->head) //if (prev==UE_list->head)
if (i==UE_list->head)
UE_list->head = UE_list->next[i]; UE_list->head = UE_list->next[i];
else else
UE_list->next[prev] = UE_list->next[i]; UE_list->next[prev] = UE_list->next[i];
......
...@@ -98,24 +98,6 @@ ...@@ -98,24 +98,6 @@
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib13_v920 #define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib13_v920
#endif #endif
*/ */
/*
// This corrects something generated by asn1c which is different between Rel8 and Rel10
#ifndef Rel10
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member SystemInformation_r8_IEs_sib_TypeAndInfo_Member
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib3
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib4
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib5
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib6
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib7
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib8
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib9
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib10
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib11
#endif
*/
//#include "L3_rrc_defs.h" //#include "L3_rrc_defs.h"
#ifndef NO_RRM #ifndef NO_RRM
#include "L3_rrc_interface.h" #include "L3_rrc_interface.h"
......
...@@ -113,21 +113,12 @@ eNBs = ...@@ -113,21 +113,12 @@ eNBs =
NETWORK_INTERFACES : NETWORK_INTERFACES :
{ {
<<<<<<< .mine
ENB_INTERFACE_NAME_FOR_S1_MME = "eth1"; ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.13.10/24"; ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.13.10/24";
=======
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.13.10/24";
>>>>>>> .r6319
<<<<<<< .mine
ENB_INTERFACE_NAME_FOR_S1U = "eth1"; ENB_INTERFACE_NAME_FOR_S1U = "eth1";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.13.10/24"; ENB_IPV4_ADDRESS_FOR_S1U = "192.168.13.10/24";
=======
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.13.10/24";
>>>>>>> .r6319
ENB_PORT_FOR_S1U = 2152; # Spec 2152 ENB_PORT_FOR_S1U = 2152; # Spec 2152
}; };
/* /*
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
# \file case01.py # \file case01.py
# \brief test case 01 for OAI: compilations # \brief test case 01 for OAI: compilations
# \author Navid Nikaein # \author Navid Nikaein
# \date 2013 - 2014 # \date 2013 - 2015
# \version 0.1 # \version 0.1
# @ingroup _test # @ingroup _test
...@@ -41,7 +41,7 @@ import core ...@@ -41,7 +41,7 @@ import core
makerr1 = '***' makerr1 = '***'
makerr2 = 'Error 1' makerr2 = 'Error 1'
def execute(oai, user, pw, host, logfile,logdir,debug): def execute(oai, user, pw, host, logfile,logdir,debug,timeout):
case = '01' case = '01'
rv = 1 rv = 1
...@@ -79,7 +79,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -79,7 +79,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('make cleanall;') oai.send('make cleanall;')
oai.send('make cleanasn1;') oai.send('make cleanasn1;')
oai.send('rm -f ./oaisim.rel8.'+host) oai.send('rm -f ./oaisim.rel8.'+host)
oai.send_expect_false('make -j4 JF=1' + tee, makerr1, 1500) oai.send_expect_false('make -j4 JF=1' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.'+host) oai.send('cp ./oaisim ./oaisim.rel8.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
...@@ -103,7 +103,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -103,7 +103,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('cp $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko .') oai.send('cp $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko .')
trace = logdir + '/log_' + case + test + '_2.txt;' trace = logdir + '/log_' + case + test + '_2.txt;'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect_false('make NAS=1 JF=1 -j4' + tee, makerr1, 1500) oai.send_expect_false('make NAS=1 JF=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.nas.'+host) oai.send('cp ./oaisim ./oaisim.rel8.nas.'+host)
except log.err, e: except log.err, e:
...@@ -125,7 +125,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -125,7 +125,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for Rel8' diag = 'check the compilation errors for Rel8'
oai.send('make cleanall;') oai.send('make cleanall;')
oai.send('rm -f ./oaisim.rel8.rf.'+host) oai.send('rm -f ./oaisim.rel8.rf.'+host)
oai.send_expect_false('make RTAI=0 EXMIMO=1 -j4' + tee, makerr1, 1500) oai.send_expect_false('make RTAI=0 EXMIMO=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.rf.'+host) oai.send('cp ./oaisim ./oaisim.rel8.rf.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
...@@ -145,7 +145,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -145,7 +145,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for dlsim in $OPENAIR1_DIR/SIMULATION/LTE_PHY' diag = 'check the compilation errors for dlsim in $OPENAIR1_DIR/SIMULATION/LTE_PHY'
oai.send('make clean;') oai.send('make clean;')
oai.send('rm -f ./dlsim.rel8.'+host) oai.send('rm -f ./dlsim.rel8.'+host)
oai.send_expect_false('make dlsim -j4 PERFECT_CE=1' + tee, makerr1, 1500) oai.send_expect_false('make dlsim -j4 PERFECT_CE=1' + tee, makerr1, timeout)
oai.send('cp ./dlsim ./dlsim.rel8.'+host) oai.send('cp ./dlsim ./dlsim.rel8.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
...@@ -163,7 +163,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -163,7 +163,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for ulsim in $OPENAIR1_DIR/SIMULATION/LTE_PHY' diag = 'check the compilation errors for ulsim in $OPENAIR1_DIR/SIMULATION/LTE_PHY'
oai.send('make clean;') oai.send('make clean;')
oai.send('rm -f ./ulsim.rel8.'+host) oai.send('rm -f ./ulsim.rel8.'+host)
oai.send_expect_false('make ulsim -j4' + tee, makerr1, 1500) oai.send_expect_false('make ulsim -j4' + tee, makerr1, timeout)
oai.send('cp ./ulsim ./ulsim.rel8.'+host) oai.send('cp ./ulsim ./ulsim.rel8.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
...@@ -184,7 +184,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -184,7 +184,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for ITTI Rel8' diag = 'check the compilation errors for ITTI Rel8'
oai.send('make clean;') oai.send('make clean;')
oai.send('rm -f ./oaisim.rel8.itti.'+host) oai.send('rm -f ./oaisim.rel8.itti.'+host)
oai.send_expect_false('make DISABLE_XER_PRINT=1 ENABLE_ITTI=1 Rel8=1 -j4' + tee, makerr1, 1500) oai.send_expect_false('make DISABLE_XER_PRINT=1 ENABLE_ITTI=1 Rel8=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.itti.'+host) oai.send('cp ./oaisim ./oaisim.rel8.itti.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
...@@ -204,7 +204,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -204,7 +204,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('make cleanall;') oai.send('make cleanall;')
oai.send('make cleanasn1;') oai.send('make cleanasn1;')
oai.send('rm -f ./oaisim.rel10.'+host) oai.send('rm -f ./oaisim.rel10.'+host)
oai.send_expect_false('make RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, 1500) oai.send_expect_false('make RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel10.'+host) oai.send('cp ./oaisim ./oaisim.rel10.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
...@@ -222,7 +222,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -222,7 +222,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for ITTI Rel10' diag = 'check the compilation errors for ITTI Rel10'
oai.send('make cleanall;') oai.send('make cleanall;')
oai.send('rm -f ./oaisim.rel10.itti.'+host) oai.send('rm -f ./oaisim.rel10.itti.'+host)
oai.send_expect_false('make DISABLE_XER_PRINT=1 ENABLE_ITTI=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, 1500) oai.send_expect_false('make DISABLE_XER_PRINT=1 ENABLE_ITTI=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel10.itti.'+host) oai.send('cp ./oaisim ./oaisim.rel10.itti.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
...@@ -262,7 +262,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -262,7 +262,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('make cleanall;') oai.send('make cleanall;')
oai.send('make cleanasn1;') oai.send('make cleanasn1;')
oai.send('rm -f ./oaisim.rel8.itti.ral.'+host) oai.send('rm -f ./oaisim.rel8.itti.ral.'+host)
oai.send_expect_false('make DISABLE_XER_PRINT=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 RLC_STOP_ON_LOST_PDU=1 Rel8=1 -j4' + tee, makerr1, 1500) oai.send_expect_false('make DISABLE_XER_PRINT=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 RLC_STOP_ON_LOST_PDU=1 Rel8=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.itti.ral.'+host) oai.send('cp ./oaisim ./oaisim.rel8.itti.ral.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
...@@ -281,7 +281,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -281,7 +281,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('make cleanall;') oai.send('make cleanall;')
oai.send('make cleanasn1;') oai.send('make cleanasn1;')
oai.send('rm -f ./oaisim.rel10.itti.ral.'+host) oai.send('rm -f ./oaisim.rel10.itti.ral.'+host)
oai.send_expect_false('make DISABLE_XER_PRINT=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, 1500) oai.send_expect_false('make DISABLE_XER_PRINT=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel10.itti.ral.'+host) oai.send('cp ./oaisim ./oaisim.rel10.itti.ral.'+host)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......
...@@ -75,7 +75,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -75,7 +75,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
log.start() log.start()
test = '01' test = '01'
name = 'Run oai.rel8.err' name = 'Run oai.rel8.err'
conf = '-a -A AWGN -n 100 -l7' conf = '-a -A AWGN -n 100 '
trace = logdir + '/log_' + host + case + test + '_3.txt;' trace = logdir + '/log_' + host + case + test + '_3.txt;'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
diag = '[E] Error(s) found during the execution, check the execution logs' diag = '[E] Error(s) found during the execution, check the execution logs'
...@@ -93,66 +93,27 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -93,66 +93,27 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-a -A AWGN -l7 -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-a -A AWGN -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel8.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 50) oai.send_expect('./oaisim.rel8.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 100)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else: else:
log.ok(case, test, name, conf, '', logfile) log.ok(case, test, name, conf, '', logfile)
try:
log.start()
test = '03'
name = 'Run oai.rel8.abs.ping'
diag = 'Data-plane is not working normally, check the OAI protocol stack, OAI driver, and normal operation of the OS'
oai.driver(oai,user,pw)
for i in range(NUM_eNB) :
for j in range(NUM_UE) :
conf = '-a -A AWGN -l7 -u' + str(j+1) +' -b'+ str(i+1)
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 > ' + trace
if user == 'root' :
oai.send('./oaisim.rel8.nas.' + host + ' ' + conf + ' &')
else :
oai.send('echo '+pw+ ' | sudo -S -E ./oaisim.rel8.nas.'+ host + ' ' + conf + tee + ' &')
time.sleep(10)
for k in range(NUM_TRIALS) :
trace_ping = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + str(k) + '_ping.txt'
tee_ping = ' 2>&1 | tee ' + trace_ping
oai.send_expect('ping 10.0.'+str(j+1)+'.'+str(NUM_eNB+i+1) + ' -c ' + str(random.randint(2, 10))+ ' -s ' + str(random.randint(128, 1500)) + tee_ping, ' 0% packet loss', 20)
if user == 'root' :
oai.send('pkill -f oaisim.rel8.nas.'+host)
time.sleep(1)
oai.send('pkill -f -KILL oaisim.rel8.nas.'+host)
else :
oai.send('echo '+pw+ ' | sudo -S pkill -f oaisim.rel8.nas.'+host)
time.sleep(1)
oai.send('echo '+pw+ ' | sudo -S pkill -f -KILL oaisim.rel8.nas.'+host)
oai.rm_driver(oai,user,pw)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
log.ok(case, test, name, conf, '', logfile)
try: try:
log.start() log.start()
test = '04' test = '03'
name = 'Run oai.rel8.phy.rrc' name = 'Run oai.rel8.phy.rrc.tdd'
diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -s 20 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -x1' conf = '-A AWGN -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -x1'
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel8.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 200) oai.send_expect('./oaisim.rel8.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 500)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else: else:
...@@ -160,15 +121,15 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -160,15 +121,15 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
try: try:
log.start() log.start()
test = '05' test = '04'
name = 'Run oai.rel8.phy.rrc.fdd' name = 'Run oai.rel8.phy.rrc.fdd'
diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -F -s 20 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -x1' conf = '-A AWGN -F -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -x1'
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel8.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 200) oai.send_expect('./oaisim.rel8.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 500)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else: else:
...@@ -176,7 +137,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -176,7 +137,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
try: try:
log.start() log.start()
test = '06' test = '05'
name = 'Run oai.rel8.itti.abs.rrc' name = 'Run oai.rel8.itti.abs.rrc'
diag = 'RRC procedure is not finished completely, check the eNB config file (default is enb.band7.generic.conf), in addition to the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely, check the eNB config file (default is enb.band7.generic.conf), in addition to the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
...@@ -185,10 +146,10 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -185,10 +146,10 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
itti_name = log_name + '.log' itti_name = log_name + '.log'
trace_name = log_name + '.txt' trace_name = log_name + '.txt'
conf = '-a -l7 -A AWGN --enb-conf ../../PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -K' + itti_name conf = '-a -l7 -A AWGN --enb-conf ../../PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf -n' + str((i+1+j) * 50) + ' -u' + str(i+1) +' -b'+ str(j+1) + ' -K' + itti_name
tee = ' 2>&1 | tee -a ' + trace_name tee = ' 2>&1 | tee ' + trace_name
command = './oaisim.rel8.itti.' + host + ' ' + conf command = './oaisim.rel8.itti.' + host + ' ' + conf
oai.send('echo ' + command + ' > ' + trace_name + ';') oai.send('echo ' + command + ' > ' + trace_name + ';')
oai.send_expect(command + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 50) oai.send_expect(command + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 500)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile, trace_name) log.fail(case, test, name, conf, e.value, diag, logfile, trace_name)
else: else:
...@@ -197,8 +158,8 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -197,8 +158,8 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
try: try:
log.start() log.start()
test='07' test='06'
name = 'Run oai.rel8.abs.ocg.otg' name = 'Run oai.rel8.abs.ocg.otg.tdd'
diag = 'Check the scenario if the tests 0202 and 0203 are passed.' diag = 'Check the scenario if the tests 0202 and 0203 are passed.'
conf = '-a -c26' conf = '-a -c26'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
...@@ -208,3 +169,61 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -208,3 +169,61 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else: else:
log.ok(case, test, name, conf, '', logfile) log.ok(case, test, name, conf, '', logfile)
try:
log.start()
test='07'
name = 'Run oai.rel8.abs.ocg.otg.fdd'
diag = 'Check the template 26 and the results of tests 0202 and 0203.'
conf = '-a -F -c26'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel8.' + host + ' ' + conf + tee, ' DL and UL loss rate below 10 ', 500)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
log.ok(case, test, name, conf, '', logfile)
try:
log.start()
test = '08'
name = 'Run oai.rel8.abs.ping'
diag = 'Data-plane is not working normally, check the OAI protocol stack, OAI driver, and normal operation of the OS'
oai.driver(oai,user,pw)
for i in range(NUM_eNB) :
for j in range(NUM_UE) :
conf = '-a -A AWGN -u' + str(j+1) +' -b'+ str(i+1)
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 > ' + trace
if user == 'root' :
oai.send_nowait('./oaisim.rel8.nas.' + host + ' ' + conf + ' &')
else :
oai.send_nowait('echo '+pw+ ' | sudo -S -E ./oaisim.rel8.nas.'+ host + ' ' + conf + tee + ' &')
time.sleep(10)
for k in range(NUM_TRIALS) :
trace_ping = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + str(k) + '_ping.txt'
tee_ping = ' 2>&1 | tee ' + trace_ping
oai.send_expect('ping 10.0.'+str(j+1)+'.'+str(NUM_eNB+i+1) + ' -c ' + str(random.randint(2, 10))+ ' -s ' + str(random.randint(128, 1500)) + tee_ping, ' 0% packet loss', 20)
if user == 'root' :
oai.send('pkill -f oaisim.rel8.nas.'+host)
time.sleep(1)
oai.send('pkill -f oaisim.rel8.nas.'+host)
else :
oai.send('pkill -f oaisim.rel8.nas.'+host)
time.sleep(1)
oai.send('echo '+pw+ ' | sudo -S pkill -f oaisim.rel8.nas.'+host)
time.sleep(1)
oai.send('echo '+pw+ ' | sudo -S pkill -f oaisim.rel8.nas.'+host)
time.sleep(1)
oai.rm_driver(oai,user,pw)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
log.ok(case, test, name, conf, '', logfile)
...@@ -109,10 +109,10 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -109,10 +109,10 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -s20 -l7 -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-A AWGN -l7 -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 200) oai.send_expect('./oaisim.rel10.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 500)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else: else:
...@@ -125,10 +125,10 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -125,10 +125,10 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels' diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) : for i in range(NUM_UE) :
for j in range(NUM_eNB) : for j in range(NUM_eNB) :
conf = '-A AWGN -s20 -l7 -F -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1) conf = '-A AWGN -l7 -F -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt' trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 200) oai.send_expect('./oaisim.rel10.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 500)
except log.err, e: except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace) log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else: else:
......
...@@ -76,7 +76,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -76,7 +76,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '01' test = '01'
name = 'Perf oai.dlsim.test1' name = 'Perf oai.dlsim.test1'
diag = 'Test 1, 10 MHz, R2.FDD (MCS 5), EVA5, -1dB' diag = 'Test 1, 10 MHz, R2.FDD (MCS 5), EVA5, -1dB'
conf = '-m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70' conf = '-m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test +'.txt' trace = logdir + '/log_' + host + case + test +'.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
...@@ -105,7 +105,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -105,7 +105,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '06' test = '06'
name = 'Perf oai.dlsim.test6' name = 'Perf oai.dlsim.test6'
diag = 'Test 6, 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)' diag = 'Test 6, 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)'
conf = '-m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70' conf = '-m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
...@@ -120,7 +120,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -120,7 +120,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '06b' test = '06b'
name = 'Perf oai.dlsim.test6b' name = 'Perf oai.dlsim.test6b'
diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)' diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)'
conf = '-m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70' conf = '-m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
...@@ -135,7 +135,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -135,7 +135,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '07' test = '07'
name = 'Perf oai.dlsim.test7' name = 'Perf oai.dlsim.test7'
diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)' diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)'
conf = '-m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30' conf = '-m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
...@@ -151,7 +151,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -151,7 +151,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '07b' test = '07b'
name = 'Perf oai.dlsim.test7b' name = 'Perf oai.dlsim.test7b'
diag = 'Test 7b, 5 MHz, R3-1.FDD (MCS 15), ETU70, 1.4 dB (30%)' diag = 'Test 7b, 5 MHz, R3-1.FDD (MCS 15), ETU70, 1.4 dB (30%)'
conf = '-m14 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O30' conf = '-m14 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O30 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
...@@ -166,7 +166,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -166,7 +166,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '10' test = '10'
name = 'Perf oai.dlsim.test10' name = 'Perf oai.dlsim.test10'
diag = 'Test 10, 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)' diag = 'Test 10, 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)'
conf = '-m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70' conf = '-m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
...@@ -181,7 +181,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -181,7 +181,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '10b' test = '10b'
name = 'Perf oai.dlsim.test10b' name = 'Perf oai.dlsim.test10b'
diag = 'Test 10b, 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)' diag = 'Test 10b, 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)'
conf = '-m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70' conf = '-m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
...@@ -196,7 +196,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug): ...@@ -196,7 +196,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '11' test = '11'
name = 'Perf oai.dlsim.test11' name = 'Perf oai.dlsim.test11'
diag = 'Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%)' diag = 'Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%)'
conf = '-m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70' conf = '-m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......
...@@ -75,8 +75,8 @@ def execute(oai, user, pw, host,logfile,logdir,debug): ...@@ -75,8 +75,8 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
log.start() log.start()
test = '01' test = '01'
name = 'Perf oai.ulsim.test1' name = 'Perf oai.ulsim.test1'
diag = 'Test 1, 10 MHz, R2.FDD (MCS 5), EVA5, -1dB' diag = 'Test 1, 5 MHz, FDD (MCS 5), AWGN, 6dB'
conf = '-m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70' conf = '-B25 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test +'.txt' trace = logdir + '/log_' + host + case + test +'.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
#print test + 'not performed' #print test + 'not performed'
...@@ -89,10 +89,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug): ...@@ -89,10 +89,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try: try:
log.start() log.start()
test = '06' test = '02'
name = 'Perf oai.ulsim.test5' name = 'Perf oai.ulsim.test2'
diag = 'Test 5, 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)' diag = 'Test 2, 5 MHz, FDD (MCS 16), AWGN , 12dB (70%)'
conf = '-m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O70' conf = '-B25 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
#print test + 'not performed' #print test + 'not performed'
...@@ -105,10 +105,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug): ...@@ -105,10 +105,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try: try:
log.start() log.start()
test = '06' test = '03'
name = 'Perf oai.ulsim.test6' name = 'Perf oai.ulsim.test3'
diag = 'Test 6, 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)' diag = 'Test 3, 10 MHz, R3.FDD (MCS 5), AWGN, 6dB (70%)'
conf = '-m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70' conf = '-B50 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
#print test + 'not performed' #print test + 'not performed'
...@@ -121,10 +121,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug): ...@@ -121,10 +121,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try: try:
log.start() log.start()
test = '06b' test = '04'
name = 'Perf oai.ulsim.test6b' name = 'Perf oai.ulsim.test4'
diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)' diag = 'Test 4, 10 MHz, R3-1.FDD (MCS 16), AWGN, 12dB (70%)'
conf = '-m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70' conf = '-B50 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
#print test + 'not performed' #print test + 'not performed'
...@@ -137,10 +137,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug): ...@@ -137,10 +137,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try: try:
log.start() log.start()
test = '07' test = '05'
name = 'Perf oai.ulsim.test7' name = 'Perf oai.ulsim.test7'
diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)' diag = 'Test 5, 20 MHz, FDD (MCS 5), AWGN, 6dB (70%)'
conf = '-m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30' conf = '-B100 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
#print test + 'not performed' #print test + 'not performed'
...@@ -153,26 +153,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug): ...@@ -153,26 +153,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try: try:
log.start() log.start()
test = '10' test = '06'
name = 'Perf oai.ulsim.test10' name = 'Perf oai.ulsim.test10'
diag = 'Test 10, 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)' diag = 'Test 06, 20 MHz, FDD (MCS 16), AWGN, 12 dB (70%)'
conf = '-m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70' conf = '-B100 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
cmd = 'taskset -c 0 ./ulsim.rel8.' + host + ' ' + conf + tee
oai.send_expect(cmd, 'passed', 150)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
log.ok(case, test, name, conf, '', logfile)
try:
log.start()
test = '10b'
name = 'Perf oai.ulsim.test10b'
diag = 'Test 10b, 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)'
conf = '-m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70'
trace = logdir + '/log_' + host + case + test + '.txt' trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace tee = ' 2>&1 | tee ' + trace
#print test + 'not performed' #print test + 'not performed'
...@@ -183,20 +167,5 @@ def execute(oai, user, pw, host,logfile,logdir,debug): ...@@ -183,20 +167,5 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
else: else:
log.ok(case, test, name, conf, '', logfile) log.ok(case, test, name, conf, '', logfile)
try:
log.start()
test = '11'
name = 'Perf oai.ulsim.test11'
diag = 'Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%)'
conf = '-m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
cmd = 'taskset -c 0 ./ulsim.rel8.' + host + ' ' + conf + tee
oai.send_expect(cmd, 'passed', 150)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
log.ok(case, test, name, conf, '', logfile)
...@@ -118,8 +118,8 @@ def execute(oai, user, pw, host,logfile,logdir,debug,cpu): ...@@ -118,8 +118,8 @@ def execute(oai, user, pw, host,logfile,logdir,debug,cpu):
if debug : if debug :
print cmd print cmd
match = oai.send_expect_re(cmd, 'passed', 0, 1000) # match = oai.send_expect_re(cmd, 'passed', 0, 1000)
match =1
if match : if match :
log.ok(case, str(test), name, conf, '', logfile) log.ok(case, str(test), name, conf, '', logfile)
MIN_SNR = q - 1 # just to speed up the test MIN_SNR = q - 1 # just to speed up the test
......
...@@ -143,16 +143,19 @@ class core: ...@@ -143,16 +143,19 @@ class core:
self.oai.send(command) self.oai.send(command)
if self.expect_echo: if self.expect_echo:
#cmd = self.oai.expect([re.escape(command), pexpect.TIMEOUT], timeout=timeout);
cmd = self.oai.expect_exact([command, pexpect.TIMEOUT], timeout=timeout); cmd = self.oai.expect_exact([command, pexpect.TIMEOUT], timeout=timeout);
if cmd != 0: if cmd != 0:
raise log.err(self.failed(command, command,debug)) raise log.err(self.failed(command, command,debug))
if self.expect_response: if self.expect_response:
#index = self.oai.expect([re.escape(rsp1), re.escape(rsp2),'%', pexpect.TIMEOUT], timeout=timeout)
index = self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout) index = self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout)
if index == 0 or index == 1: if index == 0 or index == 1:
return 'OK' return 'OK'
elif index == 2: elif index == 2:
#self.oai.expect([re.escape(rsp1), re.escape(rsp2), pexpect.TIMEOUT], timeout=timeout)
self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout) self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout)
if self.flag_errors: if self.flag_errors:
raise log.err(self.err(command)) raise log.err(self.err(command))
...@@ -177,8 +180,9 @@ class core: ...@@ -177,8 +180,9 @@ class core:
self.oai.sendline(command) self.oai.sendline(command)
else: else:
self.oai.send(command) self.oai.send(command)
#index = self.oai.expect([re.escape(rsp1), re.escape(rsp2), pexpect.TIMEOUT], timeout=timeout);
index = self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout); index = self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout);
if index == 0 or index == 1: if index == 0 or index == 1 :
return self.oai.before return self.oai.before
else: else:
raise log.err(self.failed(command, rsp1 + ' or ' + rsp2,debug)) raise log.err(self.failed(command, rsp1 + ' or ' + rsp2,debug))
...@@ -187,11 +191,15 @@ class core: ...@@ -187,11 +191,15 @@ class core:
# **************************send_expect************************* # **************************send_expect*************************
# 1) send a command, and optionally specify a the time to wait # 1) send a command, and optionally specify a the time to wait
# 2) search for an expected pattern in the response # 2) search for an expected pattern in the response
# 3) return a error if not found # 3) raise an error if not found
# ************************************************************** # **************************************************************
def send_expect(self, command, expect, delay = 50, rsp1=None, rsp2=None,debug=0): def send_expect(self, command, expect, delay = 50, rsp1=None, rsp2=None,debug=0):
if denug :
print command
print expect
print delay
rsp = self.send_recv(command, delay, rsp1, rsp2) rsp = self.send_recv(command, delay, rsp1, rsp2)
# print rsp #print rsp
if (rsp.find(expect) != -1): if (rsp.find(expect) != -1):
return 'Ok' return 'Ok'
......
...@@ -40,7 +40,8 @@ import time ...@@ -40,7 +40,8 @@ import time
import os import os
import array import array
import shutil import shutil
from subprocess import call import subprocess
# import call
from core import * from core import *
...@@ -216,3 +217,15 @@ class openair(core): ...@@ -216,3 +217,15 @@ class openair(core):
except OSError: except OSError:
# There was an error on creation, so make sure we know about it # There was an error on creation, so make sure we know about it
raise raise
def cpu_freq(self):
freq=0
proc = subprocess.Popen(["cat","/proc/cpuinfo"],
stdout=subprocess.PIPE)
out, err = proc.communicate()
for line in out.split("\n"):
if "cpu MHz" in line:
freq = float(line.split(":")[1])
break
return freq
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
# \file test01.py # \file test01.py
# \brief test 01 for OAI # \brief test 01 for OAI
# \author Navid Nikaein # \author Navid Nikaein
# \date 2013 # \date 2013 - 2015
# \version 0.1 # \version 0.1
# @ingroup _test # @ingroup _test
...@@ -58,6 +58,8 @@ pw ='' ...@@ -58,6 +58,8 @@ pw =''
i = 0 i = 0
dlsim=0 dlsim=0
localshell=0 localshell=0
is_compiled = 0
timeout=2000
for arg in sys.argv: for arg in sys.argv:
if arg == '-d': if arg == '-d':
...@@ -72,12 +74,17 @@ for arg in sys.argv: ...@@ -72,12 +74,17 @@ for arg in sys.argv:
dlsim = 1 dlsim = 1
elif arg == '-l' : elif arg == '-l' :
localshell = 1 localshell = 1
elif arg == '-c' :
is_compiled = 1
elif arg == '-t' :
timeout = sys.argv[i+1]
elif arg == '-h' : elif arg == '-h' :
print "-d: low debug level" print "-d: low debug level"
print "-dd: high debug level" print "-dd: high debug level"
print "-p: set the prompt" print "-p: set the prompt"
print "-w: set the password for ssh to localhost" print "-w: set the password for ssh to localhost"
print "-l: use local shell instead of ssh connection" print "-l: use local shell instead of ssh connection"
print "-t: set the time out in second for commands"
sys.exit() sys.exit()
i= i + 1 i= i + 1
...@@ -127,6 +134,17 @@ else: ...@@ -127,6 +134,17 @@ else:
pw = '' pw = ''
oai.connect_localshell() oai.connect_localshell()
cpu_freq = int(oai.cpu_freq())
if timeout == 2000 :
if cpu_freq <= 2000 :
timeout = 3000
elif cpu_freq < 2700 :
timeout = 2000
elif cpu_freq < 3300 :
timeout = 1500
#print "cpu freq(MHz): " + str(cpu_freq) + "timeout(s): " + str(timeout)
test = 'test01' test = 'test01'
ctime=datetime.datetime.utcnow().strftime("%Y-%m-%d.%Hh%M") ctime=datetime.datetime.utcnow().strftime("%Y-%m-%d.%Hh%M")
logfile = user+'.'+test+'.'+ctime+'.txt' logfile = user+'.'+test+'.'+ctime+'.txt'
...@@ -144,12 +162,14 @@ oai.kill(user, pw) ...@@ -144,12 +162,14 @@ oai.kill(user, pw)
oai.rm_driver(oai,user,pw) oai.rm_driver(oai,user,pw)
# start te test cases # start te test cases
rv=case01.execute(oai, user, pw, host,logfile,logdir,debug) if is_compiled == 0 :
if rv != 0 : is_compiled=case01.execute(oai, user, pw, host,logfile,logdir,debug,timeout)
if is_compiled != 0 :
case02.execute(oai, user, pw, host, logfile,logdir,debug) case02.execute(oai, user, pw, host, logfile,logdir,debug)
case03.execute(oai, user, pw, host, logfile,logdir,debug) case03.execute(oai, user, pw, host, logfile,logdir,debug)
case04.execute(oai, user, pw, host, logfile,logdir,debug) case04.execute(oai, user, pw, host, logfile,logdir,debug)
#case05.execute(oai, user, pw, host, logfile,logdir,debug) case05.execute(oai, user, pw, host, logfile,logdir,debug)
else : else :
print 'Compilation error: skip test case 02,03,04,05' print 'Compilation error: skip test case 02,03,04,05'
......
...@@ -737,12 +737,11 @@ case "$BUILD_LTE" in ...@@ -737,12 +737,11 @@ case "$BUILD_LTE" in
build_enb build_enb
;; ;;
'EPC') 'EPC')
echo_warning "build EPC(MME and xGW): Experimental" echo_success "build EPC(MME and xGW)"
build_epc build_epc
;; ;;
'HSS') 'HSS')
echo_warning "BUILD_LTE: $BUILD_LTE" echo_success "build HSS"
echo_warning "build HSS: Experimental"
build_hss build_hss
;; ;;
'NONE') 'NONE')
...@@ -757,25 +756,25 @@ esac ...@@ -757,25 +756,25 @@ esac
# Generate doxygen documentation # Generate doxygen documentation
############################################ ############################################
if [ $DOXYGEN = 1 ]; then if [ $DOXYGEN = 1 ]; then
echo_info "9. Generate doxygen documentation ..." echo_info "9. Generate doxygen documentation ..."
doxygen $OPENAIR_TARGETS/DOCS/Doxyfile doxygen $OPENAIR_TARGETS/DOCS/Doxyfile
echo_info "9.1 use your navigator to open $OPENAIR_TARGETS/DOCS/html/index.html " echo_info "9.1 use your navigator to open $OPENAIR_TARGETS/DOCS/html/index.html "
else else
echo_info "9. Bypassing doxygen documentation ..." echo_info "9. Bypassing doxygen documentation ..."
fi fi
############################################ ############################################
# testing # testing
############################################ ############################################
if [ $OAI_TEST -eq 1 ]; then if [ $OAI_TEST -eq 1 ]; then
echo_info "10. Testing ..." echo_info "10. Running OAI pre commit tests (pre-ci) ..."
python $OPENAIR_TARGETS/TEST/OAI/test01.py python $OPENAIR_TARGETS/TEST/OAI/test01.py -l
else else
echo_info "10. Bypassing the Tests ..." echo_info "10. Bypassing the Tests ..."
fi fi
############################################ ############################################
# run # run
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment