Skip to content

Commit 115bc86

Browse files
committed
JS: Port HeuristicSource test
1 parent a9c5b29 commit 115bc86

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
legacyDataFlowDifference
2+
consistencyIssue

javascript/ql/test/library-tests/Security/heuristics/HeuristicSource.ql

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,28 @@ import javascript
22
private import semmle.javascript.heuristics.AdditionalSources
33
import testUtilities.ConsistencyChecking
44

5-
class Taint extends TaintTracking::Configuration {
6-
Taint() { this = "Taint" }
5+
module TestConfig implements DataFlow::ConfigSig {
6+
predicate isSource(DataFlow::Node node) { node instanceof HeuristicSource }
77

8-
override predicate isSource(DataFlow::Node node) { node instanceof HeuristicSource }
9-
10-
override predicate isSink(DataFlow::Node node) {
8+
predicate isSink(DataFlow::Node node) {
119
node = any(DataFlow::CallNode call | call.getCalleeName() = "sink").getAnArgument()
1210
}
1311
}
12+
13+
module TestFlow = TaintTracking::Global<TestConfig>;
14+
15+
class Consistency extends ConsistencyConfiguration {
16+
Consistency() { this = "Consistency" }
17+
18+
override DataFlow::Node getAnAlert() { TestFlow::flowTo(result) }
19+
}
20+
21+
class LegacyConfig extends TaintTracking::Configuration {
22+
LegacyConfig() { this = "LegacyConfig" }
23+
24+
override predicate isSource(DataFlow::Node source) { TestConfig::isSource(source) }
25+
26+
override predicate isSink(DataFlow::Node sink) { TestConfig::isSink(sink) }
27+
}
28+
29+
import testUtilities.LegacyDataFlowDiff::DataFlowDiff<TestFlow, LegacyConfig>

0 commit comments

Comments
 (0)