Skip to content

Commit 3749a1b

Browse files
committed
Go: Migrate unit tests to use data extensions for Models as Data.
1 parent 218f553 commit 3749a1b

File tree

10 files changed

+81
-109
lines changed

10 files changed

+81
-109
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/go-all
4+
extensible: summaryModel
5+
data:
6+
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
7+
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
8+
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
9+
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
10+
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
11+
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
12+
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
13+
- ["github.com/nonexistent/test", "", False, "StepArgResArrayContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"]
14+
- ["github.com/nonexistent/test", "", False, "StepArgArrayContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]
15+
- ["github.com/nonexistent/test", "", False, "StepArgResCollectionContent", "", "", "Argument[0]", "ReturnValue.Element", "taint", "manual"]
16+
- ["github.com/nonexistent/test", "", False, "StepArgCollectionContentRes", "", "", "Argument[0].Element", "ReturnValue", "taint", "manual"]
17+
- ["github.com/nonexistent/test", "", False, "StepArgResMapKeyContent", "", "", "Argument[0]", "ReturnValue.MapKey", "taint", "manual"]
18+
- ["github.com/nonexistent/test", "", False, "StepArgMapKeyContentRes", "", "", "Argument[0].MapKey", "ReturnValue", "taint", "manual"]
19+
- ["github.com/nonexistent/test", "", False, "StepArgResMapValueContent", "", "", "Argument[0]", "ReturnValue.MapValue", "taint", "manual"]
20+
- ["github.com/nonexistent/test", "", False, "StepArgMapValueContentRes", "", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"]
21+
- ["github.com/nonexistent/test", "", False, "GetElement", "", "", "Argument[0].Element", "ReturnValue", "value", "manual"]
22+
- ["github.com/nonexistent/test", "", False, "GetMapKey", "", "", "Argument[0].MapKey", "ReturnValue", "value", "manual"]
23+
- ["github.com/nonexistent/test", "", False, "SetElement", "", "", "Argument[0]", "ReturnValue.Element", "value", "manual"]
24+
- ["github.com/nonexistent/test", "C", False, "Get", "", "", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "ReturnValue", "value", "manual"]
25+
- ["github.com/nonexistent/test", "C", False, "Set", "", "", "Argument[0]", "Argument[-1].Field[github.com/nonexistent/test.C.F]", "value", "manual"]
26+
27+
- addsTo:
28+
pack: codeql/go-all
29+
extensible: sourceModel
30+
data:
31+
- ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"]
32+
33+
- addsTo:
34+
pack: codeql/go-all
35+
extensible: sinkModel
36+
data:
37+
- ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "qltest", "manual"]
38+
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]

go/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/completetest.ql

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,6 @@ import CsvValidation
88
import semmle.go.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl
99
import TestUtilities.InlineFlowTest
1010

