Skip to content

Commit 404b39b

Browse files
committed
C#: Convert summary capture test to inline expectation.
1 parent 2cda1a2 commit 404b39b

File tree

5 files changed

+53
-41
lines changed

5 files changed

+53
-41
lines changed
Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,2 @@
1-
| NoSummaries;PublicClassFlow;false;PublicReturn;(System.Object);;Argument[0];ReturnValue;taint;df-generated |
2-
| Summaries;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated |
3-
| Summaries;BasicFlow;false;ReturnField;();;Argument[this];ReturnValue;taint;df-generated |
4-
| Summaries;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated |
5-
| Summaries;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;df-generated |
6-
| Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated |
7-
| Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;df-generated |
8-
| Summaries;BasicFlow;false;ReturnSubstring;(System.String);;Argument[0];ReturnValue;taint;df-generated |
9-
| Summaries;BasicFlow;false;ReturnThis;(System.Object);;Argument[this];ReturnValue;value;df-generated |
10-
| Summaries;BasicFlow;false;SetField;(System.String);;Argument[0];Argument[this];taint;df-generated |
11-
| Summaries;CollectionFlow;false;AddFieldToList;(System.Collections.Generic.List<System.String>);;Argument[this];Argument[0].Element;taint;df-generated |
12-
| Summaries;CollectionFlow;false;AddToList;(System.Collections.Generic.List<System.Object>,System.Object);;Argument[1];Argument[0].Element;taint;df-generated |
13-
| Summaries;CollectionFlow;false;AssignFieldToArray;(System.Object[]);;Argument[this];Argument[0].Element;taint;df-generated |
14-
| Summaries;CollectionFlow;false;AssignToArray;(System.Object,System.Object[]);;Argument[0];Argument[1].Element;taint;df-generated |
15-
| Summaries;CollectionFlow;false;ReturnArrayElement;(System.Object[]);;Argument[0].Element;ReturnValue;taint;df-generated |
16-
| Summaries;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;taint;df-generated |
17-
| Summaries;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated |
18-
| Summaries;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;taint;df-generated |
19-
| Summaries;CollectionFlow;false;ReturnFieldInAList;();;Argument[this];ReturnValue;taint;df-generated |
20-
| Summaries;CollectionFlow;false;ReturnListElement;(System.Collections.Generic.List<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated |
21-
| Summaries;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;taint;df-generated |
22-
| Summaries;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;taint;df-generated |
23-
| Summaries;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated |
24-
| Summaries;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;df-generated |
25-
| Summaries;DerivedClass2Flow;false;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated |
26-
| Summaries;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;df-generated |
27-
| Summaries;GenericFlow<T>;false;AddFieldToGenericList;(System.Collections.Generic.List<T>);;Argument[this];Argument[0].Element;taint;df-generated |
28-
| Summaries;GenericFlow<T>;false;AddToGenericList<S>;(System.Collections.Generic.List<S>,S);;Argument[1];Argument[0].Element;taint;df-generated |
29-
| Summaries;GenericFlow<T>;false;ReturnFieldInGenericList;();;Argument[this];ReturnValue;taint;df-generated |
30-
| Summaries;GenericFlow<T>;false;ReturnGenericElement<S>;(System.Collections.Generic.List<S>);;Argument[0].Element;ReturnValue;taint;df-generated |
31-
| Summaries;GenericFlow<T>;false;ReturnGenericField;();;Argument[this];ReturnValue;taint;df-generated |
32-
| Summaries;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;taint;df-generated |
33-
| Summaries;GenericFlow<T>;false;SetGenericField;(T);;Argument[0];Argument[this];taint;df-generated |
34-
| Summaries;IEnumerableFlow;false;ReturnFieldInIEnumerable;();;Argument[this];ReturnValue;taint;df-generated |
35-
| Summaries;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;df-generated |
36-
| Summaries;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated |
37-
| Summaries;OperatorFlow;false;OperatorFlow;(System.Object);;Argument[0];Argument[this];taint;df-generated |
38-
| Summaries;OperatorFlow;false;op_Addition;(Summaries.OperatorFlow,Summaries.OperatorFlow);;Argument[0];ReturnValue;taint;df-generated |
39-
| Summaries;Properties;false;get_Prop1;();;Argument[this];ReturnValue;taint;df-generated |
40-
| Summaries;Properties;false;set_Prop2;(System.String);;Argument[0];Argument[this];taint;df-generated |
1+
unexpectedModel
2+
expectedModel
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import csharp
2+
import utils.modelgenerator.internal.CaptureSummaryFlowQuery
3+
import TestUtilities.InlineMadTest
4+
5+
module InlineMadTestConfig implements InlineMadTestConfigSig {
6+
string getCapturedModel(Callable c) { result = captureFlow(c) }
7+
8+
string getKind() { result = "summary" }
9+
}
10+
11+
import InlineMadTest<InlineMadTestConfig>

csharp/ql/test/utils/modelgenerator/dataflow/CaptureSummaryModels.qlref

Lines changed: 0 additions & 1 deletion
This file was deleted.

csharp/ql/test/utils/modelgenerator/dataflow/NoSummaries.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ namespace NoSummaries;
77
// Just to prove that, if a method like this is correctly exposed, a flow summary will be captured.
88
public class PublicClassFlow
99
{
10+
// summary=NoSummaries;PublicClassFlow;false;PublicReturn;(System.Object);;Argument[0];ReturnValue;taint;df-generated
1011
public object PublicReturn(object input)
1112
{
1213
return input;

csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,36 +12,44 @@ public class BasicFlow
1212

1313
private string tainted;
1414

15+
// summary=Summaries;BasicFlow;false;ReturnThis;(System.Object);;Argument[this];ReturnValue;value;df-generated
1516
public BasicFlow ReturnThis(object input)
1617
{
1718
return this;
1819
}
1920

21+
// summary=Summaries;BasicFlow;false;ReturnParam0;(System.String,System.Object);;Argument[0];ReturnValue;taint;df-generated
2022
public string ReturnParam0(string input0, object input1)
2123
{
2224
return input0;
2325
}
2426

27+
// summary=Summaries;BasicFlow;false;ReturnParam1;(System.String,System.Object);;Argument[1];ReturnValue;taint;df-generated
2528
public object ReturnParam1(string input0, object input1)
2629
{
2730
return input1;
2831
}
2932

33+
// summary=Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated
34+
// summary=Summaries;BasicFlow;false;ReturnParamMultiple;(System.Object,System.Object);;Argument[1];ReturnValue;taint;df-generated
3035
public object ReturnParamMultiple(object input0, object input1)
3136
{
3237
return (System.DateTime.Now.DayOfWeek == System.DayOfWeek.Monday) ? input0 : input1;
3338
}
3439

40+
// summary=Summaries;BasicFlow;false;ReturnSubstring;(System.String);;Argument[0];ReturnValue;taint;df-generated
3541
public string ReturnSubstring(string s)
3642
{
3743
return s.Substring(0, 1);
3844
}
3945

46+
// summary=Summaries;BasicFlow;false;SetField;(System.String);;Argument[0];Argument[this];taint;df-generated
4047
public void SetField(string s)
4148
{
4249
tainted = s;
4350
}
4451

52+
// summary=Summaries;BasicFlow;false;ReturnField;();;Argument[this];ReturnValue;taint;df-generated
4553
public string ReturnField()
4654
{
4755
return tainted;
@@ -52,61 +60,73 @@ public class CollectionFlow
5260
{
5361
private string tainted;
5462

63+
// summary=Summaries;CollectionFlow;false;ReturnArrayElement;(System.Object[]);;Argument[0].Element;ReturnValue;taint;df-generated
5564
public object ReturnArrayElement(object[] input)
5665
{
5766
return input[0];
5867
}
5968

69+
// summary=Summaries;CollectionFlow;false;AssignToArray;(System.Object,System.Object[]);;Argument[0];Argument[1].Element;taint;df-generated
6070
public void AssignToArray(object data, object[] target)
6171
{
6272
target[0] = data;
6373
}
6474

75+
// summary=Summaries;CollectionFlow;false;AssignFieldToArray;(System.Object[]);;Argument[this];Argument[0].Element;taint;df-generated
6576
public void AssignFieldToArray(object[] target)
6677
{
6778
target[0] = tainted;
6879
}
6980

81+
// summary=Summaries;CollectionFlow;false;ReturnListElement;(System.Collections.Generic.List<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated
7082
public object ReturnListElement(List<object> input)
7183
{
7284
return input[0];
7385
}
7486

87+
// summary=Summaries;CollectionFlow;false;AddToList;(System.Collections.Generic.List<System.Object>,System.Object);;Argument[1];Argument[0].Element;taint;df-generated
7588
public void AddToList(List<object> input, object data)
7689
{
7790
input.Add(data);
7891
}
7992

93+
// summary=Summaries;CollectionFlow;false;AddFieldToList;(System.Collections.Generic.List<System.String>);;Argument[this];Argument[0].Element;taint;df-generated
8094
public void AddFieldToList(List<string> input)
8195
{
8296
input.Add(tainted);
8397
}
8498

99+
// summary=Summaries;CollectionFlow;false;ReturnFieldInAList;();;Argument[this];ReturnValue;taint;df-generated
85100
public List<string> ReturnFieldInAList()
86101
{
87102
return new List<string> { tainted };
88103
}
89104

105+
// summary=Summaries;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;taint;df-generated
90106
public string[] ReturnComplexTypeArray(string[] a)
91107
{
92108
return a;
93109
}
94110

111+
// summary=Summaries;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;taint;df-generated
95112
public List<byte> ReturnBulkTypeList(List<byte> a)
96113
{
97114
return a;
98115
}
99116

117+
// summary=Summaries;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
100118
public Dictionary<int, string> ReturnComplexTypeDictionary(Dictionary<int, string> a)
101119
{
102120
return a;
103121
}
104122

123+
// summary=Summaries;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;taint;df-generated
105124
public Array ReturnUntypedArray(Array a)
106125
{
107126
return a;
108127
}
109128

129+
// summary=Summaries;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;taint;df-generated
110130
public IList ReturnUntypedList(IList a)
111131
{
112132
return a;
@@ -117,16 +137,19 @@ public class IEnumerableFlow
117137
{
118138
private string tainted;
119139

140+
// summary=Summaries;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;taint;df-generated
120141
public IEnumerable<string> ReturnIEnumerable(IEnumerable<string> input)
121142
{
122143
return input;
123144
}
124145

146+
// summary=Summaries;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);;Argument[0].Element;ReturnValue;taint;df-generated
125147
public object ReturnIEnumerableElement(IEnumerable<object> input)
126148
{
127149
return input.First();
128150
}
129151

152+
// summary=Summaries;IEnumerableFlow;false;ReturnFieldInIEnumerable;();;Argument[this];ReturnValue;taint;df-generated
130153
public IEnumerable<string> ReturnFieldInIEnumerable()
131154
{
132155
return new List<string> { tainted };
@@ -137,36 +160,43 @@ public class GenericFlow<T>
137160
{
138161
private T tainted;
139162

163+
// summary=Summaries;GenericFlow<T>;false;SetGenericField;(T);;Argument[0];Argument[this];taint;df-generated
140164
public void SetGenericField(T t)
141165
{
142166
tainted = t;
143167
}
144168

169+
// summary=Summaries;GenericFlow<T>;false;ReturnGenericField;();;Argument[this];ReturnValue;taint;df-generated
145170
public T ReturnGenericField()
146171
{
147172
return tainted;
148173
}
149174

175+
// summary=Summaries;GenericFlow<T>;false;AddFieldToGenericList;(System.Collections.Generic.List<T>);;Argument[this];Argument[0].Element;taint;df-generated
150176
public void AddFieldToGenericList(List<T> input)
151177
{
152178
input.Add(tainted);
153179
}
154180

181+
// summary=Summaries;GenericFlow<T>;false;ReturnFieldInGenericList;();;Argument[this];ReturnValue;taint;df-generated
155182
public List<T> ReturnFieldInGenericList()
156183
{
157184
return new List<T> { tainted };
158185
}
159186

187+
// summary=Summaries;GenericFlow<T>;false;ReturnGenericParam<S>;(S);;Argument[0];ReturnValue;taint;df-generated
160188
public S ReturnGenericParam<S>(S input)
161189
{
162190
return input;
163191
}
164192

193+
// summary=Summaries;GenericFlow<T>;false;ReturnGenericElement<S>;(System.Collections.Generic.List<S>);;Argument[0].Element;ReturnValue;taint;df-generated
165194
public S ReturnGenericElement<S>(List<S> input)
166195
{
167196
return input[0];
168197
}
169198

199+
// summary=Summaries;GenericFlow<T>;false;AddToGenericList<S>;(System.Collections.Generic.List<S>,S);;Argument[1];Argument[0].Element;taint;df-generated
170200
public void AddToGenericList<S>(List<S> input, S data)
171201
{
172202
input.Add(data);
@@ -175,6 +205,7 @@ public void AddToGenericList<S>(List<S> input, S data)
175205

176206
public abstract class BaseClassFlow
177207
{
208+
// summary=Summaries;BaseClassFlow;true;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated
178209
public virtual object ReturnParam(object input)
179210
{
180211
return input;
@@ -183,6 +214,7 @@ public virtual object ReturnParam(object input)
183214

184215
public class DerivedClass1Flow : BaseClassFlow
185216
{
217+
// summary=Summaries;DerivedClass1Flow;false;ReturnParam1;(System.String,System.String);;Argument[1];ReturnValue;taint;df-generated
186218
public string ReturnParam1(string input0, string input1)
187219
{
188220
return input1;
@@ -191,11 +223,13 @@ public string ReturnParam1(string input0, string input1)
191223

192224
public class DerivedClass2Flow : BaseClassFlow
193225
{
226+
// summary=Summaries;DerivedClass2Flow;false;ReturnParam;(System.Object);;Argument[0];ReturnValue;taint;df-generated
194227
public override object ReturnParam(object input)
195228
{
196229
return input;
197230
}
198231

232+
// summary=Summaries;DerivedClass2Flow;false;ReturnParam0;(System.String,System.Int32);;Argument[0];ReturnValue;taint;df-generated
199233
public string ReturnParam0(string input0, int input1)
200234
{
201235
return input0;
@@ -206,12 +240,14 @@ public class OperatorFlow
206240
{
207241
public readonly object Field;
208242

243+
// summary=Summaries;OperatorFlow;false;OperatorFlow;(System.Object);;Argument[0];Argument[this];taint;df-generated
209244
public OperatorFlow(object o)
210245
{
211246
Field = o;
212247
}
213248

214249
// Flow Summary.
250+
// summary=Summaries;OperatorFlow;false;op_Addition;(Summaries.OperatorFlow,Summaries.OperatorFlow);;Argument[0];ReturnValue;taint;df-generated
215251
public static OperatorFlow operator +(OperatorFlow a, OperatorFlow b)
216252
{
217253
return a;
@@ -249,6 +285,7 @@ public override bool Equals(object obj)
249285
}
250286

251287
// Flow summary as this is not an override of the object Equals method.
288+
// summary=Summaries;EqualsGetHashCodeNoFlow;false;Equals;(System.String);;Argument[0];ReturnValue;taint;df-generated
252289
public string Equals(string s)
253290
{
254291
return s;
@@ -265,11 +302,13 @@ public class Properties
265302
{
266303
private string tainted;
267304

305+
// summary=Summaries;Properties;false;get_Prop1;();;Argument[this];ReturnValue;taint;df-generated
268306
public string Prop1
269307
{
270308
get { return tainted; }
271309
}
272310

311+
// summary=Summaries;Properties;false;set_Prop2;(System.String);;Argument[0];Argument[this];taint;df-generated
273312
public string Prop2
274313
{
275314
set { tainted = value; }

0 commit comments

Comments
 (0)