QL tests for Python queries and libraries.

This commit is contained in:
Mark Shannon
2018-11-19 15:15:54 +00:00
parent 90c75cd362
commit 05b69a1c0f
1140 changed files with 32676 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
/**
* @name DuplicateStatements
* @description Insert description here...
* @kind problem
* @problem.severity warning
*/
import python
import external.CodeDuplication
predicate mostlyDuplicateFunction(Function f) {
exists(int covered, int total, Function other, int percent |
duplicateStatements(f, other, covered, total) and
covered != total and
total > 5 and
covered * 100 / total = percent and
percent > 80 and
not exists(Scope s | s = f.getScope*() | duplicateScopes(s, _, _, _))
)
}
from Stmt s
where mostlyDuplicateFunction(s.getScope()) and
not duplicateStatement(s.getScope(), _, s, _)
select s.toString(), s.getLocation().toString()