backend/tests: Added task generation for test groups instead of tests
This commit is contained in:
@@ -19,7 +19,8 @@ task regenerate_external_tests() {
|
||||
def gradleGenerated = externalTestsProject.file("build.gradle")
|
||||
def externalTestsDir = externalTestsProject.file("codegen/blackbox")
|
||||
gradleGenerated.write("import org.jetbrains.kotlin.*\n\n")
|
||||
gradleGenerated.append("configurations {\n" +
|
||||
gradleGenerated.append(
|
||||
"configurations {\n" +
|
||||
" cli_bc\n" +
|
||||
"}\n" +
|
||||
"\n" +
|
||||
@@ -28,22 +29,19 @@ task regenerate_external_tests() {
|
||||
"}\n\n")
|
||||
|
||||
externalTestsDir.eachDirRecurse {
|
||||
if (it.name == "build") {
|
||||
// Skip build directory and directories without *.kt files
|
||||
if (it.name == "build" || it.listFiles().findAll { it.name.endsWith(".kt") }.isEmpty()) {
|
||||
return
|
||||
}
|
||||
|
||||
def directoryGradleGenerated = project.file("$it.absolutePath/build-generated.gradle")
|
||||
directoryGradleGenerated.write("import org.jetbrains.kotlin.*\n\n")
|
||||
gradleGenerated.append("\napply from: \"${externalTestsProject.relativePath(directoryGradleGenerated)}\"")
|
||||
def taskDirectory = externalTestsProject.relativePath(it)
|
||||
def taskName = taskDirectory.replace('/', '_').replace('-', '_')
|
||||
|
||||
it.eachFile(FileType.FILES) {
|
||||
if (it.name.endsWith(".kt")) {
|
||||
def taskSourcePath = externalTestsProject.relativePath(it)
|
||||
//remove filename extension. TODO make better replacement
|
||||
def taskName = taskSourcePath.replace('/', '_').replace('-', '_').replaceFirst(~/\.[^\.]+$/, '')
|
||||
directoryGradleGenerated.append("task $taskName (type: RunExternalTest) {\n source = \"$taskSourcePath\"\n}\n\n")
|
||||
}
|
||||
}
|
||||
gradleGenerated.append(
|
||||
"task $taskName (type: RunExternalTestGroup) {\n" +
|
||||
" groupDirectory = \"$taskDirectory\"\n" +
|
||||
" logFileName = \"$taskDirectory/test-result.md\"\n" +
|
||||
"}\n\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,35 +52,11 @@ task run() {
|
||||
}
|
||||
|
||||
task run_external () {
|
||||
doLast {
|
||||
//TODO make better output / make as dependencies
|
||||
def externalTestsProject = project.childProjects["external"]
|
||||
def logFile = externalTestsProject.file("test-result.md")
|
||||
logFile.write("|Test|Status|Comment|\n|----|------|-------|")
|
||||
def current = 1
|
||||
def passed = 0
|
||||
def total = externalTestsProject.tasks.size()
|
||||
externalTestsProject.tasks.each {
|
||||
println("TEST: $current/$total (passed: $passed)")
|
||||
try {
|
||||
(it as RunExternalTest).executeTest()
|
||||
logFile.append("\n|$it.name|PASSED||")
|
||||
println("TEST PASSED")
|
||||
passed++
|
||||
} catch (Exception ex) {
|
||||
println("TEST FAILED")
|
||||
logFile.append("\n|$it.name|FAILED|${ex.getMessage()}. Cause: ${ex.getCause()?.getMessage()}|")
|
||||
}
|
||||
current++
|
||||
}
|
||||
logFile.append("\nPASSED: $passed/$total")
|
||||
project.subprojects {
|
||||
dependsOn(it.tasks.withType(RunExternalTestGroup).matching { it.enabled })
|
||||
}
|
||||
}
|
||||
|
||||
task run_external_group (type: RunExternalTestGroup) {
|
||||
groupDirectory = "external/codegen/blackbox/binaryOp"
|
||||
}
|
||||
|
||||
task sum (type:RunKonanTest) {
|
||||
source = "codegen/function/sum.kt"
|
||||
}
|
||||
|
||||
@@ -185,12 +185,14 @@ class RunExternalTest extends RunKonanTest {
|
||||
}
|
||||
}
|
||||
|
||||
@ParallelizableTask
|
||||
class RunExternalTestGroup extends RunExternalTest {
|
||||
def groupDirectory = "."
|
||||
def logFileName = "test-result.md"
|
||||
String filter = project.property("filter")
|
||||
String filter = project.findProperty("filter")
|
||||
|
||||
@TaskAction
|
||||
@Override
|
||||
void executeTest() {
|
||||
def logFile = project.file(logFileName)
|
||||
logFile.write("|Test|Status|Comment|\n|----|------|-------|")
|
||||
@@ -211,7 +213,7 @@ class RunExternalTestGroup extends RunExternalTest {
|
||||
def total = ktFiles.size()
|
||||
ktFiles.each {
|
||||
source = project.relativePath(it)
|
||||
println("TEST: ${++current}/$total (passed: $passed)")
|
||||
println("TEST: $it.name (${++current}/$total, passed: $passed)")
|
||||
try {
|
||||
super.executeTest()
|
||||
logFile.append("\n|$it.name|PASSED||")
|
||||
@@ -222,6 +224,7 @@ class RunExternalTestGroup extends RunExternalTest {
|
||||
logFile.append("\n|$it.name|FAILED|${ex.getMessage()}. Cause: ${ex.getCause()?.getMessage()}|")
|
||||
}
|
||||
}
|
||||
print("TOTAL PASSED: $passed/$total")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user