diff -r 000000000000 -r 83f4b4db085c srcanamdw_os/leavescan/test/LET/case2tef.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srcanamdw_os/leavescan/test/LET/case2tef.py Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,200 @@ +#!/usr/bin/python +import string +import sys +import os +import re +import time +import sys +import csv + +class TestcaseConfig: + def __init__(self): + self.desc ='' + self.option ='' + self.expect ='' + self.warnItems =[] + self.author = '' + self.type = '' + self.date ='' + def printSelf(self): + print 'desc:'+self.desc + print 'option:'+self.option + print 'author:'+self.author + print 'type:'+self.type + print 'date:'+self.date + print 'expect:'+self.expect + print 'check:' + for warnItem in self.warnItems: + print ' line:'+str(warnItem.line) + printType = 0; + if len(warnItem.checkExist)>0: + print ' checkExist' + printType +=1; + for checkWord in warnItem.checkExist: + print ' '+checkWord + if len(warnItem.checkNoExist)>0: + print ' checkNoExist' + printType +=1; + for checkWord in warnItem.checkNoExist: + print ' '+checkWord + if printType == 0: + + print ' nothing to check' + +class CheckPoint: + def __init__(self): + self.line = -1 + self.checkExist=[] + self.checkNoExist=[] + def setCheckPoint(self,warnString): + warnString=warnString.strip() + if len(warnString)<=0: + return + keywordList = warnString.split(',') + for keyword in keywordList: + keyword = keyword.strip() + if keyword[0]=='+': + self.checkExist.append(keyword[1:]) + elif keyword[0]=='-': + self.checkNoExist.append(keyword[1:]) + else: + self.checkExist.append(keyword) + + def toString(self): + printType = 0; + res='' + res = res+'line:'+ str(self.line)+'\n' + if len(self.checkExist)>0: + res =res + ' checkExist\n' + printType +=1; + for checkWord in self.checkExist: + res =res+ ' '+checkWord+'\n' + if len(self.checkNoExist)>0: + res =res+ ' checkNoExist\n' + printType +=1; + for checkWord in self.checkNoExist: + res=res+ ' '+checkWord+'\n' + if printType == 0: + res=res+ ' nothing to check\n' + return res + +def get_case_name(value): + while value.find('\\\\') != -1: + value = value.replace('\\\\', '\\') + continue + while value.find('//') != -1: + value = value.replace('//', '\\') + continue + while value.find('/') != -1: + value = value.replace('/', '\\') + continue + pos = value.rfind('\\') + value = value[pos+1:] + pos = value.find('.') + return value[:pos] + +def get_testcase_config(fileName): + file = open(fileName,"r") + fileLine = 0 + testcaseConfig = TestcaseConfig() + for line in file.readlines(): + if not line.endswith('\\'): + fileLine += 1 + line = line.strip() + scommnet = line.find('//') + if scommnet == 0: + if (line.find('desc:'))>0: + desc = line[line.find('desc:')+5:].strip() + testcaseConfig.desc=desc + elif line.find('option:')>0: + option = line[line.find('option:')+7:].strip() + testcaseConfig.option=option + elif line.find('expect file:')>0: + expect = line[line.find('expect file:')+12:].strip() + #get the content of the file + data = open(expect,"r") + for dataline in data.readlines(): + testcaseConfig.expect += dataline + elif line.find('expect:')>0: + expect = line[line.find('expect:')+7:].strip() + testcaseConfig.expect=expect + elif line.find('author:')>0: + expect = line[line.find('author:')+7:].strip() + testcaseConfig.author=expect + elif line.find('type:')>0: + expect = line[line.find('type:')+5:].strip() + testcaseConfig.type=expect + elif line.find('date:')>0: + expect = line[line.find('date:')+5:].strip() + testcaseConfig.date=expect + + if scommnet >=0: + line =line[scommnet+2:] + if line.find('check:')>=0: + line = line[line.find('check:')+6:].strip() + warnItem = CheckPoint() + warnItem.setCheckPoint(line) + warnItem.line = fileLine + testcaseConfig.warnItems.append(warnItem) + return testcaseConfig + + +def comment_string(value): + lines = value.splitlines() + result = '' + for line in lines: + if line.find('@SYM')==0: + result += '//! ' + line+'\n' + else: + result += '//! ' + line+'\n' + return result + +if __name__ == '__main__': + argv = sys.argv[1:] + if len(argv) >=1: + input_file_name = argv[0] + else: + print 'case2tef file_list_file' + if input_file_name == '-': + input_file = sys.stdin + elif os.path.exists(input_file_name) and os.path.isfile(input_file_name): + input_file = open(input_file_name) + else: + input_file = None + if not input_file == None: + lines = input_file.readlines() + for line in lines: + while line.find('\n') != -1: + line = line.replace('\n', '') + continue + + testcase_config =get_testcase_config(line) + case_name = get_case_name(line) + res = 'START_TESTCASE '+case_name+'\n' + body = '@SYMTestCaseID ' +case_name+'\n' + body+= '@SYMTestCaseDesc ' +testcase_config.desc+'\n' + body+= '@SYMTestPriority ' +'HIGH'+'\n' + body+= '@SYMTestActions ' +'run LeaveScan command line' + if not testcase_config.option=='': + body+=' with option:'+testcase_config.option + body+='\n' + body+= '@SYMTestExpectedResults ' +'Check the follwing:'+'\n' + if not testcase_config.expect=='': + body+='Output is:\n' + body+=testcase_config.expect+'\n' + if len(testcase_config.warnItems)>0: + body+='check the keyword of output\n' + for warnItem in testcase_config.warnItems: + body+= warnItem.toString() + body+= '' + body+= '@SYMTestType ' +testcase_config.type+'\n' + body+= '@SYMCreationDate ' +testcase_config.date+'\n' + body+= '@SYMAuthor ' +testcase_config.author+'\n' + res += comment_string(body) + res += 'END_TESTCASE '+case_name+'\n' + res += '\n' + print res + + + +