forked from indymedia/epicyon
Link color
parent
f7d9864093
commit
db875e375c
19
tests.py
19
tests.py
|
@ -2847,9 +2847,20 @@ def testFunctions():
|
||||||
print('Function: ' + name + ' ✓')
|
print('Function: ' + name + ' ✓')
|
||||||
|
|
||||||
print('Constructing function call graph')
|
print('Constructing function call graph')
|
||||||
|
moduleColors = ('red', 'green', 'yellow', 'orange', 'purple', 'cyan',
|
||||||
|
'darkgoldenrod3', 'darkolivegreen1', 'darkorange1',
|
||||||
|
'darkorchid1', 'darkseagreen', 'darkslategray4',
|
||||||
|
'deeppink1', 'deepskyblue1', 'dimgrey', 'gold1',
|
||||||
|
'goldenrod', 'burlywood2', 'bisque1', 'brown1',
|
||||||
|
'chartreuse2', 'cornsilk', 'darksalmon')
|
||||||
maxModuleCalls = 1
|
maxModuleCalls = 1
|
||||||
|
colorCtr = 0
|
||||||
for modName, modProperties in modules.items():
|
for modName, modProperties in modules.items():
|
||||||
lineCtr = 0
|
lineCtr = 0
|
||||||
|
modules[modName]['color'] = moduleColors[colorCtr]
|
||||||
|
colorCtr += 1
|
||||||
|
if colorCtr >= len(moduleColors):
|
||||||
|
colorCtr = 0
|
||||||
for line in modules[modName]['lines']:
|
for line in modules[modName]['lines']:
|
||||||
if line.strip().startswith('def '):
|
if line.strip().startswith('def '):
|
||||||
name = line.split('def ')[1].split('(')[0]
|
name = line.split('def ')[1].split('(')[0]
|
||||||
|
@ -2909,7 +2920,9 @@ def testFunctions():
|
||||||
for modName, modProperties in modules.items():
|
for modName, modProperties in modules.items():
|
||||||
callGraphStr += ' subgraph cluster_' + modName + ' {\n'
|
callGraphStr += ' subgraph cluster_' + modName + ' {\n'
|
||||||
callGraphStr += ' label = "' + modName + '";\n'
|
callGraphStr += ' label = "' + modName + '";\n'
|
||||||
callGraphStr += ' node [style=filled];\n'
|
callGraphStr += ' node '
|
||||||
|
callGraphStr += '[style=filled fillcolor='
|
||||||
|
callGraphStr += modProperties['color'] + '];\n'
|
||||||
moduleFunctionsStr = ''
|
moduleFunctionsStr = ''
|
||||||
for name in modProperties['functions']:
|
for name in modProperties['functions']:
|
||||||
if name.startswith('test'):
|
if name.startswith('test'):
|
||||||
|
@ -2924,11 +2937,13 @@ def testFunctions():
|
||||||
for name, properties in functionProperties.items():
|
for name, properties in functionProperties.items():
|
||||||
if not properties['calls']:
|
if not properties['calls']:
|
||||||
continue
|
continue
|
||||||
|
modColor = modules[properties['module']]['color']
|
||||||
for calledFunc in properties['calls']:
|
for calledFunc in properties['calls']:
|
||||||
if calledFunc.startswith('test'):
|
if calledFunc.startswith('test'):
|
||||||
continue
|
continue
|
||||||
if calledFunc not in excludeFuncs:
|
if calledFunc not in excludeFuncs:
|
||||||
callGraphStr += ' "' + name + '" -> "' + calledFunc + '";\n'
|
callGraphStr += ' "' + name + '" -> "' + calledFunc + \
|
||||||
|
'" [color=' + modColor + '];\n'
|
||||||
|
|
||||||
callGraphStr += '\n}\n'
|
callGraphStr += '\n}\n'
|
||||||
with open('epicyon.dot', 'w+') as fp:
|
with open('epicyon.dot', 'w+') as fp:
|
||||||
|
|
Loading…
Reference in New Issue