backend/tests: Added test group running

This commit is contained in:
Ilya Matveev
2017-01-18 12:48:38 +03:00
parent ee58c7ee5f
commit b6587252c0
2 changed files with 49 additions and 1 deletions
+4
View File
@@ -79,6 +79,10 @@ task run_external () {
}
}
task run_external_group (type: RunExternalTestGroup) {
groupDirectory = "external/codegen/blackbox/binaryOp"
}
task sum (type:RunKonanTest) {
source = "codegen/function/sum.kt"
}
@@ -1,7 +1,11 @@
package org.jetbrains.kotlin
import groovy.io.FileType
import org.gradle.api.DefaultTask
import org.gradle.api.internal.tasks.testing.detection.DefaultTestExecuter
import org.gradle.api.tasks.ParallelizableTask
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.testing.Test
abstract class KonanTest extends DefaultTask {
protected String source
@@ -157,7 +161,7 @@ class RunExternalTest extends RunKonanTest {
def nextFileExists = matcher.find()
def end = nextFileExists ? matcher.start() : srcText.length()
def fileText = srcText.substring(start, end)
processedChars = end;
processedChars = end
createFile(filePath, fileText)
if (fileText =~ boxPattern && fileText =~ packagePattern){
boxPackage = (fileText =~ packagePattern)[0][1]
@@ -181,3 +185,43 @@ class RunExternalTest extends RunKonanTest {
}
}
class RunExternalTestGroup extends RunExternalTest {
def groupDirectory = "."
def logFileName = "test-result.md"
String filter = project.property("filter")
@TaskAction
void executeTest() {
def logFile = project.file(logFileName)
logFile.write("|Test|Status|Comment|\n|----|------|-------|")
def ktFiles = project.file(groupDirectory).listFiles(new FileFilter() {
@Override
boolean accept(File pathname) {
pathname.isFile() && pathname.name.endsWith(".kt")
}
})
if (filter != null) {
def pattern = ~filter
ktFiles = ktFiles.findAll {
it.name =~ pattern
}
}
def current = 0
def passed = 0
def total = ktFiles.size()
ktFiles.each {
source = project.relativePath(it)
println("TEST: ${++current}/$total (passed: $passed)")
try {
super.executeTest()
logFile.append("\n|$it.name|PASSED||")
println("TEST PASSED\n")
passed++
} catch (Exception ex) {
println("TEST FAILED\n")
logFile.append("\n|$it.name|FAILED|${ex.getMessage()}. Cause: ${ex.getCause()?.getMessage()}|")
}
}
}
}