}
}
return result;
}
private List<QFileTestBatch> parseQFileTests() {
Splitter splitter = Splitter.on(" ").trimResults().omitEmptyStrings();
List<QFileTestBatch> result = Lists.newArrayList();
for(String alias : context.getString("qFileTests", "").split(" ")) {
Context testContext = new Context(context.getSubProperties(
Joiner.on(".").join("qFileTest", alias, "")));
String driver = checkNotNull(testContext.getString("driver"), "driver").trim();
// execute the driver locally?
boolean isParallel = !testContext.getBoolean("isolateDriver", false);
File directory = new File(sourceDirectory,
checkNotNull(testContext.getString("directory"), "directory").trim());
Set<String> excludedTests = Sets.newHashSet();
for(String excludedTestGroup : splitter.split(testContext.getString("exclude", ""))) {
excludedTests.addAll(Arrays.asList(testContext.
getString(Joiner.on(".").join("groups", excludedTestGroup), "").trim().split(" ")));
}
Set<String> isolatedTests = Sets.newHashSet();
for(String ioslatedTestGroup : splitter.split(testContext.getString("isolate", ""))) {
isolatedTests.addAll(Arrays.asList(testContext.
getString(Joiner.on(".").join("groups", ioslatedTestGroup), "").trim().split(" ")));
}
Set<String> includedTests = Sets.newHashSet();
for(String includedTestGroup : splitter.split(testContext.getString("include", ""))) {
includedTests.addAll(Arrays.asList(testContext.
getString(Joiner.on(".").join("groups", includedTestGroup), "").trim().split(" ")));
}
if(!includedTests.isEmpty() && !excludedTests.isEmpty()) {
throw new IllegalArgumentException(String.format("Included and excluded mutally exclusive." +