Пример #1
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  		
		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"
Пример #2
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"