Skip to content

Commit cbd21ed

Browse files
hvitvedmichaelnebel
authored andcommitted
C#: Override File::isFromSource in tests to exclude stubs
1 parent 2f85735 commit cbd21ed

File tree

3 files changed

+55
-37
lines changed

3 files changed

+55
-37
lines changed

csharp/ql/lib/csharp.qll

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,5 @@
22
* The default C# QL library.
33
*/
44

5-
import Customizations
6-
import semmle.code.csharp.Attribute
7-
import semmle.code.csharp.Callable
8-
import semmle.code.csharp.Comments
9-
import semmle.code.csharp.Element
10-
import semmle.code.csharp.Event
11-
import semmle.code.csharp.File
12-
import semmle.code.csharp.Generics
13-
import semmle.code.csharp.Location
14-
import semmle.code.csharp.Member
15-
import semmle.code.csharp.Namespace
16-
import semmle.code.csharp.AnnotatedType
17-
import semmle.code.csharp.Property
18-
import semmle.code.csharp.Stmt
19-
import semmle.code.csharp.Type
20-
import semmle.code.csharp.Using
21-
import semmle.code.csharp.Variable
22-
import semmle.code.csharp.XML
23-
import semmle.code.csharp.Preprocessor
24-
import semmle.code.csharp.exprs.Access
25-
import semmle.code.csharp.exprs.ArithmeticOperation
26-
import semmle.code.csharp.exprs.Assignment
27-
import semmle.code.csharp.exprs.BitwiseOperation
28-
import semmle.code.csharp.exprs.Call
29-
import semmle.code.csharp.exprs.ComparisonOperation
30-
import semmle.code.csharp.exprs.Creation
31-
import semmle.code.csharp.exprs.Dynamic
32-
import semmle.code.csharp.exprs.Expr
33-
import semmle.code.csharp.exprs.Literal
34-
import semmle.code.csharp.exprs.LogicalOperation
35-
import semmle.code.csharp.controlflow.ControlFlowGraph
36-
import semmle.code.csharp.dataflow.DataFlow
37-
import semmle.code.csharp.dataflow.TaintTracking
38-
import semmle.code.csharp.dataflow.SSA
39-
40-
/** Whether the source was extracted without a build command. */
41-
predicate extractionIsStandalone() { exists(SourceFile f | f.extractedStandalone()) }
5+
// Do not add other imports here; add to `semmle.code.csharp.internal.csharp` instead
6+
import semmle.code.csharp.internal.csharp
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/**
2+
* The default C# QL library.
3+
*/
4+
5+
import Customizations
6+
import semmle.code.csharp.Attribute
7+
import semmle.code.csharp.Callable
8+
import semmle.code.csharp.Comments
9+
import semmle.code.csharp.Element
10+
import semmle.code.csharp.Event
11+
import semmle.code.csharp.File
12+
import semmle.code.csharp.Generics
13+
import semmle.code.csharp.Location
14+
import semmle.code.csharp.Member
15+
import semmle.code.csharp.Namespace
16+
import semmle.code.csharp.AnnotatedType
17+
import semmle.code.csharp.Property
18+
import semmle.code.csharp.Stmt
19+
import semmle.code.csharp.Type
20+
import semmle.code.csharp.Using
21+
import semmle.code.csharp.Variable
22+
import semmle.code.csharp.XML
23+
import semmle.code.csharp.Preprocessor
24+
import semmle.code.csharp.exprs.Access
25+
import semmle.code.csharp.exprs.ArithmeticOperation
26+
import semmle.code.csharp.exprs.Assignment
27+
import semmle.code.csharp.exprs.BitwiseOperation
28+
import semmle.code.csharp.exprs.Call
29+
import semmle.code.csharp.exprs.ComparisonOperation
30+
import semmle.code.csharp.exprs.Creation
31+
import semmle.code.csharp.exprs.Dynamic
32+
import semmle.code.csharp.exprs.Expr
33+
import semmle.code.csharp.exprs.Literal
34+
import semmle.code.csharp.exprs.LogicalOperation
35+
import semmle.code.csharp.controlflow.ControlFlowGraph
36+
import semmle.code.csharp.dataflow.DataFlow
37+
import semmle.code.csharp.dataflow.TaintTracking
38+
import semmle.code.csharp.dataflow.SSA
39+
40+
/** Whether the source was extracted without a build command. */
41+
predicate extractionIsStandalone() { exists(SourceFile f | f.extractedStandalone()) }

csharp/ql/test/csharp.qll

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/**
2+
* The default C# QL library.
3+
*/
4+
5+
import semmle.code.csharp.internal.csharp
6+
7+
private class FileAdjusted extends File {
8+
override predicate fromSource() {
9+
super.fromSource() and
10+
not this.getAbsolutePath().matches("%resources/stubs/%")
11+
}
12+
}

0 commit comments

Comments
 (0)