def run(order,toruncases): #order.starttime=datetime.datetime.now().strftime('%Y-%m-%d_%H:%M:%S') print "\n---------------------------------The test order %s begins at %s-----------------------"%(order.orderid,order.starttime) print 'Thread %s is running\n'%threading.current_thread().name for crcase in toruncases[:]: #print 'rem:',curorder.remainingcases,'total:',curorder.caselist active_status=TMS2.getrunningstatus(order.orderid) if not active_status: print "The test order %s has been stop by the server" break match=re.search(r'^(\d{1,4})\s(\d+)',crcase) if not match: print 'Not matched, the format of testcase is not correct, can not generate the tclfile' order.failedcases[crcase]= "The test case is not in database" #order.remainingcases.remove(crcase) else: #order.remainingcases.remove(crcase) order.passedcases.append(crcase) print match.group(1),match.group(2) cur_case=iccase(match.group(1),match.group(2)) #print order.clientIP if cur_case.isInited(): for curclient in order.clientlist: print 'curclient:',curclient curclientinfo=order.clientIP[curclient] if cur_case.radio != curclientinfo['radio']: print 'The current case radio is different, skip this client-------------------\n' else: print '\n-----radio',cur_case.radio,curclientinfo['radio'],'clientID',curclientinfo['clientid'],'\n clientIP',curclientinfo['A'],'------' cur_case.clientID=curclientinfo['clientid'] if order.testbed ==9: cur_case.location=['A','B','C','D','E'] elif order.testbed ==8: cur_case.location=['A','B','C','D','E'] else: print "wrong testbed" sys.exit(0) if cur_case.radio=='2.4GHz': cur_case.endpoint_2G['A']=curclientinfo['A'] if order.testbed == 8: cur_case.endpoint_2G['B']=curclientinfo['B'] cur_case.endpoint_2G['C']=curclientinfo['C'] cur_case.endpoint_2G['D']=curclientinfo['D'] cur_case.endpoint_2G['E']=curclientinfo['E'] elif cur_case.radio=='5GHz': cur_case.endpoint_5G['A']=curclientinfo['A'] if order.testbed == 8: cur_case.endpoint_5G['B']=curclientinfo['B'] cur_case.endpoint_5G['C']=curclientinfo['C'] cur_case.endpoint_5G['D']=curclientinfo['D'] cur_case.endpoint_5G['E']=curclientinfo['E'] else: print "not supported" cur_case.creatclonefile() if order.xangle!=0: for iangle in range(order.xangle): cur_case.xangle=[0,90,180,270][iangle] #setangle_success=ixchorder.iturntable.setangle(cur_case.xangle) time.sleep(10) if not setangle_success: print " Failed to set the turntable angle, the system exit" break #print 'order.client:',order.client cur_case.go(curclient, order.client_location) cur_case.uploadresult(order,dut,tms_server) print cur_case.result_pdf,'\n',cur_case.result_csv,'\n',cur_case.result_tst #for angleindex in range(order.xangle): #cur_case.xangle=ixchorder.iturntable.angle[angleindex] # #print " Failed to set the turntable angle, the system exit" #sys.exit(0) else: print iangle,[0,90,180,270][iangle] #print ixchorder.iturntable[0] #print curclientinfo case.location=['A','B','C','D','E'] case.clientID='2' #print 'curclient:',curclient,'radio',curclient,'clientID',curclientinfo['clientid'],'A:',curclientinfo['A'],'E:',curclientinfo['E'] #case_i.dealresult(dut,'./tmpresult','./tmpresult') #case_i.uploadresult(testorder,dut,tms_server) print 'Failinfo',cur_case.Failinfo if not cur_case.Failinfo: print 'pass' else: print 'fail' else: print "the case failed"
def run(order,toruncases): #order.starttime=datetime.datetime.now().strftime('%Y-%m-%d_%H:%M:%S') print "\n---------------------------------The test order %s begins at %s-----------------------"%(order.orderid,order.starttime) print 'Thread %s is running\n'%threading.current_thread().name numangle=len(order.anglelist) for crcase in toruncases[:]: #print 'rem:',curorder.remainingcases,'total:',curorder.caselist active_status=TMS.getrunningstatus(order.orderid) if not active_status: print "The test order %s has been stop by the server" break match=re.search(r'^(\d{1,4})\s(\d+)',crcase) if not match: print 'Not matched, the format of testcase is not correct, can not generate the tclfile' order.failedcases[crcase]= "The test case is not in database" #order.remainingcases.remove(crcase) else: #order.remainingcases.remove(crcase) order.passedcases.append(crcase) print match.group(1),match.group(2) cur_case=iccase(match.group(1),match.group(2)) #print order.clientIP if cur_case.isInited(): for curclient in order.clientlist: print 'curclient:',curclient #ttt='C' #print order.clientIP[curclient]['P'+ttt] #print curclientinfo['PA'],curclientinfo['PB'],curclientinfo['PC'],curclientinfo['PD'],curclientinfo['PE'] if ':' in curclient: if cur_case.radio != 'Dual': print 'The current case radio is different, skip this client-------------------\n' else: print "the Dual band test" curclient_1=curclient.split(':')[0] curclient_2=curclient.split(':')[1] curclient_1info=order.clientIP[curclient_1] curclient_2info=order.clientIP[curclient_2] cur_case.clientID=curclient_1info['clientid'] cur_case.location=['A','B','C','D','E'] #curclient_1info['radio']=='2.4GHz': cur_case.endpoint_2G['A']=curclient_1info['A'] cur_case.endpoint_5G['A']=curclient_2info['A'] cur_case.endpoint_2G['PA']=curclient_1info['PA'] cur_case.endpoint_5G['PA']=curclient_2info['PA'] if order.testbed == 8: cur_case.endpoint_2G['B']=curclient_1info['B'] cur_case.endpoint_2G['C']=curclient_1info['C'] cur_case.endpoint_2G['D']=curclient_1info['D'] cur_case.endpoint_2G['E']=curclient_1info['E'] cur_case.endpoint_5G['B']=curclient_2info['B'] cur_case.endpoint_5G['C']=curclient_2info['C'] cur_case.endpoint_5G['D']=curclient_2info['D'] cur_case.endpoint_5G['E']=curclient_2info['E'] cur_case.endpoint_2G['PB']=curclient_1info['PB'] cur_case.endpoint_2G['PC']=curclient_1info['PC'] cur_case.endpoint_2G['PD']=curclient_1info['PD'] cur_case.endpoint_2G['PE']=curclient_1info['PE'] cur_case.endpoint_5G['PB']=curclient_2info['PB'] cur_case.endpoint_5G['PC']=curclient_2info['PC'] cur_case.endpoint_5G['PD']=curclient_2info['PD'] cur_case.endpoint_5G['PE']=curclient_2info['PE'] cur_case.creatclonefile() if numangle!=0: for iangle in range(numangle): #print order.anglelist cur_case.xangle=order.anglelist[iangle] print cur_case.xangle setangle_success=order.iturntable.setangle(cur_case.xangle) time.sleep(10) if not setangle_success: print " Failed to set the turntable angle, the system exit" break #print 'order.client:',order.client asucess=cur_case.go(curclient, order.client_location) if not asucess: order.failedcasecount+=1 print "failed once",order.failedcasecount else: order.passedcasecount+=1 print "passed",order.passedcasecount cur_case.uploadresult(order,dut,tms_server) #print cur_case.result_pdf,'\n',cur_case.result_csv,'\n',cur_case.result_tst cur_case.dealresult(order.backupdir,cur_case.xangle) order.errorlog+=' end :%s \n' % datetime.datetime.now().strftime('%H:%M:%S') atestcasestatus='%s_%s_%s'%(order.passedcasecount,order.failedcasecount,order.totalcasecount) #atestcasestatus='%s_%s_%s'%(len(order.passedcases),len(order.failedcases),order.totalcases-len(order.failedcases)-len(order.failedcases)) TMS.updateprogress((order.passedcasecount+order.failedcasecount)/float(order.totalcasecount)*100,'------',order.errorlog,atestcasestatus,order.order_exec_id,1) #for angleindex in range(order.xangle): #cur_case.xangle=ixchorder.iturntable.angle[angleindex] # #print " Failed to set the turntable angle, the system exit" #sys.exit(0) else: print iangle,[0,90,180,270][iangle] sys.exit(0) else: curclientinfo=order.clientIP[curclient] if cur_case.radio != curclientinfo['radio']: print 'The current case radio is different, skip this client-------------------\n' else: print '\n-----radio',cur_case.radio,curclientinfo['radio'],'clientID',curclientinfo['clientid'],'\n clientIP',curclientinfo['A'],'------' cur_case.clientID=curclientinfo['clientid'] if order.testbed ==9: cur_case.location=['A','B','C','D','E'] elif order.testbed ==8: cur_case.location=['A','B','C','D','E'] else: print "wrong testbed" sys.exit(0) if cur_case.radio=='2.4GHz': cur_case.endpoint_2G['A']=curclientinfo['A'] cur_case.endpoint_2G['PA']=curclientinfo['PA'] if order.testbed == 8: cur_case.endpoint_2G['B']=curclientinfo['B'] cur_case.endpoint_2G['C']=curclientinfo['C'] cur_case.endpoint_2G['D']=curclientinfo['D'] cur_case.endpoint_2G['E']=curclientinfo['E'] cur_case.endpoint_2G['PB']=curclientinfo['PB'] cur_case.endpoint_2G['PC']=curclientinfo['PC'] cur_case.endpoint_2G['PD']=curclientinfo['PD'] cur_case.endpoint_2G['PE']=curclientinfo['PE'] elif cur_case.radio=='5GHz': #cur_case.endpoint_5G['base']='192.168.8.205' cur_case.endpoint_5G['A']=curclientinfo['A'] cur_case.endpoint_5G['PA']=curclientinfo['PA'] if order.testbed == 8: cur_case.endpoint_5G['B']=curclientinfo['B'] cur_case.endpoint_5G['C']=curclientinfo['C'] cur_case.endpoint_5G['D']=curclientinfo['D'] cur_case.endpoint_5G['E']=curclientinfo['E'] cur_case.endpoint_5G['PB']=curclientinfo['PB'] cur_case.endpoint_5G['PC']=curclientinfo['PC'] cur_case.endpoint_5G['PD']=curclientinfo['PD'] cur_case.endpoint_5G['PE']=curclientinfo['PE'] else: print "not supported" cur_case.creatclonefile() if numangle!=0: for iangle in range(numangle): print 'iangle',iangle cur_case.xangle=order.anglelist[iangle] setangle_success=order.iturntable.setangle(cur_case.xangle) time.sleep(10) if not setangle_success: print " Failed to set the turntable angle, the system exit" break #print 'order.client:',order.client #cur_case.go(curclient, order.client_location) asucess=cur_case.go(curclient, order.client_location) if not asucess: order.failedcasecount+=1 print "failed once",order.failedcasecount else: order.passedcasecount+=1 print "passed",order.passedcasecount cur_case.uploadresult(order,dut,tms_server) #print cur_case.result_pdf,'\n',cur_case.result_csv,'\n',cur_case.result_tst cur_case.dealresult(order.backupdir,cur_case.xangle) #print fo.log #order.errorlog+=fo.log #print order.errorlog order.errorlog+=' end :%s \n' % datetime.datetime.now().strftime('%H:%M:%S') atestcasestatus='%s_%s_%s'%(order.passedcasecount,order.failedcasecount,order.totalcasecount) #atestcasestatus='%s_%s_%s'%(len(order.passedcases),len(order.failedcases),order.totalcases-len(order.failedcases)-len(order.failedcases)) TMS.updateprogress((order.passedcasecount+order.failedcasecount)/float(order.totalcasecount)*100,'------',order.errorlog,atestcasestatus,order.order_exec_id,1) #for angleindex in range(order.xangle): #cur_case.xangle=ixchorder.iturntable.angle[angleindex] # #print " Failed to set the turntable angle, the system exit" #sys.exit(0) else: print iangle,[0,90,180,270][iangle] sys.exit(0) #print ixchorder.iturntable[0] #print curclientinfo case.location=['A','B','C','D','E'] case.clientID='2' #print 'curclient:',curclient,'radio',curclient,'clientID',curclientinfo['clientid'],'A:',curclientinfo['A'],'E:',curclientinfo['E'] #case_i.dealresult(dut,'./tmpresult','./tmpresult') #case_i.uploadresult(testorder,dut,tms_server) print 'Failinfo',cur_case.Failinfo if not cur_case.Failinfo: print 'pass' else: print 'fail' else: print "the case failed"