Skip to content

Commit c5343fb

Browse files
committed
C#: Make language specific ShowProvenance module and update tests.
1 parent 97f9340 commit c5343fb

25 files changed

+438
-289
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
private import codeql.dataflow.DataFlow as DF
2+
private import codeql.dataflow.test.ProvenancePathGraph as Graph
3+
private import semmle.code.csharp.dataflow.internal.ExternalFlow
4+
5+
/** Transforms a `PathGraph` by printing the provenance information. */
6+
module ShowProvenance<Graph::PathNodeSig PathNode, DF::PathGraphSig<PathNode> PathGraph> {
7+
import Graph::ShowProvenance<interpretModelForTest/2, PathNode, PathGraph>
8+
}

csharp/ql/test/library-tests/dataflow/async/Async.expected

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
models
2+
| 1 | Summary: System.Threading.Tasks; Task; false; FromResult<TResult>; (TResult); ; Argument[0]; ReturnValue.Property[System.Threading.Tasks.Task`1.Result]; value; manual |
13
edges
24
| Async.cs:9:37:9:41 | input : String | Async.cs:11:21:11:25 | access to parameter input : String | provenance | |
35
| Async.cs:11:21:11:25 | access to parameter input : String | Async.cs:11:14:11:26 | call to method Return | provenance | |
@@ -25,13 +27,13 @@ edges
2527
| Async.cs:38:16:38:16 | access to parameter x : String | Async.cs:26:23:26:40 | call to method ReturnAwait : Task<String> [property Result] : String | provenance | |
2628
| Async.cs:41:33:41:37 | input : String | Async.cs:43:25:43:29 | access to parameter input : String | provenance | |
2729
| Async.cs:43:14:43:30 | call to method ReturnTask : Task<T> [property Result] : String | Async.cs:43:14:43:37 | access to property Result | provenance | |
28-
| Async.cs:43:25:43:29 | access to parameter input : String | Async.cs:43:14:43:30 | call to method ReturnTask : Task<T> [property Result] : String | provenance | MaD:2002 |
30+
| Async.cs:43:25:43:29 | access to parameter input : String | Async.cs:43:14:43:30 | call to method ReturnTask : Task<T> [property Result] : String | provenance | MaD:1 |
2931
| Async.cs:43:25:43:29 | access to parameter input : String | Async.cs:46:44:46:44 | x : String | provenance | |
3032
| Async.cs:46:44:46:44 | x : String | Async.cs:48:32:48:32 | access to parameter x : String | provenance | |
3133
| Async.cs:46:44:46:44 | x : String | Async.cs:48:32:48:32 | access to parameter x : String | provenance | |
3234
| Async.cs:48:16:48:33 | call to method FromResult<String> : Task<T> [property Result] : String | Async.cs:43:14:43:30 | call to method ReturnTask : Task<T> [property Result] : String | provenance | |
33-
| Async.cs:48:32:48:32 | access to parameter x : String | Async.cs:48:16:48:33 | call to method FromResult<String> : Task<T> [property Result] : String | provenance | MaD:2002 |
34-
| Async.cs:48:32:48:32 | access to parameter x : String | Async.cs:48:16:48:33 | call to method FromResult<String> : Task<T> [property Result] : String | provenance | MaD:2002 |
35+
| Async.cs:48:32:48:32 | access to parameter x : String | Async.cs:48:16:48:33 | call to method FromResult<String> : Task<T> [property Result] : String | provenance | MaD:1 |
36+
| Async.cs:48:32:48:32 | access to parameter x : String | Async.cs:48:16:48:33 | call to method FromResult<String> : Task<T> [property Result] : String | provenance | MaD:1 |
3537
| Async.cs:51:52:51:52 | x : String | Async.cs:51:58:51:58 | access to parameter x : String | provenance | |
3638
| Async.cs:51:52:51:52 | x : String | Async.cs:51:58:51:58 | access to parameter x : String | provenance | |
3739
| Async.cs:51:58:51:58 | access to parameter x : String | Async.cs:32:14:32:32 | call to method ReturnAwait2 : Task<String> [property Result] : String | provenance | |

csharp/ql/test/library-tests/dataflow/async/Async.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import csharp
2-
import Taint::PathGraph
2+
import TestUtilities.ProvenancePathGraph::ShowProvenance<Taint::PathNode, Taint::PathGraph>
33

44
class MySink extends DataFlow::ExprNode {
55
MySink() {

csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected

Lines changed: 112 additions & 86 deletions
Large diffs are not rendered by default.

csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*/
44

55
import csharp
6-
import ArrayFlow::PathGraph
6+
import TestUtilities.ProvenancePathGraph::ShowProvenance<ArrayFlow::PathNode, ArrayFlow::PathGraph>
77

88
module ArrayFlowConfig implements DataFlow::ConfigSig {
99
predicate isSource(DataFlow::Node src) { src.asExpr() instanceof ObjectCreation }

csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected

Lines changed: 54 additions & 28 deletions
Large diffs are not rendered by default.

csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import csharp
66
import semmle.code.csharp.dataflow.internal.ExternalFlow
7-
import Taint::PathGraph
7+
import TestUtilities.ProvenancePathGraph::ShowProvenance<Taint::PathNode, Taint::PathGraph>
88
import ModelValidation
99

1010
module TaintConfig implements DataFlow::ConfigSig {

csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected

Lines changed: 49 additions & 34 deletions
Large diffs are not rendered by default.

csharp/ql/test/library-tests/dataflow/global/DataFlowPath.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import csharp
66
import Common
7-
import Flow::PathGraph
7+
import TestUtilities.ProvenancePathGraph::ShowProvenance<Flow::PathNode, Flow::PathGraph>
88

99
from Flow::PathNode source, Flow::PathNode sink, string s
1010
where

csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected

Lines changed: 75 additions & 50 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)