11-
class SummaryModelTest extends SummaryModelCsv {
12-
override predicate row(string row) {
13-
row =
14-
[
15-
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
16-
"github.com/nonexistent/test;T;false;StepArgRes;;;Argument[0];ReturnValue;taint",
17-
"github.com/nonexistent/test;T;false;StepArgRes1;;;Argument[0];ReturnValue[1];taint",
18-
"github.com/nonexistent/test;T;false;StepArgArg;;;Argument[0];Argument[1];taint",
19-
"github.com/nonexistent/test;T;false;StepArgQual;;;Argument[0];Argument[-1];taint",
20-
"github.com/nonexistent/test;T;false;StepQualRes;;;Argument[-1];ReturnValue;taint",
21-
"github.com/nonexistent/test;T;false;StepQualArg;;;Argument[-1];Argument[0];taint",
22-
"github.com/nonexistent/test;;false;StepArgResNoQual;;;Argument[0];ReturnValue;taint",
23-
"github.com/nonexistent/test;;false;StepArgResArrayContent;;;Argument[0];ReturnValue.ArrayElement;taint",
24-
"github.com/nonexistent/test;;false;StepArgArrayContentRes;;;Argument[0].ArrayElement;ReturnValue;taint",
25-
"github.com/nonexistent/test;;false;StepArgResCollectionContent;;;Argument[0];ReturnValue.Element;taint",
26-
"github.com/nonexistent/test;;false;StepArgCollectionContentRes;;;Argument[0].Element;ReturnValue;taint",
27-
"github.com/nonexistent/test;;false;StepArgResMapKeyContent;;;Argument[0];ReturnValue.MapKey;taint",
28-
"github.com/nonexistent/test;;false;StepArgMapKeyContentRes;;;Argument[0].MapKey;ReturnValue;taint",
29-
"github.com/nonexistent/test;;false;StepArgResMapValueContent;;;Argument[0];ReturnValue.MapValue;taint",
30-
"github.com/nonexistent/test;;false;StepArgMapValueContentRes;;;Argument[0].MapValue;ReturnValue;taint",
31-
"github.com/nonexistent/test;;false;GetElement;;;Argument[0].Element;ReturnValue;value",
32-
"github.com/nonexistent/test;;false;GetMapKey;;;Argument[0].MapKey;ReturnValue;value",
33-
"github.com/nonexistent/test;;false;SetElement;;;Argument[0];ReturnValue.Element;value",
34-
"github.com/nonexistent/test;C;false;Get;;;Argument[-1].Field[github.com/nonexistent/test.C.F];ReturnValue;value",
35-
"github.com/nonexistent/test;C;false;Set;;;Argument[0];Argument[-1].Field[github.com/nonexistent/test.C.F];value",
36-
]
37-
}
38-
}
39-
40-
class SourceModelTest extends SourceModelCsv {
41-
override predicate row(string row) {
42-
row =
43-
[
44-
//`namespace; type; subtypes; name; -; ext; output; kind`
45-
"github.com/nonexistent/test;A;false;Src1;;;ReturnValue;qltest"
46-
]
47-
}
48-
}
49-
50-
class SinkModelTest extends SinkModelCsv {
51-
override predicate row(string row) {
52-
row =
53-
[
54-
//`namespace; type; subtypes; name; -; ext; input; kind`
55-
"github.com/nonexistent/test;B;false;Sink1;;;Argument[0];qltest",
56-
"github.com/nonexistent/test;B;false;SinkManyArgs;;;Argument[0..2];qltest"
57-
]
58-
}
59-
}
60-
6111
class Config extends TaintTracking::Configuration {
6212
Config() { this = "external-flow-test" }
6313

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/go-all
4+
extensible: sinkModel
5+
data:
6+
- ["github.com/nonexistent/test", "B", False, "Sink1", "", "", "Argument[0]", "qltest", "manual"]
7+
- ["github.com/nonexistent/test", "B", False, "SinkMethod", "", "", "Argument[-1]", "qltest", "manual"]
8+
- ["github.com/nonexistent/test", "B", False, "SinkManyArgs", "", "", "Argument[0..2]", "qltest", "manual"]

go/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/sinks.ql

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,6 @@ import go
22
import semmle.go.dataflow.ExternalFlow
33
import CsvValidation
44

5-
class SinkModelTest extends SinkModelCsv {
6-
override predicate row(string row) {
7-
row =
8-
[
9-
//`namespace; type; subtypes; name; -; ext; input; kind`
10-
"github.com/nonexistent/test;B;false;Sink1;;;Argument[0];qltest",
11-
"github.com/nonexistent/test;B;false;SinkMethod;;;Argument[-1];qltest",
12-
"github.com/nonexistent/test;B;false;SinkManyArgs;;;Argument[0..2];qltest",
13-
]
14-
}
15-
}
16-
175
from DataFlow::Node node, string kind
186
where sinkNode(node, kind)
197
select node, kind
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/go-all
4+
extensible: sourceModel
5+
data:
6+
- ["github.com/nonexistent/test", "A", False, "Src1", "", "", "ReturnValue", "qltest", "manual"]
7+
- ["github.com/nonexistent/test", "A", False, "Src2", "", "", "ReturnValue", "qltest", "manual"]
8+
- ["github.com/nonexistent/test", "A", True, "Src2", "", "", "ReturnValue", "qltest-w-subtypes", "manual"]
9+
- ["github.com/nonexistent/test", "A", False, "SrcArg", "", "", "Argument[0]", "qltest-arg", "manual"]
10+
- ["github.com/nonexistent/test", "A", False, "Src3", "", "", "ReturnValue[0]", "qltest", "manual"]
11+
- ["github.com/nonexistent/test", "A", True, "Src3", "", "", "ReturnValue[1]", "qltest-w-subtypes", "manual"]

go/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/srcs.ql

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,6 @@ import go
22
import semmle.go.dataflow.ExternalFlow
33
import CsvValidation
44

5-
class SourceModelTest extends SourceModelCsv {
6-
override predicate row(string row) {
7-
row =
8-
[
9-
//`namespace; type; subtypes; name; -; ext; output; kind`
10-
"github.com/nonexistent/test;A;false;Src1;;;ReturnValue;qltest",
11-
"github.com/nonexistent/test;A;false;Src2;;;ReturnValue;qltest",
12-
"github.com/nonexistent/test;A;true;Src2;;;ReturnValue;qltest-w-subtypes",
13-
"github.com/nonexistent/test;A;false;SrcArg;;;Argument[0];qltest-arg",
14-
"github.com/nonexistent/test;A;false;Src3;;;ReturnValue[0];qltest",
15-
"github.com/nonexistent/test;A;true;Src3;;;ReturnValue[1];qltest-w-subtypes"
16-
]
17-
}
18-
}
19-
205
from DataFlow::Node node, string kind
216
where sourceNode(node, kind)
227
select node, kind
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/go-all
4+
extensible: summaryModel
5+
data:
6+
- ["github.com/nonexistent/test", "T", False, "StepArgRes", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
7+
- ["github.com/nonexistent/test", "T", False, "StepArgRes1", "", "", "Argument[0]", "ReturnValue[1]", "taint", "manual"]
8+
- ["github.com/nonexistent/test", "T", False, "StepArgArg", "", "", "Argument[0]", "Argument[1]", "taint", "manual"]
9+
- ["github.com/nonexistent/test", "T", False, "StepArgQual", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"]
10+
- ["github.com/nonexistent/test", "T", False, "StepQualRes", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"]
11+
- ["github.com/nonexistent/test", "T", False, "StepQualArg", "", "", "Argument[-1]", "Argument[0]", "taint", "manual"]
12+
- ["github.com/nonexistent/test", "", False, "StepArgResNoQual", "", "", "Argument[0]", "ReturnValue", "taint", "manual"]
13+
- ["github.com/nonexistent/test", "", False, "StepArgResContent", "", "", "Argument[0]", "ReturnValue.ArrayElement", "taint", "manual"]
14+
- ["github.com/nonexistent/test", "", False, "StepArgContentRes", "", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"]

go/ql/test/library-tests/semmle/go/dataflow/ExternalFlow/steps.ql

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,6 @@ import semmle.go.dataflow.ExternalFlow
33
import CsvValidation
44
import semmle.go.dataflow.internal.FlowSummaryImpl as FlowSummaryImpl
55

6-
class SummaryModelTest extends SummaryModelCsv {
7-
override predicate row(string row) {
8-
row =
9-
[
10-
//`namespace; type; subtypes; name; -; ext; input; output; kind`
11-
"github.com/nonexistent/test;T;false;StepArgRes;;;Argument[0];ReturnValue;taint",
12-
"github.com/nonexistent/test;T;false;StepArgRes1;;;Argument[0];ReturnValue[1];taint",
13-
"github.com/nonexistent/test;T;false;StepArgArg;;;Argument[0];Argument[1];taint",
14-
"github.com/nonexistent/test;T;false;StepArgQual;;;Argument[0];Argument[-1];taint",
15-
"github.com/nonexistent/test;T;false;StepQualRes;;;Argument[-1];ReturnValue;taint",
16-
"github.com/nonexistent/test;T;false;StepQualArg;;;Argument[-1];Argument[0];taint",
17-
"github.com/nonexistent/test;;false;StepArgResNoQual;;;Argument[0];ReturnValue;taint",
18-
"github.com/nonexistent/test;;false;StepArgResContent;;;Argument[0];ReturnValue.ArrayElement;taint",
19-
"github.com/nonexistent/test;;false;StepArgContentRes;;;Argument[0].ArrayElement;ReturnValue;taint"
20-
]
21-
}
22-
}
23-
246
from DataFlow::Node node1, DataFlow::Node node2
257
where FlowSummaryImpl::Private::Steps::summaryThroughStepTaint(node1, node2, _)
268
select node1, node2
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/go-all
4+
extensible: summaryModel
5+
data:
6+
- ["github.com/nonexistent/test", "", False, "FunctionWithParameter", "", "", "Argument[0]", "ReturnValue", "value", "manual"]
7+
- ["github.com/nonexistent/test", "", False, "FunctionWithSliceParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"]
8+
- ["github.com/nonexistent/test", "", False, "FunctionWithVarArgsParameter", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"]
9+
- ["github.com/nonexistent/test", "", False, "FunctionWithSliceOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"]
10+
- ["github.com/nonexistent/test", "", False, "FunctionWithVarArgsOfStructsParameter", "", "", "Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field]", "ReturnValue", "value", "manual"]

go/ql/test/library-tests/semmle/go/dataflow/ExternalFlowVarArgs/Flows.ql

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,6 @@ import semmle.go.dataflow.ExternalFlow
33
import CsvValidation
44
import TestUtilities.InlineExpectationsTest
55

6-
class SummaryModelTest extends SummaryModelCsv {
7-
override predicate row(string row) {
8-
row =
9-
[
10-
//`namespace; type; subtypes; name; signature; ext; input; output; kind`
11-
"github.com/nonexistent/test;;false;FunctionWithParameter;;;Argument[0];ReturnValue;value",
12-
"github.com/nonexistent/test;;false;FunctionWithSliceParameter;;;Argument[0].ArrayElement;ReturnValue;value",
13-
"github.com/nonexistent/test;;false;FunctionWithVarArgsParameter;;;Argument[0].ArrayElement;ReturnValue;value",
14-
"github.com/nonexistent/test;;false;FunctionWithSliceOfStructsParameter;;;Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field];ReturnValue;value",
15-
"github.com/nonexistent/test;;false;FunctionWithVarArgsOfStructsParameter;;;Argument[0].ArrayElement.Field[github.com/nonexistent/test.A.Field];ReturnValue;value"
16-
]
17-
}
18-
}
19-
206
class DataConfiguration extends DataFlow::Configuration {
217
DataConfiguration() { this = "data-configuration" }
228

0 commit comments

Comments
 (0)