don't store .class files in testdata

This commit is contained in:
Dmitry Jemerov
2015-01-14 14:49:07 +01:00
parent cc1a628110
commit 548b52d529
4 changed files with 33 additions and 6 deletions
@@ -0,0 +1,2 @@
org/demo/coverage/Foo.class
org/demo/coverage/Foo$bar$1.class
@@ -21,8 +21,9 @@ import org.jetbrains.kotlin.idea.PluginTestCaseBase
import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.test.JetTestUtils
import java.io.File
import com.intellij.openapi.vfs.LocalFileSystem
import kotlin.test.assertNotNull
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.vfs.VirtualFile
import org.jetbrains.kotlin.idea.util.application.runWriteAction
public abstract class AbstractKotlinCoverageOutputFilesTest(): JetLightCodeInsightFixtureTestCase() {
private val TEST_DATA_PATH = PluginTestCaseBase.getTestDataPathBase() + "/coverage/outputFiles"
@@ -31,9 +32,33 @@ public abstract class AbstractKotlinCoverageOutputFilesTest(): JetLightCodeInsig
public fun doTest(path: String) {
val kotlinFile = myFixture.configureByFile(path) as JetFile
val outputRoot = LocalFileSystem.getInstance().findFileByPath("$path.out")
assertNotNull(outputRoot)
val actualClasses = KotlinCoverageExtension.collectGeneratedClassQualifiedNames(outputRoot, kotlinFile)
JetTestUtils.assertEqualsToFile(File(path.replace(".kt", ".expected.txt")), actualClasses!!.join("\n"))
val outDir = myFixture.getTempDirFixture().findOrCreateDir("coverageTestOut")
try {
FileUtil.loadLines(File(path.replace(".kt", ".classes.txt"))).forEach {
runWriteAction {
createEmptyFile(outDir, it)
}
}
val actualClasses = KotlinCoverageExtension.collectGeneratedClassQualifiedNames(outDir, kotlinFile)
JetTestUtils.assertEqualsToFile(File(path.replace(".kt", ".expected.txt")), actualClasses!!.join("\n"))
}
finally {
runWriteAction {
outDir.delete(null)
}
}
}
}
private fun createEmptyFile(dir: VirtualFile, relativePath: String) {
var currentDir = dir
val segments = relativePath.split('/')
segments.forEachIndexed {(i, s) ->
if (i < segments.size() - 1) {
currentDir = currentDir.createChildDirectory(null, s)
} else {
currentDir.createChildData(null, s)
}
}
}