Skip to content

Commit 13ec7db

Browse files
committed
Kotlin tests
1 parent 03e7637 commit 13ec7db

File tree

12 files changed

+82
-103
lines changed

12 files changed

+82
-103
lines changed
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
import java
22
import semmle.code.java.dataflow.TaintTracking
33

4-
class Conf extends TaintTracking::Configuration {
5-
Conf() { this = "qltest:extension-method" }
6-
7-
override predicate isSource(DataFlow::Node n) {
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) {
86
n.asExpr().(Argument).getCall().getCallee().hasName("taint")
97
}
108

11-
override predicate isSink(DataFlow::Node n) {
12-
n.asExpr().(Argument).getCall().getCallee().hasName("sink")
13-
}
9+
predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().hasName("sink") }
1410
}
1511

16-
from DataFlow::Node src, DataFlow::Node sink, Conf conf
17-
where conf.hasFlow(src, sink)
12+
module Flow = TaintTracking::Global<Config>;
13+
14+
from DataFlow::Node src, DataFlow::Node sink
15+
where Flow::flow(src, sink)
1816
select src, sink
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
import java
22
import semmle.code.java.dataflow.TaintTracking
33

4-
class Conf extends TaintTracking::Configuration {
5-
Conf() { this = "qltest:foreach-array-iterator" }
6-
7-
override predicate isSource(DataFlow::Node n) {
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) {
86
n.asExpr().(Argument).getCall().getCallee().hasName("taint")
97
}
108

11-
override predicate isSink(DataFlow::Node n) {
12-
n.asExpr().(Argument).getCall().getCallee().hasName("sink")
13-
}
9+
predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().hasName("sink") }
1410
}
1511

16-
from DataFlow::Node src, DataFlow::Node sink, Conf conf
17-
where conf.hasFlow(src, sink)
12+
module Flow = TaintTracking::Global<Config>;
13+
14+
from DataFlow::Node src, DataFlow::Node sink
15+
where Flow::flow(src, sink)
1816
select src, sink
Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
import java
22
import semmle.code.java.dataflow.TaintTracking
33

4-
class Conf extends TaintTracking::Configuration {
5-
Conf() { this = "qltest:lambdaFlow" }
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) { n.asExpr().(MethodAccess).getMethod().hasName("taint") }
66

7-
override predicate isSource(DataFlow::Node n) {
8-
n.asExpr().(MethodAccess).getMethod().hasName("taint")
9-
}
10-
11-
override predicate isSink(DataFlow::Node n) {
12-
n.asExpr().(Argument).getCall().getCallee().hasName("sink")
13-
}
7+
predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().hasName("sink") }
148
}
159

16-
from DataFlow::Node src, DataFlow::Node sink, Conf conf
17-
where conf.hasFlow(src, sink)
10+
module Flow = TaintTracking::Global<Config>;
11+
12+
from DataFlow::Node src, DataFlow::Node sink
13+
where Flow::flow(src, sink)
1814
select src, sink
Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
import java
22
import semmle.code.java.dataflow.TaintTracking
33

4-
class Conf extends TaintTracking::Configuration {
5-
Conf() { this = "qltest:notNullExprFlow" }
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) { n.asExpr().(MethodAccess).getMethod().hasName("taint") }
66

7-
override predicate isSource(DataFlow::Node n) {
8-
n.asExpr().(MethodAccess).getMethod().hasName("taint")
9-
}
10-
11-
override predicate isSink(DataFlow::Node n) {
12-
n.asExpr().(Argument).getCall().getCallee().hasName("sink")
13-
}
7+
predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().hasName("sink") }
148
}
159

16-
from DataFlow::Node src, DataFlow::Node sink, Conf conf
17-
where conf.hasFlow(src, sink)
10+
module Flow = TaintTracking::Global<Config>;
11+
12+
from DataFlow::Node src, DataFlow::Node sink
13+
where Flow::flow(src, sink)
1814
select src, sink
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
import java
22
import semmle.code.java.dataflow.DataFlow
33

4-
class Conf extends DataFlow::Configuration {
5-
Conf() { this = "qltest:exprStmtFlow" }
6-
7-
override predicate isSource(DataFlow::Node n) {
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) {
86
n.asExpr().(ClassInstanceExpr).getType().(RefType).getASupertype*().hasName("Source")
97
}
108

11-
override predicate isSink(DataFlow::Node n) {
12-
n.asExpr().(Argument).getCall().getCallee().hasName("sink")
13-
}
9+
predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().hasName("sink") }
1410
}
1511

16-
from DataFlow::Node src, DataFlow::Node sink, Conf conf
17-
where conf.hasFlow(src, sink)
12+
module Flow = DataFlow::Global<Config>;
13+
14+
from DataFlow::Node src, DataFlow::Node sink
15+
where Flow::flow(src, sink)
1816
select src, sink
Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
import java
22
import semmle.code.java.dataflow.TaintTracking
33

4-
class Conf extends TaintTracking::Configuration {
5-
Conf() { this = "kttaintconf" }
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) { n.asExpr().(MethodAccess).getMethod().hasName("taint") }
66

