Files
codeql/python/tools/recorded-call-graph-metrics/ql/query/Metrics.ql
2022-03-11 11:10:33 +01:00

57 lines
1.7 KiB
Plaintext

import lib.RecordedCalls
// column i is just used for sorting
from string text, float number, float ratio, int i
where
exists(int all_rcs | all_rcs = count(XmlRecordedCall rc) and ratio = number / all_rcs |
text = "XMLRecordedCall" and number = all_rcs and i = 0
or
text = "IgnoredRecordedCall" and number = count(IgnoredRecordedCall rc) and i = 1
or
text = "not IgnoredRecordedCall" and number = all_rcs - count(IgnoredRecordedCall rc) and i = 2
)
or
text = "----------" and
number = 0 and
ratio = 0 and
i = 10
or
exists(int all_not_ignored_rcs |
all_not_ignored_rcs = count(XmlRecordedCall rc | not rc instanceof IgnoredRecordedCall) and
ratio = number / all_not_ignored_rcs
|
text = "IdentifiedRecordedCall" and
number = count(IdentifiedRecordedCall rc | not rc instanceof IgnoredRecordedCall) and
i = 11
or
text = "UnidentifiedRecordedCall" and
number = count(UnidentifiedRecordedCall rc | not rc instanceof IgnoredRecordedCall) and
i = 12
)
or
text = "----------" and
number = 0 and
ratio = 0 and
i = 20
or
exists(int all_identified_rcs |
all_identified_rcs = count(IdentifiedRecordedCall rc | not rc instanceof IgnoredRecordedCall) and
ratio = number / all_identified_rcs
|
text = "points-to ResolvableRecordedCall" and
number =
count(PointsToBasedCallGraph::ResolvableRecordedCall rc |
not rc instanceof IgnoredRecordedCall
) and
i = 21
or
text = "points-to not ResolvableRecordedCall" and
number =
all_identified_rcs -
count(PointsToBasedCallGraph::ResolvableRecordedCall rc |
not rc instanceof IgnoredRecordedCall
) and
i = 22
)
select i, text, number, ratio * 100 + "%" as percent order by i