winIDEA SDK
test_coverage_custom_scope.py
1# This script is licensed under BSD License, see file LICENSE.txt.
2#
3# (c) TASKING Germany GmbH, 2023
4
5import isystem.connect as ic
6import time
7
8winidea_id = ''
9
10
11def test_cvrg_custom_scope():
12 cmgr = ic.ConnectionMgr()
13 cmgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
14
15 debugCtrl = ic.CDebugFacade(cmgr)
16 debugCtrl.reset()
17
18 # Create coverage document.
19 coverage = ic.CCoverageController2(cmgr, 'sample_coverage.trd', 'w')
20
21 # Wait until winIDEA has loaded the document, if it already existed.
22 if not coverage.waitUntilLoaded(5000):
23 print('isBusy = ', coverage.isBusy())
24 print("Warning - timeout ocurred when loading coverage document - some data may not be loaded!")
25
26 # Create and select a new coverage trigger. First make sure, that it
27 # does not already exist.
28 coverage.removeTrigger('coverageTrigger')
29 triggerIdx = coverage.createTrigger('coverageTrigger')
30 coverage.select(triggerIdx)
31
32 # Measure coverage of selected functions.
33 coverage.setScope(triggerIdx, ic.CCoverageController2.EScopeCustom)
34 coverage.addArea(triggerIdx, ic.CCoverageController2.EAreaFunction, "fibonacci")
35 coverage.addArea(triggerIdx, ic.CCoverageController2.EAreaFunction, "bubble_sort")
36
37 # repeat recording
38 print('New recording started: Target is running, coverage is recording data ...')
39 coverage.start()
40 debugCtrl.run()
41 time.sleep(3)
42 debugCtrl.stop()
43 coverage.stopSampling()
44
45 print('Target stopped, loading coverage data...')
46 coverage.waitUntilLoaded()
47
48
49if __name__ == "__main__":
50 test_cvrg_custom_scope()