winIDEA SDK
Loading...
Searching...
No Matches
test_coverage_all_code.py
# This script is licensed under BSD License, see file LICENSE.txt, or search for `License` in the SDK online help.
#
# (c) TASKING Germany GmbH, 2023
import os
import time
import isystem.connect as ic
winidea_id = ''
def test_cvrg_all_code():
cmgr = ic.ConnectionMgr()
cmgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
debugCtrl = ic.CDebugFacade(cmgr)
debugCtrl.reset()
# Create coverage document.
coverage = ic.CCoverageController2(cmgr, 'sdk_example.trd', 'w')
# Wait until winIDEA has loaded the document, if it already existed.
if not coverage.waitUntilLoaded(5000):
print('isBusy = ', coverage.isBusy())
print("Warning - timeout ocurred when loading coverage document - some data may not be loaded!")
# Create and select a new coverage trigger. First make sure, that it does
# not already exist.
coverage.removeTrigger('coverageTrigger')
triggerIdx = coverage.createTrigger('coverageTrigger')
coverage.select(triggerIdx)
# Set scope to all downloaded code.
coverage.setScope(triggerIdx, ic.CCoverageController2.EScopeAllDownloadedCode)
# Start recording and run the target
coverage.start()
debugCtrl.run()
print('Target is running, coverage is recording data...')
time.sleep(3)
debugCtrl.stop()
coverage.stopSampling()
print('Target stopped, loading coverage data...')
while not coverage.waitUntilLoaded(3000):
print("winIDEA is analyzing coverage recording, please wait ...!")
print(' isBusy = ', coverage.isBusy())
# Coverage is recorded, let's export it to XML file.
exportCfg = ic.CCoverageExportConfig()
exportFmt = ic.CCoverageXMLExportFormat()
exportCfg.setFileName('coverageSample-1.xml') \
.setFormatter(exportFmt) \
.setExportModules(True) \
.setExportModuleLines(True) \
.setExportSources(True) \
.setExportFunctions(True) \
.setExportFunctionLines(True) \
.setExportFunctionAsm(True) \
.setExportAsm(True) \
.setExportRanges(True)
coverage.exportData(exportCfg)
coverage.closeAll()
if __name__ == "__main__":
test_cvrg_all_code()