configurations {
    testArtifacts
}

dependencies {
    compile 'org.ow2.asm:asm-debug-all:5.0.4'
    compile 'com.google.code.gson:gson:2.6.2'

    testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
    testArtifacts project(':kotlinx-coroutines-core')
    testArtifacts project(':kotlinx-coroutines-io')


    testArtifacts project(':kotlinx-coroutines-reactive')
    testArtifacts project(':kotlinx-coroutines-reactor')
    testArtifacts project(':kotlinx-coroutines-rx1')
    testArtifacts project(':kotlinx-coroutines-rx2')

    testArtifacts project(':kotlinx-coroutines-guava')
    testArtifacts project(':kotlinx-coroutines-jdk8')
    testArtifacts project(':kotlinx-coroutines-nio')
    testArtifacts project(':kotlinx-coroutines-quasar')

    testArtifacts project(':kotlinx-coroutines-android')
    testArtifacts project(':kotlinx-coroutines-javafx')
    testArtifacts project(':kotlinx-coroutines-swing')
}

def testCasesDeclarationsDump = "${buildDir}/visibilities.json".toString()

compileTestKotlin {
    kotlinOptions {
        freeCompilerArgs = ["-Xdump-declarations-to=$testCasesDeclarationsDump"]
    }
}

sourceSets {
    test {
        java {
            srcDir "test/cases"
        }
    }
}

test {
    dependsOn cleanCompileTestKotlin
    dependsOn configurations.testArtifacts

    systemProperty 'testCasesClassesDirs', sourceSets.test.output.classesDirs.asPath
    systemProperty 'testCasesDeclarations', testCasesDeclarationsDump
    systemProperty 'overwrite.output', project.properties['overwrite.output']
    jvmArgs '-ea'
}
