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) if order.attenuationlist: cur_case = iccase(match.group(1), match.group(2), order.conf_name, len(order.attenuationlist)) else: cur_case = iccase(match.group(1), match.group(2), order.conf_name) # print order.clientIP if cur_case.isInited(): for curclient in order.clientlist: print "curclient:", curclient 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"] # 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["A"] = curclient_2info["A"] # if order.testbed == 8: 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.creatclonefile() if numangle != 0: for iangle in range(numangle): # print order.anglelist cur_case.xangle = order.anglelist[iangle] print cur_case.xangle if order.turntableip: setangle_success = order.iturntable.setangle(cur_case.xangle) else: setangle_success = 1 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, order.attenuationlist) 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 or order.testbed==10: # 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['base']='192.168.8.205' 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 numangle != 0: for iangle in range(numangle): print "iangle", iangle cur_case.xangle = order.anglelist[iangle] if order.turntableip: setangle_success = order.iturntable.setangle(cur_case.xangle) else: setangle_success = 1 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) print "\n-----debug:", curclient, order.client_location #'0',['0,1'] asucess = cur_case.go(curclient, order.client_location, order.attenuationlist) 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"