Skip to content

Commit 312dd16

Browse files
author
Max Schaefer
committed
Consolidate application mode tests.
1 parent 692d5e5 commit 312dd16

8 files changed

+49
-86
lines changed

java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractCandidates.ql

Lines changed: 0 additions & 26 deletions
This file was deleted.

java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.expected

Lines changed: 0 additions & 2 deletions
This file was deleted.

java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractNegativeExamples.ql

Lines changed: 0 additions & 27 deletions
This file was deleted.

java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.expected

Lines changed: 0 additions & 2 deletions
This file was deleted.

java/ql/automodel/test/AutomodelApplicationModeExtraction/AutomodelApplicationModeExtractPositiveExamples.ql

Lines changed: 0 additions & 27 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import java
2+
import AutomodelApplicationModeCharacteristics
3+
import TestUtilities.InlineExpectationsTest
4+
5+
module Extraction implements TestSig {
6+
string getARelevantTag() {
7+
result in ["sourceModel", "sinkModel", "positiveExample", "negativeExample"]
8+
}
9+
10+
additional predicate selectEndpoint(
11+
Endpoint endpoint, string name, string signature, string input, string output,
12+
string extensibleType, string tag, string suffix
13+
) {
14+
isCandidate(endpoint, _, _, _, name, signature, input, output, _, extensibleType, _) and
15+
tag = extensibleType and
16+
suffix = ""
17+
or
18+
isNegativeExample(endpoint, _, _, _, _, _, name, signature, input, output, _, extensibleType) and
19+
tag = "negativeExample" and
20+
suffix = ""
21+
or
22+
exists(string endpointType |
23+
isPositiveExample(endpoint, endpointType, _, _, _, name, signature, input, output, _,
24+
extensibleType) and
25+
tag = "positiveExample" and
26+
suffix = "(" + endpointType + ")"
27+
)
28+
}
29+
30+
predicate hasActualResult(Location location, string element, string tag, string value) {
31+
exists(
32+
Endpoint endpoint, string name, string signature, string input, string output,
33+
string extensibleType, string suffix
34+
|
35+
selectEndpoint(endpoint, name, signature, input, output, extensibleType, tag, suffix)
36+
|
37+
endpoint.asTop().getLocation() = location and
38+
endpoint.toString() = element and
39+
// for source models only the output is relevant, and vice versa for sink models
40+
if extensibleType = "sourceModel"
41+
then value = name + signature + ":" + output + suffix
42+
else value = name + signature + ":" + input + suffix
43+
)
44+
}
45+
}
46+
47+
import MakeTest<Extraction>

java/ql/automodel/test/AutomodelApplicationModeExtraction/Test.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ public FutureTask getTask() {
8787
class MoreTests {
8888
public static void FilesListExample(Path p) throws Exception {
8989
Files.list(
90-
Files.createDirectories( // $ negativeExample=list(Path):Argument[0] // modeled as a flow step
90+
Files.createDirectories(
9191
p // $ positiveExample=createDirectories(Path,FileAttribute[]):Argument[0](path-injection)
92-
) // $ sourceModel=createDirectories(Path,FileAttribute[]):ReturnValue
92+
) // $ sourceModel=createDirectories(Path,FileAttribute[]):ReturnValue negativeExample=list(Path):Argument[0] // modeled as a flow step
9393
); // $ sourceModel=list(Path):ReturnValue
9494

9595
Files.delete(

0 commit comments

Comments
 (0)