C#: Add test cases for operators.

This commit is contained in:
Michael Nebel
2022-03-30 15:09:44 +02:00
parent 04960fc0c6
commit 5c13391580
2 changed files with 37 additions and 0 deletions

View File

@@ -28,3 +28,5 @@
| Summaries;IEnumerableFlow;false;ReturnFieldInIEnumerable;();Argument[Qualifier];ReturnValue;taint |
| Summaries;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);Argument[0].Element;ReturnValue;taint |
| Summaries;IEnumerableFlow;false;ReturnIEnumerableElement;(System.Collections.Generic.IEnumerable<System.Object>);Argument[0].Element;ReturnValue;taint |
| Summaries;OperatorFlow;false;OperatorFlow;(System.Object);Argument[0];Argument[Qualifier];taint |
| Summaries;OperatorFlow;false;op_Addition;(Summaries.OperatorFlow,Summaries.OperatorFlow);Argument[0];ReturnValue;taint |

View File

@@ -171,4 +171,39 @@ public class DerivedClass2Flow : BaseClassFlow
{
return input0;
}
}
public class OperatorFlow
{
public readonly object Field;
public OperatorFlow(object o)
{
Field = o;
}
// Flow Summary.
public static OperatorFlow operator +(OperatorFlow a, OperatorFlow b)
{
return a;
}
// No flow summary.
public static OperatorFlow operator ++(OperatorFlow a)
{
return new OperatorFlow(new object());
}
// No flow summary as this is an implicit conversion operator.
public static implicit operator OperatorFlow(int i)
{
return new OperatorFlow(i);
}
// No flow summary as this is an explicit conversion operator.
public static explicit operator OperatorFlow(byte b)
{
return new OperatorFlow(b);
}
}