From 40aed2985875a5085a23044f9bb08cd4c3315ce7 Mon Sep 17 00:00:00 2001 From: Ed Minnix Date: Fri, 14 Apr 2023 10:33:38 -0400 Subject: [PATCH] Refactor Java Integration tests to new API --- .../kotlin/default-parameter-mad-flow/test.ql | 12 ++++++------ .../kotlin-interface-inherited-default/test.ql | 14 +++++++------- .../kotlin/kotlin_java_static_fields/test.ql | 14 +++++++------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ql b/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ql index 771d467a3ad..78afdd7bb66 100644 --- a/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ql +++ b/java/ql/integration-tests/all-platforms/kotlin/default-parameter-mad-flow/test.ql @@ -3,22 +3,22 @@ import semmle.code.java.dataflow.TaintTracking import TestUtilities.InlineExpectationsTest private import semmle.code.java.dataflow.ExternalFlow -class Config extends TaintTracking::Configuration { - Config() { this = "Config" } - - override predicate isSource(DataFlow::Node n) { +module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node n) { n.asExpr().(MethodAccess).getCallee().getName() = "source" or sourceNode(n, "kotlinMadFlowTest") } - override predicate isSink(DataFlow::Node n) { + predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().getName() = "sink" or sinkNode(n, "kotlinMadFlowTest") } } +module Flow = TaintTracking::Global; + class InlineFlowTest extends InlineExpectationsTest { InlineFlowTest() { this = "HasFlowTest" } @@ -26,7 +26,7 @@ class InlineFlowTest extends InlineExpectationsTest { override predicate hasActualResult(Location location, string element, string tag, string value) { tag = "flow" and - exists(DataFlow::Node sink, Config c | c.hasFlowTo(sink) | + exists(DataFlow::Node sink | Flow::flowTo(sink) | sink.getLocation() = location and element = sink.toString() and value = "" diff --git a/java/ql/integration-tests/all-platforms/kotlin/kotlin-interface-inherited-default/test.ql b/java/ql/integration-tests/all-platforms/kotlin/kotlin-interface-inherited-default/test.ql index 4e6a7e9518d..9654060ab67 100644 --- a/java/ql/integration-tests/all-platforms/kotlin/kotlin-interface-inherited-default/test.ql +++ b/java/ql/integration-tests/all-platforms/kotlin/kotlin-interface-inherited-default/test.ql @@ -19,18 +19,18 @@ query predicate superAccesses( enclosingType = enclosingCallable.getDeclaringType() } -class Config extends DataFlow::Configuration { - Config() { this = "testconfig" } - - override predicate isSource(DataFlow::Node x) { +module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node x) { x.asExpr() instanceof IntegerLiteral and x.getEnclosingCallable().fromSource() } - override predicate isSink(DataFlow::Node x) { + predicate isSink(DataFlow::Node x) { x.asExpr().(Argument).getCall().getCallee().getName() = "sink" } } -from Config c, DataFlow::Node source, DataFlow::Node sink -where c.hasFlow(source, sink) +module Flow = DataFlow::Global; + +from DataFlow::Node source, DataFlow::Node sink +where Flow::flow(source, sink) select source, sink diff --git a/java/ql/integration-tests/all-platforms/kotlin/kotlin_java_static_fields/test.ql b/java/ql/integration-tests/all-platforms/kotlin/kotlin_java_static_fields/test.ql index f7702b2ac38..63907e6db74 100644 --- a/java/ql/integration-tests/all-platforms/kotlin/kotlin_java_static_fields/test.ql +++ b/java/ql/integration-tests/all-platforms/kotlin/kotlin_java_static_fields/test.ql @@ -2,16 +2,16 @@ import java import semmle.code.java.dataflow.DataFlow import DataFlow::PathGraph -class Config extends DataFlow::Configuration { - Config() { this = "Config" } +module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node n) { n.asExpr().(StringLiteral).getValue() = "taint" } - override predicate isSource(DataFlow::Node n) { n.asExpr().(StringLiteral).getValue() = "taint" } - - override predicate isSink(DataFlow::Node n) { + predicate isSink(DataFlow::Node n) { n.asExpr().(Argument).getCall().getCallee().getName() = "sink" } } -from DataFlow::PathNode source, DataFlow::PathNode sink, Config c -where c.hasFlowPath(source, sink) +module Flow = DataFlow::Global; + +from Flow::PathNode source, Flow::PathNode sink +where Flow::flowPath(source, sink) select source, source, sink, "flow path"