in src/main/kotlin/com/jetbrains/plugin/jtreg/configuration/JTRegConfiguration.kt [439:511]
override fun readExternal(element: Element) {
super.readExternal(element)
data = ConfigurationHelper.readTestData(element, settings)
`package` = element.getAttributeValue("packageName") ?: ""
runClass = element.getAttributeValue("className") ?: ""
element.getChild("testGroup")?.let { testGroup ->
val testRootDirectory = testGroup.getAttributeValue("testRootDirectory") ?: ""
val relativeTestDirectory = testGroup.getAttributeValue("relativeTestDirectory") ?: ""
val groupName = testGroup.getAttributeValue("groupName") ?: ""
val testGroupObject = TestGroup(testRootDirectory, relativeTestDirectory, groupName)
setTestGroup(testGroupObject)
}
val altJrePath = element.getAttributeValue("alternativeJrePath") ?: ""
val altJreEnabled = element.getAttributeBooleanValue("alternativeClasspathEnabled")
if (altJrePath.isEmpty()) {
alternativeJrePath = ""
alternativeClasspathEnabled = false
} else {
alternativeJrePath = altJrePath
alternativeClasspathEnabled = altJreEnabled
}
element.getAttributeValue("workingDirectory")?.let {
data.workingDirectory = it
} ?: run {
project.basePath?.let {
val baseDir = Paths.get(it)
val workDir = baseDir.resolve("JTWork").toString()
data.workingDirectory = workDir
}
}
programParameters = element.getAttributeValue("parameters") ?: ""
vmParameters = element.getAttributeValue("vmParameters") ?: ""
val testKind = element.getAttributeValue("testKind")
if (testKind != null && testKind.isNotEmpty()) {
setTestKind(testKind)
} else {
if (`package`.isNotEmpty()) {
setTestKind(TestData.TEST_DIRECTORY)
} else if (runClass.isNotEmpty()) {
setTestKind(TestData.TEST_CLASS)
} else {
setTestKind(TestData.TEST_GROUP)
}
}
val configurationName = element.getAttributeValue("configurationName")
if (configurationName != null && configurationName.isNotEmpty()) {
name = configurationName
} else {
when (getTestKind()) {
TestData.TEST_DIRECTORY -> {
name = `package`
}
TestData.TEST_GROUP -> {
name = getTestGroup()?.groupName ?: ""
}
TestData.TEST_CLASS -> {
name = runClass
}
}
}
EnvironmentVariablesComponent.readExternal(element, data.envVars)
element.getAttributeValue("runCmd")?.let { value ->
setRunCmd(value)
}
}