C#: Convert neutral capture test to inline expectation.

This commit is contained in:
Michael Nebel
2024-05-13 16:28:21 +02:00
parent e3b6ee1aaf
commit adeff8c602
7 changed files with 39 additions and 27 deletions

View File

@@ -1,24 +1,2 @@
| NoSummaries;BaseClass;M1;(System.String);summary;df-generated |
| NoSummaries;BaseClass;M2;(System.String);summary;df-generated |
| NoSummaries;CollectionFlow;ReturnSimpleTypeArray;(System.Int32[]);summary;df-generated |
| NoSummaries;CollectionFlow;ReturnSimpleTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.Int32>);summary;df-generated |
| NoSummaries;CollectionFlow;ReturnSimpleTypeList;(System.Collections.Generic.List<System.Int32>);summary;df-generated |
| NoSummaries;EquatableBound;Equals;(System.Object);summary;df-generated |
| NoSummaries;EquatableUnBound<T>;Equals;(T);summary;df-generated |
| NoSummaries;SimpleTypes;M1;(System.Boolean);summary;df-generated |
| NoSummaries;SimpleTypes;M2;(System.Boolean);summary;df-generated |
| NoSummaries;SimpleTypes;M3;(System.Int32);summary;df-generated |
| NoSummaries;SimpleTypes;M4;(System.Int32);summary;df-generated |
| Sinks;NewSinks;WrapFieldResponseWriteFile;();summary;df-generated |
| Sinks;NewSinks;WrapPrivateFieldResponseWriteFile;();summary;df-generated |
| Sinks;NewSinks;WrapPrivatePropResponseWriteFile;();summary;df-generated |
| Sinks;NewSinks;WrapPropPrivateSetResponseWriteFile;();summary;df-generated |
| Sinks;NewSinks;WrapPropResponseWriteFile;();summary;df-generated |
| Sinks;NewSinks;WrapResponseWrite;(System.Object);summary;df-generated |
| Sinks;NewSinks;WrapResponseWriteFile;(System.String);summary;df-generated |
| Sources;NewSources;WrapConsoleReadKey;();summary;df-generated |
| Sources;NewSources;WrapConsoleReadLine;();summary;df-generated |
| Sources;NewSources;WrapConsoleReadLineAndProcees;(System.String);summary;df-generated |
| Summaries;EqualsGetHashCodeNoFlow;Equals;(System.Object);summary;df-generated |
| Summaries;EqualsGetHashCodeNoFlow;GetHashCode;();summary;df-generated |
| Summaries;OperatorFlow;op_Increment;(Summaries.OperatorFlow);summary;df-generated |
unexpectedModel
expectedModel

View File

@@ -0,0 +1,11 @@
import csharp
import utils.modelgenerator.internal.CaptureSummaryFlowQuery
import TestUtilities.InlineMadTest
module InlineMadTestConfig implements InlineMadTestConfigSig {
string getCapturedModel(Callable c) { result = captureNoFlow(c) }
string getKind() { result = "neutral" }
}
import InlineMadTest<InlineMadTestConfig>

View File

@@ -1 +0,0 @@
utils/modelgenerator/CaptureNeutralModels.ql

View File

