def start(order): ''' print 'order.client',order.clientlist,'\norder.client_location',order.client_location,'\norder.clientIP',order.clientIP for curclient in order.clientlist: curclientinfo=order.clientIP[curclient] print 'curclient:',curclient,'radio',curclient,'clientID',curclientinfo['clientid'],'A:',curclientinfo['A'],'E:',curclientinfo['E'] ''' atestcasestatus='%s_%s_%s'%(order.passedcasecount,order.failedcasecount,order.totalcasecount) TMS.updateprogress((order.passedcasecount+order.failedcasecount)/float(order.totalcasecount)*100,'------',order.errorlog,atestcasestatus,order.order_exec_id,1) #TMS2.updateprogress((order.passedcasecount+order.failedcasecount)/float(order.totalcasecount)*100,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),order.errorlog,atestcasestatus,order.order_exec_id) order.run(order.remainingcases)
def main(orderid): curorder=ixchorder(orderid) if not curorder.isInited(): sys.exit(0) print '\ndut_IP: ',dut['IP'],type(dut['IP']) try: dut_ip_sub=re.search(r'(\d{1,3}.\d{1,3}.\d{1,3})',dut['IP']).group(1) except: print "the DUT IP is not set correctly" dut_ip_sub='192.168.1' #dut_ip_sub='%s.%s'%(re.search(r'(\d{1,3}.\d{1,3}.\d{1,3})',dut['IP']).group(1),77) print 'dut_ip_sub',dut_ip_sub curorder.order_exec={'testorderid':curorder.orderid,'plan_start':'0000-00-00 00:00:00','plan_stop':'0000-00-00 00:00:00','starttime':curorder.stime.strftime('%Y-%m-%d %H:%M:%S'),'finishtime':'------','progress':0,'status':1,'testcasestatus':'0_0_0','log':'','testerid':11} curorder.order_exec_id=TMS.addexetable(curorder.order_exec) if not curorder.order_exec_id: print "Can not connected with TMS server, created exec_order table" sys.exit(1) else: print " The execute table is built" #curorder.totalcasecount=totaltrytimes*curorder.xangle*len(curorder.clientlist)*curorder.totalcases/3 #print 'fo.log-----------------------------------------',fo.log logfilename='%s%slogfile.txt'%(curorder.backupdir,os.sep) testlogfile=open(logfilename,'w',0) #fo=Getstdout() sout=stdsplit(testlogfile,curorder.order_exec_id) sys.stdout=sout curorder.start() #atestcasestatus='%s_%s_%s'%(curorder.passedcasecount,curorder.failedcasecount,curorder.totalcasecount) #TMS.updateprogress(100.0,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),fo.log,atestcasestatus,curorder.order_exec_id,0) atestcasestatus='%s_%s_%s'%(curorder.passedcasecount,curorder.failedcasecount,curorder.totalcasecount) #print '\n-------------------------time',datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') #TMS.updateprogress(100.0,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),fo.log,atestcasestatus,curorder.order_exec_id,1) TMS.updateprogress(100.0,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),curorder.errorlog,atestcasestatus,curorder.order_exec_id,0)
upload_result["testnote"] = "Automated" print upload_result["testnote"] print upload_result["tstype"] upload_result["trial"] = 1 + TMS.getResultInfo_VW(check_testdate, testtime_start, upload_result) if upload_result["trial"] > 10: print "\n------The same test has been run for more than 10 times,please make sure it works!-----------" sys.exit(1) if result_TMS_supported: TMS.tms_upload_vw(tms_server, upload_result) else: print "The vwtest result type is not supported by TMS yet, the result is saved on the local folder as the test name\n" runningcouter += 1 TMS.updateprogress(runningcouter / float(totalcases) * 100, orderid) running_status = TMS.getrunningstatus(orderid) if running_status == 0: print "The TMS server stop the test" sys.exit(1) os.system("echo %s --done >> testlog" % upload_result["testnote"]) time.sleep(10) retrycounter = 0 print "---------Now clear the tmpresult folder, all the temp files in the folder will be deleted.------------------" clear_tmpresult(basepath) print "\n\n\n------IxVeriwave test ---Done----Please check the tms result-------Also there is a backup in the result foler-----"
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"
passedcases.append(cur_case) #upload_result["trial"]=1+TMS2.getResultInfo_VW(check_testdate,testtime_start,upload_result) if upload_result["trial"] > 10: print "\n------The same test has been run for more than 10 times,please make sure it works!-----------" sys.exit(1) runningcouter+=1 print errorlog errorlog+=' end :%s \n' % datetime.datetime.now().strftime('%H:%M:%S') atestcasestatus='%s_%s_%s'%(len(passedcases),len(failedcases),len(runningcases)) print 'runningcouter:',runningcouter,'totalcases',totalcases if runningcouter<totalcases: TMS.updateprogress(runningcouter/float(totalcases)*100,'-------',errorlog,atestcasestatus,order_exec_id,1) else: TMS.updateprogress(runningcouter/float(totalcases)*100,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),errorlog,atestcasestatus,order_exec_id,0) running_status=TMS.getrunningstatus(orderid) if running_status==0: print "The TMS server stop the test" sys.exit(1) os.system('echo %s --done >> testlog' %upload_result['testnote']) time.sleep(30) retrycounter=0 print "---------Now clear the tmpresult folder, all the temp files in the folder will be deleted.------------------" clear_tmpresult(running_env['resultdir']) time.sleep(30)