寄存器自动化测试说明及时使用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

86 lines
2.7 KiB

import csv
import os
def deal_params(dev_list,fun):
para_list=[]
for i in dev_list:
a=fun(i)
dict1=demo(a)
para_list.append(dict1)
read_params_list=[]
for i in para_list:
if len(i)>0:
for j,k in i.items():
k.append(j)
read_params_list.append(tuple(k))
for l in range(len(k)):
if isinstance(k[l],int):
pass
read_params_list=sort_list(read_params_list)
return read_params_list
def output_value_csv(data,header =["test_num","device_name","reg_name","offset","alter_value","expect_value"],file_name="data.csv"):
if file_name=="data.csv":
if os.path.exists(file_name):
print("{}文件已存在".format(file_name))
else:
with open(file_name,"w",encoding="utf-8",newline='')as fq:
writer=csv.writer(fq)
writer.writerow(header)
writer.writerows(data)
else:
if os.path.exists(file_name):
print("{}已删除,重新生成".format(file_name))
os.remove(file_name)
with open(file_name,"w",encoding="utf-8",newline='')as fq:
writer=csv.writer(fq)
writer.writerow(header)
writer.writerows(data)
def out_put_test_reslut(data):
file_name="testcase_result.csv"
header=["tst_num","device_name","reg_name","offset","init_value","alter_value","expect_value","actual_value","test_result"]
output_value_csv(data,header=header,file_name=file_name)
def read_csv():
try:
reg_par_list=[]
with open("data.csv") as f:
f_csv=csv.reader(f)
headers=next(f_csv)
for row in f_csv:
reg_params=(row[0],row[1],row[2],int(row[3],16),int(row[4],16),int(row[5],16))
reg_par_list.append(reg_params)
return reg_par_list
except IndexError:
print("请补充测试数据")
except Exception as ep:
print(ep)
def demo(a):
dict1={}
for j,k in a.items():
for i in range(len(k)):
dict1[k[i]["name"]] = [j,k[i]["offset"]]
return dict1
def sort_list(a):
for i in range(len(a)):
for j in range(i+1,len(a)):
if a[i][0] == a[j][0]:
if a[i][1]>a[j][1]:
a[i],a[j] = a[j],a[i]
res=[]
res1=[]
for i in a:
i=list(i)
res.append(i)
[res1.append(res[i][0]) for i in range(len(res)) if res[i][0] not in res1]
for i in res1:
a=1
for k in res:
if i in k:
testcasenum="testcase{}_({})".format(str(a),i)
k.insert(0,testcasenum)
a+=1
return res