|
5#
楼主 |
发表于 2005-2-25 17:02:05
|
只看该作者
# IEC103规约主站测试工具
set_window ("IEC103规约主站测试工具", 2);
menu_select_item ("控制(V);设 置");
# 设置
set_window ("设置", 7);
edit_set ("循环周期:", ddt_val(table,"循环周期"));
edit_set ("缓冲区大小:", ddt_val(table,"缓冲区大小"));
# button_press ("取 消");
wait(2);
button_press ("确 定");
############################################################################################
# 两 种 结 果:1.) 输 入不合法 2.) 合法的输 入。
#############################################################################################
#当输 入不合法时 ,出现 信息提示
if (win_exists ("IEC103MSW Message",1) == E_OK)#在结 果中显 示对 话 框,显 示期望值 和实 际 值
{
j++;
set_window ("IEC103MSW Message");
# Check to see if the Error message reported on the IEC103MSW Message
# window is correct. If it is not; the report message displays that
# the test passed but had an incorrect error message.
#当数据表中的Message信息和实 际 应 显 示的信息匹配时,,执 行以下语 句。
if (static_check_text("Message", ddt_val(table, "Error_Message")) == E_OK)
{
rc=ddt_get_current_row(table,row);
if(rc != E_OK)
{
tl_msg = sprintf(get_current_row_failed, table, rc);
tl_step (illegal_parameter, FAIL,tl_msg);
row =0;
}
tl_msg = sprintf(illegal_parameter_rec, row);
tl_step (tl_msg, PASS, improper_parameter);
}
# 当数据表中的Message信息和实 际 应 显 示的信息不匹配时 ,执 行 以下语 句。
else
{
static_get_text ("Message", text);
tl_msg = sprintf(incorrect_msg_improper_parameter,ddt_val(table, "Error_Message") , text);
tl_step (illegal_parameter, FAIL,tl_msg);
error_flag = 1;
}
# IEC103MSW Message
set_window ("IEC103MSW Message", 1);
button_press ("确定");
if(win_exists ("IEC103MSW Message",1) == E_OK)
{
tl_step("关 闭 信息提示框 ",FAIL,"按一次确 定按钮 后无法关 闭 信息提示框");
set_window ("IEC103MSW Message", 1);
button_press ("确定");
#关 闭 设 置窗口
set_window ("设置", 1);
button_press ("取 消");
}
file_temp = j; #循环 保存比较 后的文件,否则 会冲掉前一次的保存结 果
rc = file_compare(file_name_old,file_name_new,file_temp);
if(rc != E_OK)
{
copyflag = 1;
#如果不相等,从Setting.ini(file_name_old)中读 取循环 周期和缓 冲区大小
file_open(file_name_new ,FO_MODE_READ);
i=0;
while(file_getline(file_name_new ,line) ==0)
{
switch(i)
{
case 0:
break;
case 1:
data_cycTime_new = substr(line,6,9);
break;
case 2:
data_bufSize_new = substr(line,7,9);
break;
default:
break;
}
i++;
}
file_close(file_name_new);
if((data_cycTime_old != data_cycTime_new)&&(data_bufSize_old != data_bufSize_new))
{
tl_msg = sprintf("输 入的循环 周期= %s,输 入的缓 冲区大小 = %s,配置文件中的循环 周期= %s,配置文件中的缓 冲区大小 = %s",ddt_val(table,"循环周期"),ddt_val(table,"缓冲区大小"),data_cycTime_old,data_bufSize_old);
tl_step("程序功能错 误 ",FAIL,tl_msg);
}
if((data_cycTime_old != data_cycTime_new)&&(data_bufSize_old == data_bufSize_new))
{
report_msg("程序可能出现 功能错 误,,请 检 查 !!!,判断依据:如果输 入的循环 周期不为 合法值 ,则 功能错 误 ,认 为 不合法的输 入写入到了配置文件");
# tl_msg = sprintf("输 入的循环 周期= %s,输 入的缓 冲区大小 = %s,配置文件中的循环 周期= %s,配置文件中的缓 冲区大小 = %s",ddt_val(table,"循环周期"),ddt_val(table,"缓冲区大小"),data_cycTime_old,data_bufSize_old);
tl_msg = sprintf("输 入的循环 周期= %s,配置文件中的循环 周期= %s",ddt_val(table,"循环周期"),data_cycTime_old);
tl_step("程序可能出现 功能错 误,",FAIL,"不合法的输 入可能写入到了配置文件,请 检 查 !!!");
#输 出:从Setting.ini(file_name_old)中读 取循环 周期和缓 冲区大小,和输 入的循环 周期和缓 冲区大小。
#自己判断去。哈哈。不然不好解决了。
tl_step("请 比较 然后作出判断",FAIL , tl_msg);
}
if((data_cycTime_old == data_cycTime_new)&&(data_bufSize_old != data_bufSize_new))
{
report_msg("程序可能出现 功能错 误,,请 检 查 !!!,判断依据:如果输 入的缓 冲区大小不为 合法值 ,则 功能错 误 ,认 为 不合法的输 入写入到了配置文件");
tl_msg = sprintf("输 入的缓 冲区大小 = %s,配置文件中的缓 冲区大小 = %s",ddt_val(table,"缓冲区大小"),data_bufSize_old);
tl_step("程序可能出现 功能错 误,",FAIL,"不合法的输 入可能写入到了配置文件,请 检 查 !!!");
#输 出:从Setting.ini(file_name_old)中读 取循环 周期和缓 冲区大小,和输 入的循环 周期和缓 冲区大小。
#自己判断去。哈哈。不然不好解决了。
tl_step("请 比较 然后作出判断",FAIL , tl_msg);
}
}
}
else
{
copyflag = 0;
tl_msg = sprintf(proper_parameter,ddt_val(table, "Error_Message") );
tl_step ("输 入", PASS, tl_msg );
}
}while (ddt_next_row(table) == E_OK);
ddt_close(table);
# End of test |
|