Skip to content

Commit c356631

Browse files
committed
C#: Add model generator test cases with in/out parameters.
1 parent df721f8 commit c356631

File tree

4 files changed

+42
-0
lines changed

4 files changed

+42
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
unexpectedModel
2+
| Unexpected contentbased-summary found: Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];ReturnValue;value;dfc-generated |
3+
| Unexpected contentbased-summary found: Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];ReturnValue;value;dfc-generated |
4+
| Unexpected contentbased-summary found: Models;ParameterModifiers;false;FlowToSelf;(System.Object,System.Boolean);;Argument[0];ReturnValue;value;dfc-generated |
25
expectedModel
6+
| Expected contentbased-summary missing: Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];value;dfc-generated |
7+
| Expected contentbased-summary missing: Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];value;dfc-generated |
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
unexpectedModel
22
expectedModel
3+
| Expected neutral missing: Models;ParameterModifiers;FlowToSelf;(System.Object,System.Boolean);summary;df-generated |
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
11
unexpectedModel
2+
| Unexpected summary found: Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated |
3+
| Unexpected summary found: Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];ReturnValue;taint;df-generated |
4+
| Unexpected summary found: Models;ParameterModifiers;false;FlowToSelf;(System.Object,System.Boolean);;Argument[0];ReturnValue;taint;df-generated |
25
expectedModel
6+
| Expected summary missing: Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];taint;df-generated |
7+
| Expected summary missing: Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];taint;df-generated |

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

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,3 +1034,34 @@ public override object GetValue()
10341034
}
10351035
}
10361036
}
1037+
1038+
public class ParameterModifiers
1039+
{
1040+
// contentbased-summary=Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];value;dfc-generated
1041+
// summary=Models;ParameterModifiers;false;Copy;(System.Object,System.Object);;Argument[0];Argument[1];taint;df-generated
1042+
public void Copy(object key, out object value)
1043+
{
1044+
value = key;
1045+
}
1046+
1047+
// contentbased-summary=Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];value;dfc-generated
1048+
// summary=Models;ParameterModifiers;false;CopyToRef;(System.Object,System.Object);;Argument[0];Argument[1];taint;df-generated
1049+
public void CopyToRef(object key, ref object value)
1050+
{
1051+
value = key;
1052+
}
1053+
1054+
// No summaries as we disregard flow from a parameter to itself.
1055+
// neutral=Models;ParameterModifiers;FlowToSelf;(System.Object,System.Boolean);summary;df-generated
1056+
public void FlowToSelf(ref object value, bool b)
1057+
{
1058+
value = b ? value : null;
1059+
}
1060+
1061+
// contentbased-summary=Models;ParameterModifiers;false;InReturn;(System.Object);;Argument[0];ReturnValue;value;dfc-generated
1062+
// summary=Models;ParameterModifiers;false;InReturn;(System.Object);;Argument[0];ReturnValue;taint;df-generated
1063+
public object InReturn(in object v)
1064+
{
1065+
return v;
1066+
}
1067+
}

0 commit comments

Comments
 (0)