diff -r 000000000000 -r f0cf47e981f9 tsrc/scripts/codetest.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tsrc/scripts/codetest.py Thu Dec 17 08:44:37 2009 +0200 @@ -0,0 +1,119 @@ +# +# 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: +# +# codetest.py +# Start EUnitExeRunner and collect relevent data's. + +#Import relevent modules +import time,os,sys,re +from ctest.DataObjM import CovObjDef +from ctest import CTCommonDef +from ctest.DataObjM import TaskObjDef + +try: + + #Close Existing Workspace if any + ctob.closeWorkspace() + + #port is hardcored to 3020 which is default for codetest + port = int('3020') + + #Start CT Server + ctserverDir=os.environ.get("AMC_HOME")+'/bin/ctserver.exe' + os.spawnv(os.P_NOWAIT,ctserverDir,['ctserver']) + + # Create a SWIC/Native Data Source with a 30 second comm timeout. + ds = ctob.createCtSWIC('localhost', port, 30) + print ds.getName(), 'data source created...' + + # Set data source configuration information. + ds.setIDB('$TEMP/codetest.idb') + + # Connect to the data source. + ds.connect() + + # Put the data source into continuous mode. + ds.setContinuousMode() + + # Start data collection. + ds.start() + + #start EUnitExeRunner + print 'Starting application...' + myfile = open(os.environ.get("TEMP")+'\unitrunner.dat', 'r') + commandList = myfile.readlines() + myfile.close() + parser = re.compile(r'\s') + options=parser.split(commandList[1]) + eUnitExeRunner = commandList[0].rstrip() + os.spawnv(os.P_WAIT,eUnitExeRunner,options) + + print 'wait 5 seconds for data collection...' + # Wait for 10 seconds to allow data collection. + time.sleep(5) + + # Collect continuous mode data. + ds.collectData() + + # Stop data collection. + ds.stop() + + # At this point both continuous and trace data should appear in GUI. + # Save to a datafile + fileName ='$TEMP/codetest_result.dat' + retv = ds.saveData(fileName) + if retv: + print '%s: data saved to %s.'%(ds.getName(), fileName) + else: + print 'Error saving datafile!' + + ds.shutdown() + +except: + ds.shutdown() + sys.exit() + +try : + # generate result + print 'Now generating results file......' + df = ctob.createCtDataFile(fileName) + print df.dataFileName(), ' data file loaded to workspace...' + + #Get data set objects + coverageObj0 = df.getCoverageObjs()[0] + print "Got dataset objects" + + coverageObj0.sortData('coverage',1) + coverageObj0.setViewFuncNameLong() + + coverageObj0.setFileCoverageMode() + cov_view_one = '$TEMP/codetest_file_coverage.html' + coverageObj0.exportView(cov_view_one, CTCommonDef.HTML_FORMAT,' ',' ' ) + print 'Coverage details are saved in '+cov_view_one; + covReportFile = '$TEMP/codetest_summary.txt' + coverageObj0.writeCoverageReport(covReportFile, CovObjDef.OVERALL_SUMMARY) + print 'Overall coverage summary saved in '+covReportFile; + + covFunctionReportFile = '$TEMP/codetest_function_coverage.txt' + coverageObj0.writeCoverageReport(covFunctionReportFile, CovObjDef.FUNCTION_SUMMARY) + print 'Function coverage summary saved in '+covFunctionReportFile; + + covUnCoveredReportFile = '$TEMP/codetest_function_uncovered_statements.txt' + coverageObj0.writeCoverageReport(covUnCoveredReportFile, CovObjDef.UNCOVERED_ONLY) + print 'Uncovered coverage summary saved in '+covUnCoveredReportFile; + +except: + print 'Unable to write reports' + sys.exit() \ No newline at end of file