7-
override predicate isSource(DataFlow::Node n) {
8-
n.asExpr().(MethodAccess).getMethod().hasName("taint")
9-
}
10-
11-
override predicate isSink(DataFlow::Node n) {
12-
n.asExpr().(Argument).getCall().getCallee().hasName("sink")
13-
}
7+
predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().hasName("sink") }
148
}
159

16-
from DataFlow::Node src, DataFlow::Node sink, Conf conf
17-
where conf.hasFlow(src, sink)
10+
module Flow = TaintTracking::Global<Config>;
11+
12+
from DataFlow::Node src, DataFlow::Node sink
13+
where Flow::flow(src, sink)
1814
select src, sink
Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
import java
22
import semmle.code.java.dataflow.TaintTracking
33

4-
class Conf extends TaintTracking::Configuration {
5-
Conf() { this = "qltest:notNullExprFlow" }
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) { n.asExpr().(MethodAccess).getMethod().hasName("taint") }
66

7-
override predicate isSource(DataFlow::Node n) {
8-
n.asExpr().(MethodAccess).getMethod().hasName("taint")
9-
}
10-
11-
override predicate isSink(DataFlow::Node n) {
12-
n.asExpr().(Argument).getCall().getCallee().hasName("sink")
13-
}
7+
predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().hasName("sink") }
148
}
159

16-
from DataFlow::Node src, DataFlow::Node sink, Conf conf
17-
where conf.hasFlow(src, sink)
10+
module Flow = TaintTracking::Global<Config>;
11+
12+
from DataFlow::Node src, DataFlow::Node sink
13+
where Flow::flow(src, sink)
1814
select src, sink
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
import java
22
import semmle.code.java.dataflow.DataFlow
33

4-
class Config extends DataFlow::Configuration {
5-
Config() { this = "Config" }
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) { n.asExpr().(StringLiteral).getValue() = "Source" }
66

7-
override predicate isSource(DataFlow::Node n) { n.asExpr().(StringLiteral).getValue() = "Source" }
8-
9-
override predicate isSink(DataFlow::Node n) {
7+
predicate isSink(DataFlow::Node n) {
108
n.asExpr().(Argument).getCall().getCallee().getName() = "sink"
119
}
1210
}
1311

12+
module Flow = DataFlow::Global<Config>;
13+
1414
query predicate isFinalField(Field f) {
1515
exists(FieldDeclaration f2 | f = f2.getAField()) and f.isFinal()
1616
}
1717

1818
from DataFlow::Node source, DataFlow::Node sink
19-
where any(Config c).hasFlow(source, sink)
19+
where Flow::flow(source, sink)
2020
select source, sink
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import java
22
import semmle.code.java.dataflow.DataFlow
33

4-
class Config extends DataFlow::Configuration {
5-
Config() { this = "config" }
6-
7-
override predicate isSource(DataFlow::Node n) {
4+
module Config implements DataFlow::ConfigSig {
5+
predicate isSource(DataFlow::Node n) {
86
n.asExpr().(MethodAccess).getCallee().getName() = "source"
97
}
108

11-
override predicate isSink(DataFlow::Node n) {
9+
predicate isSink(DataFlow::Node n) {
1210
n.asExpr().(Argument).getCall().getCallee().getName() = "sink"
1311
}
1412
}
1513

16-
from Config c, DataFlow::Node source, DataFlow::Node sink
17-
where c.hasFlow(source, sink)
14+
module Flow = DataFlow::Global<Config>;
15+
16+
from DataFlow::Node source, DataFlow::Node sink
17+
where Flow::flow(source, sink)
1818
select source, sink, source.getEnclosingCallable()

java/ql/test/kotlin/library-tests/parameter-defaults/flowTest.ql

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,22 @@ class ShouldBeSunk extends StringLiteral {
1212
}
1313
}
1414

15-
class Config extends DataFlow::Configuration {
16-
Config() { this = "Config" }
15+
module Config implements DataFlow::ConfigSig {
1716

18-
override predicate isSource(DataFlow::Node n) {
17+
predicate isSource(DataFlow::Node n) {
1918
n.asExpr() instanceof ShouldBeSunk or
2019
n.asExpr() instanceof ShouldNotBeSunk
2120
}
2221

23-
override predicate isSink(DataFlow::Node n) {
22+
predicate isSink(DataFlow::Node n) {
2423
n.asExpr().(Argument).getCall().getCallee().getName() = "sink"
2524
}
2625
}
2726

27+
module Flow = DataFlow::Global<Config>;
28+
2829
predicate isSunk(StringLiteral sl) {
29-
exists(Config c, DataFlow::Node source | c.hasFlow(source, _) and sl = source.asExpr())
30+
exists(DataFlow::Node source | Flow::flow(source, _) and sl = source.asExpr())
3031
}
3132

3233
query predicate shouldBeSunkButIsnt(ShouldBeSunk src) { not isSunk(src) }

0 commit comments

Comments
 (0)