apply plugin: 'org.jetbrains.kotlin.jvm' configurations { smokeTestImplementation.extendsFrom compile smokeTestRuntimeOnly.extendsFrom runtimeOnly } sourceSets { smokeTest { kotlin { // We must NOT have any Node code on the classpath, so do NOT // include the test or integrationTest dependencies here. compileClasspath += main.output runtimeClasspath += main.output srcDir file('src/smoke-test/kotlin') } java { compileClasspath += main.output runtimeClasspath += main.output srcDir file('src/smoke-test/java') } } } processSmokeTestResources { // Bring in the fully built corda.jar for use by NodeFactory in the smoke tests from(project(":node:capsule").tasks['buildCordaJAR']) { rename 'corda-(.*)', 'corda.jar' } from(project(':finance:workflows').tasks['jar']) { rename '.*finance-workflows-.*', 'cordapp-finance-workflows.jar' } from(project(':finance:contracts').tasks['jar']) { rename '.*finance-contracts-.*', 'cordapp-finance-contracts.jar' } from(project(':testing:cordapps:sleeping').tasks['jar']) { rename 'testing-sleeping-cordapp-*', 'cordapp-sleeping.jar' } } dependencies { // Smoke tests do NOT have any Node code on the classpath! smokeTestImplementation project(':core') smokeTestImplementation project(':client:rpc') smokeTestImplementation project(':node-api') smokeTestImplementation project(':smoke-test-utils') smokeTestImplementation project(':finance:contracts') smokeTestImplementation project(':finance:workflows') smokeTestImplementation project(':testing:cordapps:sleeping') smokeTestImplementation "io.reactivex:rxjava:$rxjava_version" smokeTestImplementation "commons-io:commons-io:$commons_io_version" smokeTestImplementation "org.hamcrest:hamcrest-library:2.1" smokeTestImplementation "com.google.guava:guava-testlib:$guava_version" smokeTestImplementation "org.apache.logging.log4j:log4j-slf4j-impl:$log4j_version" smokeTestImplementation "org.apache.logging.log4j:log4j-core:$log4j_version" smokeTestImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" smokeTestImplementation "org.assertj:assertj-core:${assertj_version}" smokeTestImplementation "junit:junit:$junit_version" smokeTestRuntimeOnly "org.junit.vintage:junit-vintage-engine:${junit_vintage_version}" smokeTestRuntimeOnly "org.junit.platform:junit-platform-launcher:${junit_platform_version}" // JDK11: required by Quasar at run-time smokeTestRuntimeOnly "com.esotericsoftware:kryo:$kryo_version" } task smokeTest(type: Test) { testClassesDirs = sourceSets.smokeTest.output.classesDirs classpath = sourceSets.smokeTest.runtimeClasspath jvmArgs test_add_opens jvmArgs test_add_exports }