forked from typetools/checker-framework-inference
-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathImmutableInferenceTestConfiguration.java
More file actions
124 lines (106 loc) · 3.72 KB
/
ImmutableInferenceTestConfiguration.java
File metadata and controls
124 lines (106 loc) · 3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package checkers.inference.test;
import org.checkerframework.framework.test.ImmutableTestConfiguration;
import org.checkerframework.framework.test.TestConfiguration;
import org.checkerframework.framework.test.TestUtilities;
import java.io.File;
import java.util.List;
import java.util.Map;
public class ImmutableInferenceTestConfiguration implements InferenceTestConfiguration {
private final File outputJaif;
private final File testDataDir;
private final File annotatedSourceDir;
private final Map<String, String> inferenceJavacArgs;
private final String solver;
private final Map<String, String> solverArgs;
private final boolean shouldUseHacks;
private final boolean makeDefaultsExplicit;
private final String pathToAfuScripts;
private final String pathToInferenceScript;
private final TestConfiguration initialConfig;
public ImmutableInferenceTestConfiguration(
File outputJaif,
File testDataDir,
File annotatedSourceDir,
Map<String, String> inferenceJavacArgs,
String solver,
Map<String, String> solverArgs,
boolean shouldUseHacks,
boolean makeDefaultsExplicit,
String pathToAfuScripts,
String pathToInferenceScript,
TestConfiguration initialConfig) {
this.outputJaif = outputJaif;
this.testDataDir = testDataDir;
this.annotatedSourceDir = annotatedSourceDir;
this.inferenceJavacArgs = inferenceJavacArgs;
this.solver = solver;
this.solverArgs = solverArgs;
this.shouldUseHacks = shouldUseHacks;
this.makeDefaultsExplicit = makeDefaultsExplicit;
this.pathToAfuScripts = pathToAfuScripts;
this.initialConfig = initialConfig;
this.pathToInferenceScript = pathToInferenceScript;
}
@Override
public File getOutputJaif() {
return outputJaif;
}
@Override
public File getAnnotatedSourceDir() {
return annotatedSourceDir;
}
@Override
public File getTestDataDir() {
return testDataDir;
}
@Override
public Map<String, String> getInferenceJavacArgs() {
return inferenceJavacArgs;
}
public String getSolver() {
return solver;
}
@Override
public Map<String, String> getSolverArgs() {
return solverArgs;
}
public boolean shouldUseHacks() {
return shouldUseHacks;
}
public boolean makeDefaultsExplicit() {
return makeDefaultsExplicit;
}
public String getPathToAfuScripts() {
return pathToAfuScripts;
}
@Override
public String getPathToInferenceScript() {
return pathToInferenceScript;
}
public TestConfiguration getInitialTypecheckConfig() {
return initialConfig;
}
@Override
public List<String> getFlatInferenceJavacArgs() {
return TestUtilities.optionMapToList(inferenceJavacArgs);
}
@Override
public List<String> getFlatSolverArgs() {
return TestUtilities.optionMapToList(solverArgs);
}
@Override
public TestConfiguration getFinalTypecheckConfig() {
List<File> translatedDiagnostics =
InferenceTestUtilities.replaceParentDirs(
annotatedSourceDir, initialConfig.getDiagnosticFiles());
List<File> translatedFiles =
InferenceTestUtilities.replaceParentDirs(
annotatedSourceDir, initialConfig.getTestSourceFiles());
return new ImmutableTestConfiguration(
translatedDiagnostics,
translatedFiles,
initialConfig.getProcessors(),
initialConfig.getOptions(),
initialConfig.shouldEmitDebugInfo());
}
}