@@ -49,6 +49,8 @@ public sealed class PublicClassNoFlow
public class EquatableBound : IEquatable<object>
{
public readonly bool tainted;
// neutral=NoSummaries;EquatableBound;Equals;(System.Object);summary;df-generated
public bool Equals(object other)
{
return tainted;
@@ -58,6 +60,8 @@ public class EquatableBound : IEquatable<object>
public class EquatableUnBound<T> : IEquatable<T>
{
public readonly bool tainted;
// neutral=NoSummaries;EquatableUnBound<T>;Equals;(T);summary;df-generated
public bool Equals(T? other)
{
return tainted;
@@ -68,21 +72,25 @@ public class EquatableUnBound<T> : IEquatable<T>
// simple types are used.
public class SimpleTypes
{
// neutral=NoSummaries;SimpleTypes;M1;(System.Boolean);summary;df-generated
public bool M1(bool b)
{
return b;
}
// neutral=NoSummaries;SimpleTypes;M2;(System.Boolean);summary;df-generated
public Boolean M2(Boolean b)
{
return b;
}
// neutral=NoSummaries;SimpleTypes;M3;(System.Int32);summary;df-generated
public int M3(int i)
{
return i;
}
// neutral=NoSummaries;SimpleTypes;M4;(System.Int32);summary;df-generated
public Int32 M4(Int32 i)
{
return i;
@@ -104,13 +112,13 @@ public class HigherOrderParameters
public abstract class BaseClass
{
// Negative summary.
// neutral=NoSummaries;BaseClass;M1;(System.String);summary;df-generated
public virtual string M1(string s)
{
return "";
}
// Negative summary.
// neutral=NoSummaries;BaseClass;M2;(System.String);summary;df-generated
public abstract string M2(string s);
}
@@ -118,16 +126,19 @@ public abstract class BaseClass
// the simple types used in the collection are not bulk data types.
public class CollectionFlow
{
// neutral=NoSummaries;CollectionFlow;ReturnSimpleTypeArray;(System.Int32[]);summary;df-generated
public int[] ReturnSimpleTypeArray(int[] a)
{
return a;
}
// neutral=NoSummaries;CollectionFlow;ReturnSimpleTypeList;(System.Collections.Generic.List<System.Int32>);summary;df-generated
public List<int> ReturnSimpleTypeList(List<int> a)
{
return a;
}
// neutral=NoSummaries;CollectionFlow;ReturnSimpleTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.Int32>);summary;df-generated
public Dictionary<int, int> ReturnSimpleTypeDictionary(Dictionary<int, int> a)
{
return a;

View File

@@ -14,6 +14,7 @@ public class NewSinks
// New sink
// sink=Sinks;NewSinks;false;WrapResponseWrite;(System.Object);;Argument[0];html-injection;df-generated
// neutral=Sinks;NewSinks;WrapResponseWrite;(System.Object);summary;df-generated
public void WrapResponseWrite(object o)
{
var response = new HttpResponse();
@@ -29,6 +30,7 @@ public class NewSinks
// New sink
// sink=Sinks;NewSinks;false;WrapResponseWriteFile;(System.String);;Argument[0];html-injection;df-generated
// neutral=Sinks;NewSinks;WrapResponseWriteFile;(System.String);summary;df-generated
public void WrapResponseWriteFile(string s)
{
var response = new HttpResponse();
@@ -37,6 +39,7 @@ public class NewSinks
// New sink
// sink=Sinks;NewSinks;false;WrapFieldResponseWriteFile;();;Argument[this];html-injection;df-generated
// neutral=Sinks;NewSinks;WrapFieldResponseWriteFile;();summary;df-generated
public void WrapFieldResponseWriteFile()
{
var response = new HttpResponse();
@@ -44,6 +47,7 @@ public class NewSinks
}
// NOT new sink as field is private
// neutral=Sinks;NewSinks;WrapPrivateFieldResponseWriteFile;();summary;df-generated
public void WrapPrivateFieldResponseWriteFile()
{
var response = new HttpResponse();
@@ -52,6 +56,7 @@ public class NewSinks
// New sink
// sink=Sinks;NewSinks;false;WrapPropResponseWriteFile;();;Argument[this];html-injection;df-generated
// neutral=Sinks;NewSinks;WrapPropResponseWriteFile;();summary;df-generated
public void WrapPropResponseWriteFile()
{
var response = new HttpResponse();
@@ -59,6 +64,7 @@ public class NewSinks
}
// NOT new sink as property is private
// neutral=Sinks;NewSinks;WrapPrivatePropResponseWriteFile;();summary;df-generated
public void WrapPrivatePropResponseWriteFile()
{
var response = new HttpResponse();
@@ -66,6 +72,7 @@ public class NewSinks
}
// NOT new sink as property setter is private
// neutral=Sinks;NewSinks;WrapPropPrivateSetResponseWriteFile;();summary;df-generated
public void WrapPropPrivateSetResponseWriteFile()
{
var response = new HttpResponse();

View File

@@ -6,6 +6,7 @@ public class NewSources
{
// New source
// source=Sources;NewSources;false;WrapConsoleReadLine;();;ReturnValue;local;df-generated
// neutral=Sources;NewSources;WrapConsoleReadLine;();summary;df-generated
public string? WrapConsoleReadLine()
{
return Console.ReadLine();
@@ -13,6 +14,7 @@ public class NewSources
// New source
// source=Sources;NewSources;false;WrapConsoleReadLineAndProcees;(System.String);;ReturnValue;local;df-generated
// neutral=Sources;NewSources;WrapConsoleReadLineAndProcees;(System.String);summary;df-generated
public string WrapConsoleReadLineAndProcees(string prompt)
{
var s = Console.ReadLine();
@@ -27,6 +29,7 @@ public class NewSources
// New source
// source=Sources;NewSources;false;WrapConsoleReadKey;();;ReturnValue;local;df-generated
// neutral=Sources;NewSources;WrapConsoleReadKey;();summary;df-generated
public ConsoleKeyInfo WrapConsoleReadKey()
{
return Console.ReadKey();

View File

@@ -254,6 +254,7 @@ public class OperatorFlow
}
// No flow summary.
// neutral=Summaries;OperatorFlow;op_Increment;(Summaries.OperatorFlow);summary;df-generated
public static OperatorFlow operator ++(OperatorFlow a)
{
return new OperatorFlow(new object());
@@ -279,6 +280,7 @@ public class EqualsGetHashCodeNoFlow
public readonly int intTainted;
// No flow summary as this is an override of the Equals method.
// neutral=Summaries;EqualsGetHashCodeNoFlow;Equals;(System.Object);summary;df-generated
public override bool Equals(object obj)
{
return boolTainted;
@@ -292,6 +294,7 @@ public class EqualsGetHashCodeNoFlow
}
// No flow summary as this is an override of the GetHashCode method.
// neutral=Summaries;EqualsGetHashCodeNoFlow;GetHashCode;();summary;df-generated
public override int GetHashCode()
{
return intTainted;