diff -r 000000000000 -r f63038272f30 btservices_plat/bluetooth_engine_settings_api/tsrc/LC_ATS3DropGen.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/btservices_plat/bluetooth_engine_settings_api/tsrc/LC_ATS3DropGen.py Mon Jan 18 20:28:57 2010 +0200 @@ -0,0 +1,659 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# + +import os +import sys +import string +from xml.dom.minidom import Document +import re + +TRUE = 1 +FALSE = 0 + +#Parameter Parsing +NONEOPTION = 0 +PATHOPTION = 1 +IMAGEPATHOPTION = 2 +TARGETOPTION = 3 +PLUGINRSCOPTION = 4 +HARNESSOPTION = 5 +STIFTYPEOPTION = 6 + +pluginrscs = [] +testspath = "" +imagepath = "" +target = "" +targethost = "" +harness = "" +stiftype = "" + +index = 1 +argnumber = len(sys.argv) +if((argnumber < 2) or (sys.argv[1] == "HELP") or (sys.argv[1] == "help") or (sys.argv[1] == "Help")or (sys.argv[1] == "-HELP") or (sys.argv[1] == "-help") or (sys.argv[1] == "-Help")): + print "\n" + print "********** DropGenerator Tool Usage Manual ********** " + print "" + print " -------- THIS TOOL IS USED FOR: --------" + print " - Building the test module " + print " - Create the ATS3Drop folder under tsrc folder" + print " - Generate test.xml file under tsrc folder" + print " - Generate testdrop.zip file including ATS3Drop and test.xml" + print "" + print " -------- PARAMETERS TO BE PASSED TO THE TOOL: -------- \n" + print " dropgenerator.py -PATH " + print " -IMAGEPATH " + print " -TARGET " + print " [-PLUGINRSCS ]" + print " -HARNESS " + print " -STIFTYPE " + print " Supported STIF Types: Testscripter, Hardcoded" + sys.exit() + +# read paramters +option = NONEOPTION +for index in range(len(sys.argv)): + param = sys.argv[index] + if((param == "-PATH") or (param == "-path") or (param == "-Path")): + option = PATHOPTION + param = sys.argv[index] + continue + if((param == "-IMAGEPATH") or (param == "-imagepath") or (param == "-Imagepath")): + option = IMAGEPATHOPTION + param = sys.argv[index] + continue + elif((param == "-TARGET") or (param == "-target") or (param == "-Target")): + option = TARGETOPTION + param = sys.argv[index] + continue + elif((param == "-PLUGINRSCS") or (param == "-pluginrscs") or (param == "-Pluginrscs")): + option = PLUGINRSCOPTION + param = sys.argv[index] + continue + elif((param == "-DATAFILES") or (param == "-datafiles") or (param == "-Datafiles")): + option = DATAFILESOPTION + param = sys.argv[index] + continue + + elif((param == "-HARNESS") or (param == "-harness") or (param == "-Harness")): + option = HARNESSOPTION + param = sys.argv[index] + continue + + elif((param == "-STIFTYPE") or (param == "-Stiftype") or (param == "-stiftype")): + option = STIFTYPEOPTION + param = sys.argv[index] + continue + + if(option == PATHOPTION): + testspath = param + + if(option == IMAGEPATHOPTION): + imagepath = param + + if(option == TARGETOPTION): + target = param + + if(option == PLUGINRSCOPTION): + pluginrscs.append(param) + + if(option == HARNESSOPTION): + harness = param + + if(option == STIFTYPEOPTION): + stiftype = param + +#validating parameters passed +if(cmp(testspath, "") == 0): + print "\n ERROR: tests PATH parameter not provided" + sys.exit() + +if(cmp(imagepath, "") == 0): + print "\n ERROR: image PATH parameter not provided" + sys.exit() + +if(cmp(target, "") == 0): + print "\n ERROR: TARGET parameter not provided" + sys.exit() + +if(cmp(harness, "") == 0): + print "\n ERROR: HARNESS parameter not provided" + sys.exit() +elif((cmp(harness, "STIF") == 0) or (cmp(harness, "stif") == 0) or (cmp(harness, "Stif") == 0)): + if(cmp(stiftype, "") == 0): + print "\n ERROR: STIFTYPE parameter not provided" + sys.exit() + +EXECUTABLE = 0 +CFGFILE = 1 +INIFILE = 2 +FLASHFILE = 3 +DATAFILE = 4 +INCLUDEFILE = 5 +MMPFILE = 6 +INFFILE = 7 +PLUGINRSCFILE = 8 + +EXTDLL = ".dll" +EXTEXE = ".exe" +EXTCFG = ".cfg" +EXTMMP = ".mmp" + +COMMONPATH = "\\tsrc" + +#get the list of files&dirs in tests folder and clean ATS3Drop folder, test.xml and testdrop package +Directory = testspath +os.system("dir "+Directory+" /B /A > files1.txt") +pre = open("files1.txt", 'r') +file = pre.readline() +while file: + if(file[-1] == "\n"): + file = file[:-1] + + if(cmp(file, "ATS3Drop") == 0): + os.system("rmdir /S /Q " + Directory + "\\" + file) + elif(cmp(file, "test.xml") == 0): + os.system("del /Q " + Directory + "\\" + file) + elif(cmp(file, "testdrop.zip") == 0): + os.system("del /Q " + Directory + "\\" + file) + file = pre.readline() +pre.close() +print "\nDirectory Path Parsed: "+Directory+"\n" + +#list all files under tests folder +os.system("dir "+Directory+" /S/B /A-D > files.txt") +cpp = open("files.txt", 'r') + +CfgFiles = [] +ExecutableFiles = [] + +count = 0 +file = cpp.readline() + +#go through each file in files.txt and pick up .cfg, and extract binary names with extension .dll and .exe from mmp files. +while file: + if(file[-1] == "\n"): + file = file[:-1] + + if((re.search("\.cfg$", file) != None )): + CfgFiles.append(file) + + if((re.search("\.mmp$", file) != None )): + #parsing mmp file for getting the executable name + mmp = open(file, "r") + mmpline = mmp.readline() + while mmpline: + if(string.find(mmpline, "TARGET ") != -1): + mmplinetarget = string.split(mmpline) + ExecutableFiles.append(mmplinetarget[-1]) + break + mmpline = mmp.readline() + mmp.close(); + + count = count + 1 + file = cpp.readline() +cpp.close(); + +#validate if any .cfg exists as we are using STIP scripter. +if((cmp(harness, "STIF") == 0) or (cmp(harness, "stif") == 0) or (cmp(harness, "Stif") == 0)): + if((cmp(stiftype, "TESTSCRIPTER") == 0) or (cmp(stiftype, "Testscripter") == 0) or (cmp(stiftype, "testscripter") == 0)): + if(len(CfgFiles) == 0): + print "\n CFG file not available for TestScripter type STIF module" + sys.exit() + +path = string.split(Directory, "\\") +EXECUTABLEPATH = path[0] + "\\epoc32\\RELEASE\\armv5\\UREL\\" +PLUGINRESOURCEPATH = path[0] + "\\epoc32\\data\Z\\resource\\plugins\\" + +#Create test drop structure and copy files to test drop +print "\n Creating ATSDrop Directory" +ret = os.mkdir(Directory + "\\ATS3Drop") +ATS3DropDir = Directory + "\\ATS3Drop\\" +ret = os.mkdir(Directory + "\\ATS3Drop\\armv5_urel") +ATS3EXEDir = Directory + "\\ATS3Drop\\armv5_urel" +ret = os.mkdir(Directory + "\\ATS3Drop\\images") +ATS3ImageDir = Directory + "\\ATS3Drop\\images" + +DropFloderCreated = TRUE + +print "\n Copying files to the Drop" + +#copy test binaries +for file in ExecutableFiles: + print("\n copy " + EXECUTABLEPATH + file +" to "+ ATS3EXEDir) + ret = os.system("copy /Y "+ EXECUTABLEPATH + file +" "+ ATS3EXEDir) + if(ret != 0): + print "Error : unable to copy " + EXECUTABLEPATH + file + sys.exit() + +#copy STIF .cfg files +for file in CfgFiles: + print("\n copy " + file +" to "+ ATS3DropDir) + ret = os.system("copy /Y "+ file +" "+ ATS3DropDir) + if(ret != 0): + print "Error : unable to copy " + file + sys.exit() +#copy ecom plugin resource files +for file in pluginrscs: + print("\n copy " + PLUGINRESOURCEPATH + file +" to "+ ATS3DropDir) + ret = os.system("copy /Y "+ PLUGINRESOURCEPATH + file +" "+ ATS3DropDir) + if(ret != 0): + print "Error : unable to copy " + PLUGINRESOURCEPATH + file + sys.exit() + +#copy images files + +#list all files under the given image path +os.system("dir "+ imagepath +" /S/B /A-D > imgs.txt") +imgs = open("imgs.txt", 'r') + +ImageFiles = [] +line = imgs.readline() +#get the complete path and name of the core image +while line: + if(line[-1] == "\n"): + line = line[:-1] + + if((re.search("\.C00$", line) != None )): + ImageFiles.append(line) + break; + line = imgs.readline(); +imgs.close(); + +#get the complete path and name of the variant image +imgs = open("imgs.txt", 'r') +line = imgs.readline() +while line: + if(line[-1] == "\n"): + line = line[:-1] + if((re.search("\.V01$", line) != None )): + ImageFiles.append(line) + break + line = imgs.readline(); +imgs.close(); + +#get the complete path and name of userdisk erase image +imgs = open("imgs.txt", 'r') +line = imgs.readline() +while line: + if(line[-1] == "\n"): + line = line[:-1] + if((re.search("\erase_userdisk.fpsx$", line) != None )): + ImageFiles.append(line) + break + line = imgs.readline(); +imgs.close(); + +#copy image files +for file in ImageFiles: + print("\n copy " + file +" to "+ ATS3ImageDir) + ret = os.system("copy /Y "+ file +" "+ ATS3ImageDir) + if(ret != 0): + print "Error : unable to copy " + file + sys.exit() + +DLLTARGETPATH = "c:\\sys\\bin\\" +PLUGINRSCTARGETPATH = "c:\\resource\\plugins\\" +CFGTARGETPATH = "e:\\testing\\" +LOGTARGETPATH = "e:\\temp\\lc_apitest\\" + +imagestoflash = [] +cfgFileNoPath = [] +filestoinstall = [] +BINARYFILE = 0 +NONBINARYFILE = 1 + +for line in ImageFiles: + imagestoflash.append(line.split("\\")[-1]) +for line in CfgFiles: + cfgFileNoPath.append(line.split("\\")[-1]) + filestoinstall.append([line.split("\\")[-1], NONBINARYFILE, CFGTARGETPATH]) +for file in ExecutableFiles: + filestoinstall.append([file, BINARYFILE, DLLTARGETPATH]) +for file in pluginrscs: + filestoinstall.append([file, NONBINARYFILE, PLUGINRSCTARGETPATH]) + + +#Create XML if the test drop folder is created +if(DropFloderCreated == TRUE): + # Create the minidom document + #test tage + xmldoc = Document() + xmltest = xmldoc.createElement("test") + xmldoc.appendChild(xmltest) + + #id tag + xmlid = xmldoc.createElement("id") + xmltest.appendChild(xmlid) + xmlidtext = xmldoc.createTextNode("1") + xmlid.appendChild(xmlidtext) + + xmlname = xmldoc.createElement("name") + xmltest.appendChild(xmlname) + xmlnametext = xmldoc.createTextNode("LC API test") + xmlname.appendChild(xmlnametext) + + #target tag + xmltarget = xmldoc.createElement("target") + xmltest.appendChild(xmltarget) + + xmltergetdevice1 = xmldoc.createElement("device") + xmltergetdevice1.setAttribute("alias", "DEFAULT") + xmltergetdevice1.setAttribute("rank", "none") + xmltarget.appendChild(xmltergetdevice1) + + xmltargetproperty1 = xmldoc.createElement("property") + xmltargetproperty1.setAttribute("value",harness) + xmltargetproperty1.setAttribute("name","HARNESS") + xmltergetdevice1.appendChild(xmltargetproperty1) + + xmltargetproperty2 = xmldoc.createElement("property") + xmltargetproperty2.setAttribute("value",target) + xmltargetproperty2.setAttribute("name","TYPE") + xmltergetdevice1.appendChild(xmltargetproperty2) + + #plan tag + xmlplan1 = xmldoc.createElement("plan") + xmlplan1.setAttribute("passrate","100") + xmlplan1.setAttribute("enabled","true") + xmlplan1.setAttribute("harness",harness) + xmlplan1.setAttribute("name",string.rstrip("Test Plan")) + xmlplan1.setAttribute("id","1.1") + xmltest.appendChild(xmlplan1) + + #session tag + xmlp1session1 = xmldoc.createElement("session") + xmlp1session1.setAttribute("passrate","100") + xmlp1session1.setAttribute("enabled","true") + xmlp1session1.setAttribute("harness",harness) + xmlp1session1.setAttribute("name","session") + xmlp1session1.setAttribute("id","1.1.1") + xmlplan1.appendChild(xmlp1session1) + + #set tag + xmlp1s1set1 = xmldoc.createElement("set") + xmlp1s1set1.setAttribute("passrate","100") + xmlp1s1set1.setAttribute("enabled","true") + xmlp1s1set1.setAttribute("harness",harness) + xmlp1s1set1.setAttribute("name","set") + xmlp1s1set1.setAttribute("id","1.1.1.1") + xmlp1session1.appendChild(xmlp1s1set1) + + xmlp1s1s1target = xmldoc.createElement("target") + xmlp1s1set1.appendChild(xmlp1s1s1target) + + xmlp1s1s1targetdevice = xmldoc.createElement("device") + xmlp1s1s1targetdevice.setAttribute("alias","DEFAULT") + xmlp1s1s1targetdevice.setAttribute("rank","master") + xmlp1s1s1target.appendChild(xmlp1s1s1targetdevice) + + #case tag + xmlp1s1s1case1 = xmldoc.createElement("case") + xmlp1s1s1case1.setAttribute("passrate","100") + xmlp1s1s1case1.setAttribute("enabled","true") + xmlp1s1s1case1.setAttribute("harness",harness) + xmlp1s1s1case1.setAttribute("name","Test Case 1") + xmlp1s1s1case1.setAttribute("id","1.1.1.1.1") + xmlp1s1set1.appendChild(xmlp1s1s1case1) + + #flash tags if there are images + for xmlimage in imagestoflash: + xmlp1s1s1c1flash = xmldoc.createElement("flash") + xmlp1s1s1case1.appendChild(xmlp1s1s1c1flash) + xmlp1s1s1c1flash.setAttribute("target-alias","DEFAULT") + xmlp1s1s1c1flash.setAttribute("images","ATS3Drop\\images\\" + xmlimage) + + #install steps + xmlstepcount = 0 + for file in filestoinstall: + xmlstepcount = xmlstepcount + 1 + #step1 + xmlp1s1s1c1step = xmldoc.createElement("step") + xmlp1s1s1c1step.setAttribute("significant","false") + xmlp1s1s1c1step.setAttribute("passrate","100") + xmlp1s1s1c1step.setAttribute("enabled","true") + xmlp1s1s1c1step.setAttribute("harness",harness) + xmlp1s1s1c1step.setAttribute("name","Step "+str(xmlstepcount)) + xmlp1s1s1c1step.setAttribute("id","1.1.1.1.1."+str(xmlstepcount)) + xmlp1s1s1case1.appendChild(xmlp1s1s1c1step) + + xmlp1s1s1c1s1command1 = xmldoc.createElement("command") + xmlp1s1s1c1step.appendChild(xmlp1s1s1c1s1command1) + xmlp1s1s1c1s1command1text = xmldoc.createTextNode("install") + xmlp1s1s1c1s1command1.appendChild(xmlp1s1s1c1s1command1text) + + xmlp1s1s1c1s1params1 = xmldoc.createElement("params") + xmlp1s1s1c1step.appendChild(xmlp1s1s1c1s1params1) + if(file[1] == BINARYFILE): + #parameter1 + xmlp1s1s1c1s1p1param1 = xmldoc.createElement("param") + xmlp1s1s1c1s1p1param1.setAttribute("type","binary") + xmlp1s1s1c1s1params1.appendChild(xmlp1s1s1c1s1p1param1) + #end of parameter1 + #parameter2 + xmlp1s1s1c1s1p1param1 = xmldoc.createElement("param") + xmlp1s1s1c1s1p1param1.setAttribute("src",file[0]) + xmlp1s1s1c1s1params1.appendChild(xmlp1s1s1c1s1p1param1) + #end of parameter2 + #parameter3 + xmlp1s1s1c1s1p1param1 = xmldoc.createElement("param") + xmlp1s1s1c1s1p1param1.setAttribute("dst",file[2] + file[0]) + xmlp1s1s1c1s1params1.appendChild(xmlp1s1s1c1s1p1param1) + #end of parameter3 + #parameter4 + xmlp1s1s1c1s1p1param1 = xmldoc.createElement("param") + xmlp1s1s1c1s1p1param1.setAttribute("component-path","ATS3Drop") + xmlp1s1s1c1s1params1.appendChild(xmlp1s1s1c1s1p1param1) + #end of parameter4 + #end of Step1 + + xmlstepcount = xmlstepcount + 1 + xmlp1s1s1c1step6 = xmldoc.createElement("step") + xmlp1s1s1c1step6.setAttribute("significant","false") + xmlp1s1s1c1step6.setAttribute("passrate","100") + xmlp1s1s1c1step6.setAttribute("enabled","true") + xmlp1s1s1c1step6.setAttribute("harness",harness) + xmlp1s1s1c1step6.setAttribute("name","Step "+str(xmlstepcount)) + xmlp1s1s1c1step6.setAttribute("id","1.1.1.1.1."+str(xmlstepcount)) + xmlp1s1s1case1.appendChild(xmlp1s1s1c1step6) + + xmlp1s1s1c1s6command1 = xmldoc.createElement("command") + xmlp1s1s1c1step6.appendChild(xmlp1s1s1c1s6command1) + xmlp1s1s1c1s1command1text = xmldoc.createTextNode("makedir") + xmlp1s1s1c1s6command1.appendChild(xmlp1s1s1c1s1command1text) + + xmlp1s1s1c1s6params1 = xmldoc.createElement("params") + xmlp1s1s1c1step6.appendChild(xmlp1s1s1c1s6params1) + + xmlp1s1s1c1s6p1param1 = xmldoc.createElement("param") + xmlp1s1s1c1s6p1param1.setAttribute("dir","e:\\temp\\lc_apitest") + xmlp1s1s1c1s6params1.appendChild(xmlp1s1s1c1s6p1param1) + + #execute test case step + if((cmp(harness, "STIF") == 0) or (cmp(harness, "stif") == 0) or (cmp(harness, "Stif") == 0)): + if((cmp(stiftype, "TESTSCRIPTER") == 0) or (cmp(stiftype, "Testscripter") == 0) or (cmp(stiftype, "testscripter") == 0)): + for cfgfiles_ in cfgFileNoPath: + xmlstepcount = xmlstepcount + 1 + xmlp1s1s1c1step = xmldoc.createElement("step") + xmlp1s1s1c1step.setAttribute("significant","false") + xmlp1s1s1c1step.setAttribute("passrate","100") + xmlp1s1s1c1step.setAttribute("enabled","true") + xmlp1s1s1c1step.setAttribute("harness",harness) + xmlp1s1s1c1step.setAttribute("name","Step "+str(xmlstepcount)) + xmlp1s1s1c1step.setAttribute("id","1.1.1.1.1."+str(xmlstepcount)) + xmlp1s1s1case1.appendChild(xmlp1s1s1c1step) + + xmlp1s1s1c1s1command1 = xmldoc.createElement("command") + xmlp1s1s1c1step.appendChild(xmlp1s1s1c1s1command1) + xmlp1s1s1c1s1command1text = xmldoc.createTextNode("run-cases") + xmlp1s1s1c1s1command1.appendChild(xmlp1s1s1c1s1command1text) + + xmlp1s1s1c1s1params1 = xmldoc.createElement("params") + xmlp1s1s1c1step.appendChild(xmlp1s1s1c1s1params1) + + xmlp1s1s1c1s1p1param1 = xmldoc.createElement("param") + xmlp1s1s1c1s1p1param1.setAttribute("module","testscripter") + xmlp1s1s1c1s1params1.appendChild(xmlp1s1s1c1s1p1param1) + + xmlp1s1s1c1s1p1param2 = xmldoc.createElement("param") + xmlp1s1s1c1s1p1param2.setAttribute("filter","*") + xmlp1s1s1c1s1params1.appendChild(xmlp1s1s1c1s1p1param2) + + xmlp1s1s1c1s1p1param3 = xmldoc.createElement("param") + xmlp1s1s1c1s1p1param3.setAttribute("timeout","3000") + xmlp1s1s1c1s1params1.appendChild(xmlp1s1s1c1s1p1param3) + + xmlp1s1s1c1s1p1param4 = xmldoc.createElement("param") + xmlp1s1s1c1s1p1param4.setAttribute("testcase-file", CFGTARGETPATH + cfgfiles_) + xmlp1s1s1c1s1params1.appendChild(xmlp1s1s1c1s1p1param4) + + #fetch STIF test report + xmlstepcount = xmlstepcount + 1 + xmlp1s1s1c1step6 = xmldoc.createElement("step") + xmlp1s1s1c1step6.setAttribute("significant","false") + xmlp1s1s1c1step6.setAttribute("passrate","100") + xmlp1s1s1c1step6.setAttribute("enabled","true") + xmlp1s1s1c1step6.setAttribute("harness",harness) + xmlp1s1s1c1step6.setAttribute("name","Step "+str(xmlstepcount)) + xmlp1s1s1c1step6.setAttribute("id","1.1.1.1.1."+str(xmlstepcount)) + xmlp1s1s1case1.appendChild(xmlp1s1s1c1step6) + + xmlp1s1s1c1s6command1 = xmldoc.createElement("command") + xmlp1s1s1c1step6.appendChild(xmlp1s1s1c1s6command1) + xmlp1s1s1c1s1command1text = xmldoc.createTextNode("fetch-log") + xmlp1s1s1c1s6command1.appendChild(xmlp1s1s1c1s1command1text) + + xmlp1s1s1c1s6params1 = xmldoc.createElement("params") + xmlp1s1s1c1step6.appendChild(xmlp1s1s1c1s6params1) + + xmlp1s1s1c1s6p1param1 = xmldoc.createElement("param") + xmlp1s1s1c1s6p1param1.setAttribute("type","text") + xmlp1s1s1c1s6params1.appendChild(xmlp1s1s1c1s6p1param1) + + xmlp1s1s1c1s6p1param2 = xmldoc.createElement("param") + xmlp1s1s1c1s6p1param2.setAttribute("delete","true") + xmlp1s1s1c1s6params1.appendChild(xmlp1s1s1c1s6p1param2) + + xmlp1s1s1c1s6p1param3 = xmldoc.createElement("param") + xmlp1s1s1c1s6p1param3.setAttribute("path","C:\\Logs\\TestFramework\\*") + xmlp1s1s1c1s6params1.appendChild(xmlp1s1s1c1s6p1param3) + + #fetch test module own logs + xmlstepcount = xmlstepcount + 1 + xmlp1s1s1c1step6 = xmldoc.createElement("step") + xmlp1s1s1c1step6.setAttribute("significant","false") + xmlp1s1s1c1step6.setAttribute("passrate","100") + xmlp1s1s1c1step6.setAttribute("enabled","true") + xmlp1s1s1c1step6.setAttribute("harness",harness) + xmlp1s1s1c1step6.setAttribute("name","Step "+str(xmlstepcount)) + xmlp1s1s1c1step6.setAttribute("id","1.1.1.1.1."+str(xmlstepcount)) + xmlp1s1s1case1.appendChild(xmlp1s1s1c1step6) + + xmlp1s1s1c1s6command1 = xmldoc.createElement("command") + xmlp1s1s1c1step6.appendChild(xmlp1s1s1c1s6command1) + xmlp1s1s1c1s1command1text = xmldoc.createTextNode("fetch-log") + xmlp1s1s1c1s6command1.appendChild(xmlp1s1s1c1s1command1text) + + xmlp1s1s1c1s6params1 = xmldoc.createElement("params") + xmlp1s1s1c1step6.appendChild(xmlp1s1s1c1s6params1) + + xmlp1s1s1c1s6p1param1 = xmldoc.createElement("param") + xmlp1s1s1c1s6p1param1.setAttribute("type","text") + xmlp1s1s1c1s6params1.appendChild(xmlp1s1s1c1s6p1param1) + + xmlp1s1s1c1s6p1param2 = xmldoc.createElement("param") + xmlp1s1s1c1s6p1param2.setAttribute("delete","true") + xmlp1s1s1c1s6params1.appendChild(xmlp1s1s1c1s6p1param2) + + xmlp1s1s1c1s6p1param3 = xmldoc.createElement("param") + xmlp1s1s1c1s6p1param3.setAttribute("path","e:\\temp\\lc_apitest\\*") + xmlp1s1s1c1s6params1.appendChild(xmlp1s1s1c1s6p1param3) + + #files section + xmlfiles = xmldoc.createElement("files") + xmltest.appendChild(xmlfiles) + for file in filestoinstall: + xmlfilesfile1 = xmldoc.createElement("file") + if(file[1] == BINARYFILE): + xmlfile1text = xmldoc.createTextNode("ATS3Drop\\armv5_urel\\"+file[0]) + xmlfilesfile1.appendChild(xmlfile1text) + xmlfiles.appendChild(xmlfilesfile1) + else: + xmlfile1text = xmldoc.createTextNode("ATS3Drop\\"+file[0]) + xmlfilesfile1.appendChild(xmlfile1text) + xmlfiles.appendChild(xmlfilesfile1) + #image files in files section + for xmlimage in imagestoflash: + xmlflashfile = xmldoc.createElement("file") + xmlflashfiletext = xmldoc.createTextNode("ATS3Drop\\images\\" + xmlimage) + xmlflashfile.appendChild(xmlflashfiletext) + xmlfiles.appendChild(xmlflashfile) + + #post action: send logs by email + xmlpostaction = xmldoc.createElement("postAction") + xmltest.appendChild(xmlpostaction) + xmlactiontype = xmldoc.createElement("type") + xmlpostaction.appendChild(xmlactiontype) + xmlactiontext = xmldoc.createTextNode("SendEmailAction") + xmlactiontype.appendChild(xmlactiontext) + + xmlsendemailparams = xmldoc.createElement("params") + xmlpostaction.appendChild(xmlsendemailparams) + + xmlsendemailparam = xmldoc.createElement("param") + xmlsendemailparam.setAttribute("name", "type") + xmlsendemailparam.setAttribute("value", "ATS3_REPORT") + xmlsendemailparams.appendChild(xmlsendemailparam) + + xmlsendemailparam = xmldoc.createElement("param") + xmlsendemailparam.setAttribute("name", "to") + xmlsendemailparam.setAttribute("value","ext-aminul.2.islam@nokia.com;yongjiang.yu@nokia.com") + xmlsendemailparams.appendChild(xmlsendemailparam) + + xmlsendemailparam = xmldoc.createElement("param") + xmlsendemailparam.setAttribute("name", "subject") + xmlsendemailparam.setAttribute("value","LC API test report") + xmlsendemailparams.appendChild(xmlsendemailparam) + + xmlsendemailparam = xmldoc.createElement("param") + xmlsendemailparam.setAttribute("name", "unzip") + xmlsendemailparam.setAttribute("value","true") + xmlsendemailparams.appendChild(xmlsendemailparam) + + xmlsendemailparam = xmldoc.createElement("param") + xmlsendemailparam.setAttribute("name", "send-files") + xmlsendemailparam.setAttribute("value","true") + xmlsendemailparams.appendChild(xmlsendemailparam) + + xmlsendemailparam = xmldoc.createElement("param") + xmlsendemailparam.setAttribute("name", "report-dir") + xmlsendemailparam.setAttribute("value","\\\\jamppa\\ATS\\filestore\\api_auto_test_logs") + xmlsendemailparams.appendChild(xmlsendemailparam) + + # Print our newly created XML and create test.xml + print xmldoc.toprettyxml(indent=" ") + xmlfile = open(Directory + "\\test.xml", "w") + xmldoc.writexml(xmlfile, indent=" ", addindent=" ", newl="\n") + xmlfile.close() + + #create the testdrop.zip file + os.chdir(Directory) + + ret = os.system("zip -R testdrop.zip test.xml \".\\ATS3drop\\*\" \".\\ATS3drop\\armv5_urel\\*\" \".\\ATS3drop\\images\\*\"") + if(ret != 0): + print "Error : unable to create test.xml" + sys.exit() + +print "\n Test Drop Sucessfully created in "+Directory