Exemple #1
0
	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)
Exemple #2
0
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)
Exemple #3
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-----"
Exemple #4
0
	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"
Exemple #5
0
			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)